J'avais lu une interview d’un grand programmeur (ce n’est pas en anglais) dans laquelle il disait qu ’" un bon programmeur peut être 10 fois plus performant qu'un médiocre ", ce qui explique pourquoi les bons programmeurs sont très bien payés et pourquoi les sociétés de programmation offrent de nombreuses installations à leurs employés. L'idée était qu'il y avait une très forte demande pour de bons programmeurs, à cause de la raison ci-dessus et c'est pourquoi les entreprises paient beaucoup pour les amener.
Êtes-vous d'accord avec ce constat? Connaissez-vous des faits objectifs qui pourraient l’appuyer?
Edit: La question n'a rien à voir avec l'expérience. si vous parlez d'un grand programmeur avec 1 an d'expérience, il devrait être 10 fois plus productif qu'un programmeur médiocre avec 1 an d'expérience. Je conviens que, à partir de certaines années d’expérience, les choses commencent à se dissiper, mais ce n’est pas l’objet de la question.
la source
Réponses:
Steve McConnell a rédigé deux articles sur les différences de productivité .
Variations de productivité entre les développeurs de logiciels et les équipes: l'origine de "10x"
Origins of 10X - Quelle est la validité de la recherche sous-jacente?
Le premier article ( Variations de productivité ... ) dit:
Cet article a aussi une note intéressante:
Le deuxième article ( ... Quelle est la validité de la recherche sous-jacente? ) A été écrit principalement pour aborder la critique du premier article de Laurent Bossavit :
Dans le deuxième article, dans la section A approfondir ses recherches sur le thème "10x", McConnell revérifie plus en détail les références utilisées dans le premier article et conclut:
Par souci d’exhaustivité, la liste des références utilisées dans les variations de productivité ... est également citée ci-dessous:
la source
Un programmeur véritablement redoutable peut avoir une productivité inférieure à zéro (les bugs qu’ils introduisent prennent plus de temps à corriger qu’il ne le faudrait pour faire tout leur travail à leur place).
Et un véritable programmeur peut faire des choses que les programmeurs pauvres et moyens ne réaliseraient tout simplement jamais , peu importe le temps que vous leur avez imparti.
Donc, pour ces raisons, il est difficile de parler de "10x comme productif" ou de "100x comme productif".
La chose à retenir, cependant, est que la plupart des employeurs de programmeurs n’ont pas besoin de faire les tâches difficiles que les programmeurs moyens ne pourraient pas gérer. La plupart du code en cours d’écriture sont des sites Web, des applications métiers, des applications intranet, etc. Le programmeur productif de cet environnement est celui qui est le mieux à même de comprendre et de mettre en œuvre les besoins des utilisateurs, et non celui qui peut écrire le code le plus intelligent.
En effet, la plupart des employeurs de programmeurs auraient intérêt à avoir un bon programmeur plutôt qu’un excellent, car le bon s’ennuiera et partira. Je dois trouver un bon match entre les programmeurs et les emplois.
la source
Faits et sophismes du génie logiciel (Fait 2, disponible dans l'aperçu amazon):
(regardez la liste des sources pour la recherche)
Bien sûr, si vous comparez la productivité d'un non-programmeur (ou d'un très mauvais programmeur) avec le bon (en termes d'expérience et de connaissances), la différence peut être infiniment grande (
n/0 == infinity
pour tout positifn
), mais ce n'est pas juste ni comparaison raisonnable.Votre salaire peut dépendre de plusieurs facteurs (dans un ordre aléatoire):
avec votre personnel ...
la source
Ma réponse est "oui, mais faites attention à la façon dont vous utilisez cette métrique".
Un programmeur qui fonctionne, dirons-nous, de manière optimale, est celui qui crée pour la fonctionnalité et provoque moins d’erreurs qui doivent être corrigées que son bretheren moins performant. Je n'aurais pas du mal à croire que ces personnes puissent multiplier par 10 le rendement des autres, en particulier si l'on considère qu'un seul bon ou mauvais choix fait en une heure peut facilement avoir un impact de 10 heures, et les programmeurs font de tels choix. la plupart des jours.
Mais...
Vous devez être prudent dans vous mesurez cela. Je ne fais vraiment pas confiance à la plupart des mesures de productivité depuis que j'ai vu d'innombrables cas où à peu près toutes les mesures connues ne prenaient pas en compte un élément que je considère essentiel pour la productivité de l'équipe. Donc, je déteste généralement de tels chiffres pour la "productivité". Voici quelques exemples:
De nombreux systèmes de mesure ont essayé de prendre en compte ces facteurs, mais je ne me suis pas encore rendu compte qu'il en existe un qui tient compte de tous ces problèmes. médiocre "parce que je me demande si la métrique représente vraiment tout le travail nécessaire pour réussir un produit en cours ou une équipe prospère et prospère.
Donc, ma grande mise en garde est: qu'allez-vous faire avec cette métrique? J'utiliserai quelque chose comme ceci pour savoir que les bons outils et le bon talent peuvent causer une grande différence dans la façon dont le travail est effectué, mais si vous essayez d'optimiser une équipe où chaque individu produit 10 fois le résultat "typique", vous êtes voué à un cas de frustration. Mieux vaut trouver un moyen d’amener votre équipe à faire deux à trois fois plus que ce qu’elle faisait auparavant en travaillant mieux ensemble.
la source
Dans son livre intitulé Les lutins du génie logiciel , Laurent Bossavit décrit la recherche de l'allégation de productivité 10x. Il a découvert qu’il n’existait pas de chiffres sonores derrière cette affirmation. L’affirmation est passée de la spéculation à la "réalité" par un jeu téléphonique de réclamations successivement plus concrètes en citation. L'article de blog qui comprend le chapitre sur la revendication 10x, ainsi que les citations et citations inexactes pertinentes, est factuel et folklorique en génie logiciel .
Voici ce qu’il a trouvé: Quelqu'un en 1968 a fait une étude comparant les personnes résolvant un problème de débogage particulier, et a découvert que certaines d’entre elles le faisaient 10 fois plus vite que d’autres. Nous pourrions en conclure que certaines personnes sont dix fois plus efficaces pour résoudre ce problème , ou que certaines personnes ont eu de la chance , ou une grande variété de choses différentes. Certaines personnes ont choisi de citer ceci (toutes ces paraphrases) "une étude (Sackman et al, 1968) a révélé que certains programmeurs travaillent dix fois plus vite que d’autres". Il est ensuite devenu "des études ont montré que les bons programmeurs sont 10 fois meilleurs que la moyenne", puis enfin "il est notoire que la productivité des programmeurs varie de 10 fois entre individus". Ensuite, quelqu'un collecte toutes ces citations, citant à tort une source originale dire "beaucoup de chercheurs croient…".
Bien sûr, ce ne serait pas un jeu de téléphone si seulement la véracité de l'affirmation changeait: le multiplicateur va également à 11 et au-delà .
la source
" Le programmeur productif de cet environnement est celui qui sait le mieux comprendre et implémenter les besoins des utilisateurs, et non celui qui écrit le code le plus intelligent. " ( Réponse de Carson63000 )
Ce point clé couplé avec bethlakshmiLes points de fait un point énorme. Un bon développeur peut être formidable dans sa tranche de réalité mais se briser dès que le monde change. Être capable de répondre aux besoins de l'entreprise est beaucoup plus important que toute autre chose. En fin de compte, à moins que votre entreprise soit une technologie, elle ne se soucie pas de la technologie; ils ont besoin de solutions. Donc, être excellent avec les modèles de conception ne signifie pas forcément être squatté pour les utilisateurs finaux qui ont juste besoin d'un vidage de données à afficher sur une page Web. J'ai vu des développeurs médiocres obtenir un emploi en s'adressant à l'entreprise qui les soutient, tandis que de grands développeurs s'ennuient et se retirent à la recherche d'un défi sans fin. En fonction de votre organisation et de vos projets, il est possible de nourrir ces développeurs en manque de ressources, mais il est probable qu’il y aura un moment où vous ne ferez rien. t besoin de cette quantité de puissance de traitement. Ces développeurs n'aiment pas rester inactifs, comme un processeur. Ils vont arrêter et redémarrer ailleurs.
Enfin, je dirai qu’il n’est pas difficile de savoir qui sont vos interprètes "clés", mais une "équipe" de développement est toujours une équipe. Pour répéter bethlakshmi, "qu'allez -vous faire avec cette métrique?""Si vous avez besoin d'une équipe qui se comporte comme une équipe, je ne me concentrerais pas sur des métriques. Je réaliserais que même le plus petit joueur reste un élément important de l'équipe. Même avec 60% de moins que la productivité de votre clé joueur, ce joueur peut donner à votre équipe quelque chose dont il a besoin. Découvrez ce que c'est et essayez de le multiplier. N'épuisez pas votre joueur clé en supposant qu'il devrait diriger l'équipe, trouvez également des moyens de multiplier sa production, en contaminant les autres joueurs avec cette grandeur. Cela nécessite un peu de créativité, pas seulement des chiffres. En fin de compte, vous pouvez apprendre que ce qui fait un bon programmeur n'est même pas ce programmeur, ce peuvent être ses pairs, ses opportunités sur le lieu de travail ou ce pourrait même être vous.
la source