Pourquoi nos projets informatiques échouent - Compte-rendu du talk de Ludovic Cinquin à La Duck Conf 2018
Ludovic Cinquin inaugure La Duck Conf en nous présentant un ensemble d’idées reçues qui peuvent mener à l’échec de nos projets informatiques. Bien souvent ces échecs sont documentés, mais inconnus des acteurs de ces projets. Le speaker nous invite également à prendre non seulement du recul, mais aussi prendre en compte notre contexte de travail pour les dépasser.
Idée reçue #1 : Pour livrer à temps une application, on va ajouter des développeurs
Une pensée commune est de croire que si l’on augmente les ressources pour effectuer une tâche, celle-ci se terminera plus rapidement. La loi de Brooks s’attache à démontrer le contraire : « Ajouter des personnes à un projet en retard accroît son retard »
En effet, ajouter une personne sur un projet introduit de la perturbation : elle doit découvrir le code, monter en compétences, ce qui engendre des problèmes de communication et des perturbations avec le reste de l’équipe, et donc une perte de vélocité globale.
Idée reçue #2 : Supprimer les temps morts permet d’augmenter la productivité
Ludovic nous propose un parallèle entre la théorie des files d’attente et l’agile. Le lead time est le temps moyen passé dans le système, soit le temps que met une user story entre le moment où elle est prête à être développée et sa mise en production. Si les développeurs sont chargés à 100 %, ce lead time va augmenter de manière continue. Dans les esprits, plus on travaille et plus on produit. Or le temps optimal d’occupation d’un développeur est de 80 %. Une démonstration de cette théorie dans la vie de tous les jours est la réduction de la vitesse sur le périphérique : cela a permis d’y réduire le nombre de bouchons.
Voir la présentation complète du talk sur slideshare.
Idée reçue #3 : Affecter les gens sur plusieurs projets permet de lisser la charge et de supprimer les temps morts
Pour limiter justement ces temps mort une pratique est d’affecter une personne sur plusieurs projets. Ainsi, lorsqu’un projet est au ralenti, elle peut s’occuper des tâches d’un autre. Mais ce multi tasking individuel a un coût : selon Peter Bregman, cela a pour effet de faire baisser la productivité de 40 % et de lui faire perdre 10 points de QI. Ludovic nous suggère donc de faire des projets en série plutôt qu’en parallèle.
Idée reçue #4 : On va pouvoir prendre des profils moins chers pour la maintenance
Une pratique courante dans les DSI est de réaliser le développement d’une application localement avant d’offshoriser, pour des raisons de coûts, la maintenance de celle-ci. Le speaker cite Robert Glass, auteur de Fact and Fallacies of Software Engineering, qui avance que la maintenance d’un logiciel représente entre 40 et 80 % du coût de celui-ci. La maintenance est en fait une tâche complexe qui nécessite de profils de haut niveau.
Idée reçue #5 : En misant sur la réutilisation nous allons réduire nos coûts de développement
Toujours dans cette optique de réduction des coûts, il y a une volonté de capitaliser sur les développements avec la création d’un composant générique afin de le réutiliser. Selon ce même Robert Glass, un composant réutilisable est trois fois plus complexe à construire qu’un composant à usage unique. De plus, il y a toujours des variations suivant le contexte d’utilisation du composant générique, en les multipliant on va accentuer la complexité de ce dernier. Mieux vaut donc être avisé avant de se lancer dans un tel chantier.
Idée reçue #6 : Les primes sur objectifs permettent de motiver les gens
Pour illustrer cette idée reçue, Ludovic Cinquin s’appuie sur deux exemples :
- Le Marshmallow Challenge : ce jeu de team building consiste à créer la tour la plus haute à l’aide de 20 spaghettis, du scotch et de la ficelle. Si l’on compare les résultats de plusieurs équipes, on constate de part et d’autre des scores honorables. Si l’on introduit un prix de 10 000 dollars pour la tour la plus haute, aucune d’entre elles ne voient le jour.
- Le Cobra Effect : le gouvernement britannique de l’Inde coloniale a constaté une recrudescence des cobras. Il a proposé une prime pour chaque tête de cobra apportée. Les habitants se sont donc mis à élever des cobras clandestinement afin d’accroître leurs gains. Le gouvernement a donc arrêté la distribution de cette prime, les éleveurs ont libéré les cobras clandestins, le nombre cobra en Inde a donc augmenté.
Les bonus ne marchent que lorsqu’il concerne une tâche connue et ne nécessitant pas de collaboration. Pour réussir un projet informatique il faut de la créativité et de la collaboration. Ne donnez donc pas à vos développeurs des objectifs sur des critères comme la vélocité ou la couverture de test : les gens vont truquer les métriques et contourner les bonnes pratiques pour satisfaire vos objectifs.
Idée reçue #7 : La localisation des équipes n’est pas importante
La courbe d’Allen illustre parfaitement le non fondement de cette affirmation : elle représente la probabilité de communiquer de deux personnes suivant la distance qui les sépare. On en déduit que si une personne n’est pas sur le même plateau projet, la probabilité est très faible. Elle est même identique que l’on soit à 30 mètres ou à plusieurs dizaines de kilomètres.
La distance influence également le comportement et l'interaction des personnes.
Développer un logiciel ne fonctionne que si la communication est bonne.
Idée reçue #8 : La taille du projet n’est pas importante
Selon une étude de Casper Jones, plus un logiciel a de fonctionnalités, plus il coûte cher. Il est aussi avéré que plus un logiciel est de bonne qualité moins il coûte cher. Il est cependant plus difficile de faire de la qualité avec un grand nombre de développeurs.
Commencez donc petit : un projet maîtrisable avec des mises en production régulières.
Idée reçue #9 : L’informatique n’est pas le cœur de métier dans l’entreprise
On constate aujourd’hui que les investissements dans l’IT ont un plus grand impact sur les bénéfices que les investissements en R&D et publicité. Si vous désirez approfondir ce sujet, Ludovic vous recommande la lecture de The Impact of IT Investment on Profit de Sunil Mithas.
L’avènement des écrans, des devices et d'internet a entraîné, chez les grands groupes, la « Digitalisation ». Qualifié de buzzword par le speaker, il nous en propose la définition suivante : « Moment où internet n’est plus utilisé comme un outil mais comme un levier de transformation »
Ces grands groupes se doivent donc de maîtriser la technologie pour agir sur ce levier de transformation : la tendance est donc à la ré internalisation des compétences en développement
Ludovic Cinquin termine en nous rappelant que nous sommes tous des Spiderman : Nous avons un grand pouvoir et donc de grandes responsabilités. En tant que personne maîtrisant les technologies, nous avons le pouvoir de façonner le monde de demain. Nous avons le droit de faire des erreurs mais nous nous devons d’aller au-delà des idées reçues pour réussir nos projets informatique.