web-dev-qa-db-fra.com

Comment mesurer les performances de développement logiciel?

Je cherche des moyens de mesurer les performances d'une équipe de développement logiciel. Est-ce une bonne idée d'utiliser l'outil de construction? Nous utilisons Hudson comme outil de construction automatique. Je me demande si je peux prendre les informations des rapports Hudson et en obtenir le progrès de chacun des programmeurs.

28
MikeG

Ne mesurez PAS les performances de chaque programmeur en utilisant simplement l’outil de compilation. Vous pouvez mesurer l'équipe dans son ensemble, bien sûr, ou bien vous pouvez mesurer les progrès de chaque programmeur, mais vous ne pouvez pas mesurer leur performance avec un tel outil. Certains modules sont plus compliqués que d'autres, certains programmeurs sont chargés d'autres projets, etc. Ce n'est pas une méthode recommandée. Cela encouragera les programmeurs à écrire du code bâclé de manière à donner l'impression qu'ils ont fait le plus de travail possible.

46
AlbertoPL

Non.

De telles mesures sont vouées à l'échec. Différentes personnes travaillent sur différentes parties du code, sur différentes classes de problèmes, et les mesures absolues sont au mieux trompeuses.

La façon de mesurer les performances des développeurs consiste à avoir d'excellents gestionnaires qui font bien leur travail, qui ont de bonnes spécifications qui reflètent avec précision les exigences et qui suivent attentivement les progrès de chacun.

C'est difficile à faire correctement. Une solution logicielle ne fonctionnera pas.

12
RichieHindle

Je pense que cela nécessite une approche très prudente pour décider des moyens de mesurer les performances des développeurs car la plupart des méthodes traditionnelles telles que la ligne de codes, le nombre d'inscriptions, le nombre de bugs corrigés, etc. Nous devons valoriser l'approche de performance d'équipe plutôt que de mesurer les indicateurs de performance clés individuels dans un projet. Cependant, travailler dans un environnement de développement commercial est important de garder une trace et de regarder de près les facteurs suivants de chaque développeur;

  1. Commentaires de révision de code - Chaque projet permet de décider du nombre de révisions de code nécessaires pour une période donnée. Sur la base des critiques de code, les utilisateurs reçoivent des remarques sur leurs améliorations des normes de codage. Il faut attirer l’attention sur les problèmes récurrents d’examen du code d’un même individu. Vous pouvez utiliser des outils de révision de code automatisés ou manuels.
  2. Couverture et exhaustivité des tests. - Le pourcentage couvert doit être décidé dès le départ et si certains développeurs ne le tentent pas souvent, il faut en prendre soin. 
  3. Volonté de se connecter à des tâches complexes et de les livrer sans trop de difficultés
  4. Réalisation de ce qui est défini comme «Terminé» dans une user story
  5. Niveau de maîtrise de chaque domaine technique.

Avec une approche agile dans certains projets, les mesures de l’équipe de développement et les performances attendues sont décidées en fonction des versions. À chaque lancement, il existe différents ‘contrats’ négociés avec les membres de l’équipe pour la performance attendue. Je trouve que cette approche est plus efficace car il n'y a aucune raison de respecter les mesures liées à l'interface utilisateur dans une version où un algorithme complexe doit être publié.

10

Je ne recommanderais PAS d'utiliser les informations de l'outil de génération pour mesurer les performances/progrès des développeurs de logiciels. Certains des problèmes confondants: peut-être une tâche est-elle considérablement plus difficile qu’une autre; une tâche est peut-être beaucoup plus impliquée dans "l'espace de conception" que dans "l'espace d'implémentation"; la solution la plus efficace est peut-être (probablement) la meilleure, mais cette solution meilleure génère moins de lignes de code qu'une solution terriblement inefficace qui fournit beaucoup plus de lignes de code; etc.

5
Paul Sonier

En parlant de KPI chez les développeurs de logiciels. www.smartKPIs.com peut être une bonne ressource pour vous. Il contient une bibliothèque conviviale de mesures de performance bien documentées. À l'heure actuelle, il répertorie plus de 3 300 indicateurs de performance clés, regroupés dans 73 domaines fonctionnels, ainsi que 83 industries et sous-catégories.

Des exemples d’indicateurs de performance clés pour les développeurs de logiciels sont disponibles sur cette page www.smartKPIs.com - développement d’applications Ils incluent, mais ne se limitent pas à:

  • Efficacité de l'élimination des défauts
  • Redondance des données

Outre des exemples de mesures de performance, www.smartKPIs.com contient également un catalogue de rapports de performance illustrant l'utilisation des indicateurs de performance clés dans la pratique ..__ Des exemples de tels rapports sur les technologies de l'information sont disponibles sur: www.smartKPIs.com - Indicateurs de performance clés dans la pratique - technologie de l'information Le site Web est mis à jour quotidiennement avec le nouveau contenu. Vérifiez-le de temps en temps pour obtenir du contenu supplémentaire.

