Qu'est-ce que la productivité logicielle ?
C'est en fait assez simple : la productivité est tout simplement rendement au fil du temps.
La difficulté réside toutefois dans la recherche d’une mesure adaptée des résultats. Les résultats, du moins dans le contexte des logiciels, sont difficiles à normaliser. Dans la plupart des cas, nous pouvons les considérer en termes de valeur commerciale et/ou de fourniture de fonctionnalités reconnaissables par l’utilisateur.
Pourquoi tant d'entreprises souhaitent-elles mesurer la productivité de leurs logiciels ? Est-ce vraiment si important ?
Pour tout projet de développement de logiciel, les responsables ont le devoir de rechercher des quantifications et un certain degré de certitude concernant les coûts, le calendrier et la portée. Ils rechercheront également des moyens et des mesures pour…
- …se comparer à d’autres organisations
- …suivre les progrès au fil du temps
- …évaluer la productivité de l’équipe et de l’individu
- …utiliser la productivité pour déterminer les décisions de délocalisation
- …utiliser la productivité pour éclairer les décisions de priorisation
Mesures générales de productivité
Nous avons tendance à nous concentrer principalement sur la productivité des développeurs, car ces derniers sont généralement les membres les plus actifs et les plus coûteux d'un projet logiciel. Cependant, il est également utile de comprendre la productivité des autres, notamment des testeurs, des analystes, des chefs de projet, des concepteurs, des architectes et de toute autre personne contribuant au succès de ces projets.
Critères d'une bonne mesure de productivité logicielle
Malheureusement, il n’existe pas de mesure parfaite des « résultats » d’un travail sur un logiciel. Nous devons donc trouver des indicateurs alternatifs, indirects, qui nous permettent de quantifier plus précisément ces résultats.
Idéalement, pour les logiciels, nous voulons une « métrique de sortie » qui permet d'obtenir les résultats suivants :
- est fortement corrélé à la valeur commerciale
- est injouable, ainsi que cohérent, objectif, répétable et vérifiable de manière indépendante
- est indépendant, fonctionnant quel que soit le langage de programmation
- est valable pour comparer un projet à un autre
- peut expliquer que le travail plus complexe soit confié à des membres de l'équipe plus compétents
- peut être collecté à moindre coût et facilement
Notez que les mesures idéales pour la productivité individuelle diffèrent légèrement de celles qui permettent de déterminer la productivité d'une équipe. Utilisez ce qui fonctionne le mieux pour votre scénario.
Classement des indicateurs logiciels
Le tableau suivant a été réalisé par Steve McConnell et est discuté dans cette présentation pour classer les mesures de productivité logicielle appropriées. Les points de fonction COSMIC étaient moins connus et le dimensionnement automatisé n'était pas disponible lorsque Steve a créé ce tableau pour la première fois. Nous avons ajouté ici la colonne pour les points de fonction COSMIC. Cette chronique supplémentaire est subjective et ne fait pas, à notre avis, partie de l'évaluation originale de Steve.
LOC/SM
|
FP/SM
|
CFP/SM
|
Points d'histoire/SM
|
360 évaluations par les pairs
|
Évaluation du gestionnaire
|
Prévisibilité de l’achèvement des tâches
|
Cas de test réussis
|
Taux de défauts
|
|
---|---|---|---|---|---|---|---|---|---|
La mesure reflète véritablement la productivité | 3 | 4 | 4 | 4 | 3 | 2 | 1 | 4 | 3 |
Représente directement ou indirectement la totalité ou la plupart des résultats du travail | 4 | 4 | 4 | 5 | 5 | 5 | 2 | 4 | 3 |
Utile pour mesurer le travail des non-programmeurs | 1 | 4 | 4 | 4 | 5 | 5 | 5 | 4 | 4 |
Résiste au « jeu » de la part de contributeurs individuels | 2 | 5 | 5 | 4 | 3 | 3 | 4 | 4 | 5 |
Fortement corrélé à la valeur commerciale | 2 | 3 | 4 | 4 | 3 | 4 | 2 | 4 | 3 |
Objectif, vérifiable de manière indépendante | 4 | 4 | 5 | 3 | 2 | 2 | 4 | 4 | 4 |
Les mesures produisent le même résultat, quel que soit le langage de programmation utilisé | 1 | 5 | 5 | 3 | 5 | 5 | 5 | 5 | 5 |
Prend en charge les comparaisons de personne à personne au sein d’une équipe | 3 | 4 | 4 | 4 | 5 | 4 | 4 | 4 | 4 |
Représente les meilleures personnes qui obtiennent les missions les plus difficiles | 2 | 4 | 5 | 4 | 5 | 5 | 1 | 5 | 2 |
Les données peuvent être collectées facilement et à moindre coût | 3 | 1 | 5 | 3 | 3 | 4 | 3 | 3 | 4 |
25 | 38 | 45 | 38 | 39 | 39 | 31 | 41 | 37 | |
Rang | 9 | 5 | 1 | 5 | 3 | 3 | 8 | 2 | 7 |
Dans l'évaluation initiale de Steve, la conclusion était que plusieurs approches étaient très proches, les « cas de test réussis » étant classés au premier rang. Aujourd'hui, avec l'avènement d'une approche plus simple du dimensionnement fonctionnel (points de fonction COSMIC contre points de fonction IFPUG) et du dimensionnement automatisé, il semble qu'il existe une mesure principale claire pour évaluer la productivité : Points de fonction cosmique.
Des mesures de productivité trompeuses
Bien qu'il n'existe pas de mesure parfaite pour le travail sur les logiciels, certaines sont plus utiles que d'autres. Certaines mesures sont susceptibles d'induire en erreur, d'être utilisées à mauvais escient ou d'inciter à des comportements inutiles.
Lignes de code (LOC)
Les développeurs peuvent varier considérablement dans les lignes de code écrites pour une fonctionnalité donnée. Il est facile de mesurer, mais pas nécessairement bien Mesurez, car les différents langages de programmation nécessitent différentes quantités de codage et les écarts entre eux peuvent être considérables. Utiliser des lignes de code comme mesure peut également encourager les développeurs à écrire des lignes superflues simplement pour augmenter leur productivité. Cela a un effet contre-intuitif, car cela peut générer des coûts de maintenance supplémentaires.
Points d'histoire
Les points d'histoire sont un indicateur subjectif et non standard de l'estimation de l'effort. Certains prétendent qu'ils mesurent la complexité ; en réalité, ils ne mesurent qu'au mieux pourrait Les story points donnent une indication de la difficulté d’une tâche particulière. En substance, ils indiquent les jours « idéaux » pour le personnel. Ils ne sont pas adaptés au travail sous contrat et ne peuvent pas être utilisés pour comparer une équipe à l’autre, ni un projet à l’autre. Il n’y a aucun apprentissage ni amélioration continue réalisable en adoptant des story points.
L'histoire compte
La taille des user stories peut également varier considérablement. Une story peut être une tâche technique de dix minutes pour une personne, tandis qu'une autre peut nécessiter un mois de travail pour toute une équipe. D'après notre expérience, les stories varient de 0 à 120 CFP, ce qui fait du nombre une mesure incohérente.
Autres mesures de productivité d'équipe
L’évaluation de la productivité basée sur une carte de score peut être utile dans certaines circonstances, en particulier si les valeurs de la carte sont à la fois normalisées entre les équipes et choisies pour refléter tous les critères que l’organisation souhaite utiliser.
Il est important de choisir des critères axés sur les valeurs de l'organisation (pour la qualité et le résultat). Il est également important d’aligner les équipes sur les véritables objectifs de l’entreprise.
Le gagnant : les points de fonction COSMIC
Notre mesure de sortie recommandée est Points de fonction COSMIC (CFP). Voici pourquoi :
- CFP est enraciné dans principes fondamentaux du comportement des logiciels (entrées, sorties, lectures et écritures).
- Le CFP est axé sur l’utilisateur ; il s'aligne sur ce qui est nécessaire pour offrir de la valeur à l'utilisateur.
- CFP est un proxy raisonnable pour valeur commerciale.
- CFP s'aligne bien à effort réel.
- CFP a une définition pour un unité de taille individuelle.
- CFP fournit un mesure de la taille, qui est le facteur le plus important pour déterminer coût et durée d'un projet.
- CFP permet aux gestionnaires de gérer les activités non liées au développement, avec CFP comme un métrique de base.
- Le CFP est ouvert, libre et indépendant.
- CFP sont adaptés à exigences incomplètes (c'est-à-dire Agile).
- CFP sont adaptés à presque tous les types de logiciels.
- CFP une estimation précoce est presque entièrement automatisé (par ScopeMaster, bien sûr).
La mesure de la productivité du développement logiciel est l'activité d'enregistrement des mesures et des attributs d'une entreprise logicielle à des fins de comparaison.

Quelle est la productivité de nos développeurs de logiciels ?
Vous voulez savoir si votre équipe est plus productive que les autres équipes ou que les normes du secteur ?
Vous pouvez comparer les activités d’une équipe par rapport à une autre au sein d’une organisation, ce qui est analyse comparative interneLa comparaison avec une autre organisation similaire est appelée analyse comparative externe. Bien que les références sectorielles puissent être intéressantes, les références locales et internes sont généralement considérées comme les plus fiables.
Analyse comparative de la productivité du développement logiciel et évaluation de votre équipe
Si vous avez une équipe formidable, pourquoi ne pas publier votre indice de productivité ? Cela pourrait vous aider à remporter des projets de développement. Tout ce dont vous avez besoin est un ensemble d’histoires d’utilisateurs d’un projet précédent, environ une heure et un accès à ScopeMaster.
- Prenez un ensemble d'exigences issues d'un projet récent. Téléchargez-les dans ScopeMaster et laissez l'analyseur déterminer la taille.
- Pour le calculateur de productivité, saisissez l'effort total du projet (en jours personnels), la durée du projet (en mois) et la suppression des défauts que vous avez finalement obtenue sur le projet.
- ScopeMaster déterminera ensuite le indice de productivité de votre équipe.
…et c’est tout !
Si vous vous classez au-dessus de la moyenne (environ six (sur l'indice), alors vous êtes sur la voie de la grandeur. Si vous le souhaitez, nous pouvons même publier l'indice de productivité de votre équipe dans notre classement !
N’oubliez pas : méfiez-vous des mesures trompeuses. SLes points d'histoire, les lignes de code, les tailles de t-shirts et les jours-hommes sont toutes des techniques faciles à manipuler pour estimer le temps et les efforts. Tenez-vous-en aux méthodes de dimensionnement fonctionnel standard ISO pour obtenir les meilleurs résultats.