Cette question s’avère délicate.

S’il est facile de mesurer la rentabilité d’une entreprise, l’exercice qui consiste à mesurer la performance d’une équipe de développement reste complexe.

Il est assez facile de mesurer les coûts, mais comment mesurer la valeur réelle de ce qui est produit ? Elle représente, la plupart du temps, la transformation en termes de ventes et cela ne dépend pas seulement de l’équipe de recherche et développement. En outre, il peut y avoir également une opportunité de valeur additionnelle dans la manière dont cela aide l’entreprise à prendre des décisions stratégiques en mettant en avant l’information pertinente de la bonne façon. Donc mesurer la performance intrinsèque d’une équipe technique n’est pas simple.

Pour les applications d’entreprise, cela peut sembler plus facile dans la mesure où la valeur réside principalement dans le soutien des processus du métier. Mais si l’on creuse un peu, il apparait rapidement que la compréhension, la gestion et l’évolution de ces processus est une responsabilité qui s’étend à des départements bien au-delà de l’équipe technique.

Comment l’équipe de développement contribue à améliorer la façon dont une entreprise gère ses affaires est la clé d’une meilleure performance. Et cela nécessite une réelle collaboration entre l’équipe de développement et les autres départements.

Dès lors que l’on isole les différentes dimensions clés, on peut trouver des moyens d’évaluer son équipe.

Selon nous, ces dimensions sont les suivantes :

  1. Alignement avec les besoins métier
  2. Productivité
  3. Qualité incluant fiabilité, performance, scalabilité, exploitabilité, ergonomie et facilité d’utilisation
  4. Evolutivité et dette applicative associée,
  5. Prédictibilité.

Ces 5 dimensions sont toutes importantes pour avoir une équipe de développement performante sur le long terme.

Commençons par l’alignement. C’est probablement le facteur le plus important pour la performance du fait de son effet de levier considérable qui peut créer une différenciation significative entre les équipes.

Beaucoup de gens mesurent la productivité (ou pire, juste les coûts) mais cela n’a pas de sens si personne ne vérifie réellement comment l’effort de développement est aligné à la valeur apportée pour le gain d’affaires.

Sur le schéma ci-après l’équipe N°3 produit moins que les autres (flèche la plus courte) en quantité. Pourtant cette équipe sera à même de fournir plus de valeur à son entreprise dans la mesure où son effort est plus aligné avec les besoins du métier (projection sur l’axe valeur).

Alignement

Et comme le coût de maintenance est intimement lié à la quantité de code produit, le bénéfice d’une bonne focalisation sur la valeur pertinente augmentera encore au fil du temps, alors que les équipes 1 et 2 auront à maintenir du code sans valeur ajoutée et à supporter une dette applicative plus lourde.

Bien sûr, cet alignement est particulièrement difficile à mesurer. Comment peut-on vraiment déceler un effort non productif sur un projet ?

Notre expérience d’audit des applications et des logiciels démontre que les équipes de développement surinvestissent souvent sur des frameworks avec des approches techniques trop coûteuses comparées à la valeur apportée à l’entreprise. Nous détectons souvent du code inutilisé, des fonctions qui existent déjà dans les classes standards et de la sur-ingénierie qui n’apporte pas de réelle valeur dans le contexte de l’application.

Ce syndrome est lié au fait que les techniciens aime la technologie. Donc ils essaient de résoudre des problèmes qu’ils n’ont pas encore ou appliquent des choses qu’ils lisent sur Internet sans réellement comprendre si cela s’applique à leur problématique ou pas.

Une autre question délicate à propos de l’alignement est le positionnement de l’équipe technique dans certaines organisations. Parfois, l’équipe technique est positionnée comme une simple ressource qui n’a pas de valeur ajoutée, au-delà de la production, sur les décisions des départements ventes ou marketing, sans possibilité de dire un mot sur les options potentielles de conception.

Dans cette situation, vous obtenez une équipe technique faible, ce qui justifie a posteriori de donner les pleins pouvoirs aux équipes commerciales. Les organisations sont alors piégées dans un cercle vicieux et ferment l’opportunité d’obtenir un apport réel d’ingénieurs intelligents qui pourraient proposer des options de conception susceptibles d’optimiser le coefficient valeur de sortie/coût d’investissement.

Bien sûr, il existe aussi des applications de faible valeur avec peu d’espace pour la créativité et simplement un travail détaillé par un expert métier. Mais ces applications ont toutes les chances d’être disponibles sur le marché des progiciels donc pourquoi vouloir les développer dans ce cas ?

Les équipes qui sont allées dans cette voie en délocalisant leur développement à bas coûts ont la plupart du temps perdu la capacité d’une évolution majeure de leur offre. A un certain stade, ils sont rattrapés par une perturbation fonctionnelle majeure sur leur marché, sans parler de la nécessité de suivre l’innovation technologique, un défi auquel toutes les équipes logicielles finissent par devoir faire face.

Selon nous, c’est uniquement avec la contribution des ingénieurs logiciels que vous pouvez faire une réelle différence à long terme sur le marché, dans la mesure où ils sont capables de faire les choix critiques qui impacteront les coûts de développement à grande échelle… pour la même valeur !

De notre point de vue, seul un processus de collaboration durable et convivial entre les personnes qui maîtrisent la technologie et celles qui maîtrisent les besoins peut aboutir à des solutions innovantes qui ont du succès. C’est la principale raison qui fait que les méthodes agiles sont devenues si populaires.

Au-delà d’assurer l’alignement comme partie intégrante de votre méthodologie, il y a aussi des façons d’évaluer votre niveau d’alignement actuel à l’aide d’un audit externe par exemple. Cela peut vous aider à découvrir des zones de code qui peuvent être simplifiées ou recentrées sur votre métier.

Une autre façon avancée de maintenir cet alignement sur le long terme est de mettre les données directement dans votre application. Cela est particulièrement intéressant pour les applications Saas ; l’éditeur de logiciel peut ainsi facilement suivre les fonctionnalités réellement utilisées par les clients. Suivre l’utilisation fournit des informations essentielles pour connaître la valeur de chaque fonctionnalité et permet de faire des investissements basés sur des faits, et non seulement sur des perceptions, que celles-ci proviennent de vos clients ou des équipes internes.

Lire la suite : Mesurer la performance d’une équipe de développement – Partie 2

Ne ratez plus aucunes actualités avec la newsletter mensuelle de SoftFluent