Veuillez noter que, même si des exemples de mesures de performance sont utiles pour éclairer les décisions, chaque mesure de performance doit être sélectionnée et personnalisée en fonction des objectifs et des priorités de chaque organisation.

4
smartKPIs

Vous feriez probablement mieux de mesurer à quel point votre équipe suit les horaires. Si un membre de l'équipe (ou toute l'équipe) est toujours en retard, vous devrez travailler avec eux pour améliorer les performances.

2
BoltBait

Ne raccourcissez pas ni recherchez des moyens rapides et faciles de mesurer les performances/progrès des développeurs. De nombreux facteurs affectent la sortie d'un développeur. J'ai vu beaucoup de gens essayer diverses mesures ...

Lignes de code produites - encouragent les développeurs à produire des déchets inefficaces Mesures de complexité - encouragent les analyses et le refactoring Nombre de bugs produits - encouragent les utilisateurs à rechercher des tâches très simples et à détester vos testeurs ... la liste continue.

Lors de l'examen d'un développeur, vous devez vraiment examiner la qualité de son travail et définir "bon" dans le contexte des besoins de la société et des situations/positions dans lesquelles la société a placé cet individu. Les progrès doivent être évalués avec la même considération et la même pensée. .

2
James Conigliaro

Vérifiez combien de lignes de codes chacune a écrites.

Tirez ensuite sur les 70% inférieurs .. AUCUN 90%! ... TOUS LES JOURS!

(pour les gens qui ne sont pas sûrs, OUI, je plaisante. Réponse sérieuse ici )

1
madlep

Il y a beaucoup de façons différentes de le faire. Des livres entiers écrits sur le sujet. Vous pouvez utiliser les rapports de Hudson mais je pense que cela conduirait à des informations erronées et donnerait des résultats bruts. Vraiment, vous devez avoir une méthodologie de suivi des tâches.

1
anio

C'est une vieille question, mais vous pouvez toujours emprunter Velocity de Agile Software Development, où vous attribuez un poids à chaque tâche, puis vous calculez le "poids" que vous résolvez à chaque sprint (ou itération ou quel que soit le DLC que vous utilisez). Bien entendu, cela va de pair avec le fait que, à l'instar d'un intervenant mentionné précédemment, vous devez vous garder au courant du fait que vos développeurs travaillent ou discutent en ligne.

Si vous savez que vos développeurs travaillent avec réactivité, vous pouvez vous fier à cette velocity pour vous donner une estimation du travail que l'équipe peut effectuer. Si à n'importe quelle itération ce nombre diminue (considérablement), alors soit il a été mal estimé, soit l'équipe a travaillé moins.

En fin de compte, l'utilisation de KPI avec Velocity peut vous donner des informations sur les performances par développeur (ou par équipe).

1
PedroC88

Nous avons 360 commentaires de tous les membres de l'équipe. Si tous les membres de votre équipe pensent que vous êtes de la merde, alors vous l’êtes probablement.

1
Neil

De nombreuses entreprises commettent une erreur commune lors de la configuration de leur outil de gestion des versions. Le kit d’outils de gestion des versions de Salesforce est l’un des meilleurs du marché, mais si vous ne suivez pas les étapes essentielles de sa configuration, vous obtiendrez de très mauvais résultats. Vous pourrez l'utiliser, mais pas à sa pleine capacité. Établir les processus de gestion des versions indépendamment des processus d’affaires est l’une des erreurs les plus graves à commettre. Les outils de gestion des versions vont de pair avec la stratégie d'entreprise, les objectifs, la gouvernance, la gestion du changement et d'autres aspects. Les processus de gestion des versions doivent être conçus de manière à ce que tous les acteurs de l'entreprise soient sur la même page.

Objectifs de la gestion des versions L'objectif principal de la gestion des versions est de disposer d'un ensemble cohérent de processus fiables, reproductibles et indépendants des ressources. Cela permet d'obtenir la valeur commerciale la plus favorable tout en optimisant l'utilisation des ressources disponibles. Étant donné que la plupart des entreprises se concentrent sur la gestion de projets d’entreprise à court et à rendement élevé, il est essentiel, pour optimiser la chaîne de valeur de livraison de l’application, de s’assurer qu’il n’ya pas de retard dans la livraison de la valeur commerciale.

Prenons l'exemple de la boîte à outils de migration force.com, car cet outil s'est avéré excellent en termes de gouvernance. Un outil de gestion des versions devrait permettre une visibilité et une responsabilité optimales dans la gouvernance.

Processus et cycles de publication Les processus de gestion des versions doivent être cohérents pour l'ensemble de l'entreprise. Il est nécessaire de disposer de processus rationalisés et normalisés pour les différents utilisateurs d’outils. En effet, ils utiliseront la même plate-forme et les mêmes ressources pour mener à bien leurs tâches. Avoir des processus différents pour différentes divisions de votre entreprise peut entraîner de graves échecs dans la gestion des outils. Les différents groupes d'utilisateurs devront avoir une visibilité sur ce que font les autres. Comme mentionné ci-dessus, la visibilité revêt une grande importance dans tout processus métier.

En ce qui concerne les cycles de publication, il est également impératif de disposer d’un système centralisé permettant de suivre toutes les exigences des différents groupes d’utilisateurs. Il est également nécessaire de centraliser ce système pour que les équipes de développement logiciel aient un aperçu des fonctionnalités et des modifications demandées par l'entreprise. Les demandes doivent devenir des priorités pour que l’entreprise profite au maximum des avantages. Il est important de disposer d'une équipe de pilotage car elle participe à la révision des exigences de l'entreprise et donne également la priorité aux changements les plus appropriés que l'entreprise doit effectuer.

Les modifications qui devraient survenir dans le système Salesforce peuvent être très délicates. Par conséquent, il est bon d’avoir des rencontres régulières entre les entreprises et les services informatiques. Cela aidera à déterminer les meilleurs changements à apporter au système qui profiteront à l'entreprise. En prenant en compte le coût et la valeur de la mise en œuvre d'une fonctionnalité, le comité de direction doit décider des modifications les plus importantes à apporter à cette fonctionnalité. Ici aussi, bonne recherche http://intersog.com/blog/tech-tips/how-to-manage-millennials-on-software-development-teams

1
Lana Boltneva

En règle générale, l’utilisation directe de mesures pour mesurer les performances est considérée comme une mauvaise idée et comme l’un des moyens les plus simples de diriger une équipe sur le terrain.

Maintenant, vous pouvez utiliser des mesures telles que% de projets terminés à temps,% de désabonnement à mesure que le code s'achève, etc ... c'est un vaste champ.

Voici un exemple:

60% des bugs critiques pour la mission ont été écrits par Joe. C'est une métrique simple et directe. Fire Joe, non?

Mais attendez, il y a plus!

Joe est le développeur principal. Il est le seul à faire confiance pour écrire du code ultra-fiable, à chaque fois. Il écrit environ 80% du logiciel essentiel à la mission, car il est le meilleur

Les métriques sont une mauvaise mesure des développeurs.

0
Paul Nathan

Je voudrais partager mon expérience et comment j'ai appris un processus très précieux pour mesurer la performance de l'équipe. Je dois admettre que je suis tombé sur le suivi des indicateurs de performance simplement parce que la plupart des ministères feraient la même chose, mais pas vraiment pour mieux comprendre avant d’avoir la responsabilité d’évaluer les performances des développeurs. Après quelques lectures, j’ai évolué avec la solution suivante.

Dans chaque projet, je divertirais l'équipe dans une discussion sur les exigences du projet et les impliquerais pour que tout le monde sache ce qu'il y a à faire. Dans la même discussion via la collaboration, nous diviserions les projets en tâches et pondérerions ces tâches. Auparavant, nous estimions l'achèvement du projet à 100%, chaque tâche ayant un pourcentage de contribution. Cela a fonctionné pendant un certain temps, mais ce n’était pas la meilleure solution. Nous allons maintenant fonder la tâche sur le poids ou les points pour qu’elle soit exacte et utiliser des mesures relatives pour comparer la tâche et différencier les poids, par exemple. Il est nécessaire de développer un formulaire Web pour collecter les données des utilisateurs.

 1. User Interface - 2 Points
 2. Database CRUD  - 5 Points
 3. Validation     - 4 Points
 4. Design (css)   - 3 Points

Avec cette stratégie, nous pouvons déterminer approximativement chaque semaine ce que nous avons accompli et ce qui reste à faire pour le groupe de travail. Nous pouvons également être en mesure de déterminer qui a obtenu les meilleurs résultats.

Je dois admettre que cette stratégie présente encore des défis, car tous les développeurs ne sont pas à l'aise avec toutes les technologies. D'une manière ou d'une autre, certains sont enthousiastes à l'idée d'apprendre les technologies simplement parce qu'ils constatent que 2015 représente un pourcentage élevé de points dans cette section, alors que d'autres feraient ce qu'ils peuvent.

Rappelez-vous, ne suivez pas un indicateur de performance clé pour son propre intérêt, mais suivez-le pour son aperçu.

0
szakwani