25 points par GN⁺ 2025-02-19 | 1 commentaires | Partager sur WhatsApp

> « À votre avis, combien de temps ça va prendre à faire ? »

  • Cette question, que les développeurs logiciels redoutent et détestent, a été remise en perspective par mon lave-linge
  • Ce que mon lave-linge m’a appris sur la difficulté de l’estimation de l’effort logiciel (Software Effort Estimation)
    • En emménageant dans une nouvelle maison, l’installation du lave-linge a pris bien plus de temps que prévu
    • Une tâche qui se termine normalement en 10 minutes a cette fois pris 4 heures
    • Des obstacles imprévus (blockers) sont apparus en cours de route et ont retardé l’installation
    • J’ai réalisé que ce processus ressemble beaucoup à ce qui rend l’estimation de l’effort difficile en développement logiciel
  • Obstacles et solutions
    • Obstacle 1 : impossible de brancher le lave-linge à l’alimentation électrique faute d’ouverture
      • Solution 1 : achat d’une scie cloche de 60 mm dans un magasin de bricolage pour percer un trou
    • Obstacle 2 : une perceuse grand public ne permettait pas d’utiliser la scie cloche
      • Solution 2 : emprunt et utilisation d’une perceuse plus puissante
    • Obstacle 3 : les tuyaux d’arrivée et d’évacuation d’eau étaient plus courts que prévu dans la nouvelle maison
      • Solution 3 : tentative d’achat de nouveaux tuyaux extensibles, puis constat que les tuyaux existants ne pouvaient pas être prolongés, avant de racheter de nouveaux tuyaux
    • Obstacle 4 : un capuchon métallique solidement fixé au robinet ne pouvait pas être retiré
      • Solution 4 : achat d’une clé plus grande pour retirer le capuchon
    • Obstacle 5 : le spigot de l’évacuation était bloqué par une paroi en PVC
      • Solution 5 : perçage de la paroi en PVC avec une perceuse, puis raccordement du tuyau d’évacuation
    • Au total, il a fallu 5 visites au magasin de bricolage et 4 heures de travail pour installer correctement le lave-linge
  • Pourquoi l’estimation de l’effort en développement logiciel est difficile
    • Même pour une tâche familière, un environnement différent augmente fortement la probabilité de variables imprévues
    • Si les estimations fondées sur l’expérience passée se trompent souvent, c’est à cause des « inconnues inconnues » (Unknown Unknowns)
    • Quelques exemples :
      • une bibliothèque prévue n’est plus maintenue et doit être corrigée directement
      • un outil de développement a été mis à jour et la méthode utilisée jusque-là ne fonctionne plus
      • une nouvelle version de l’OS fait que des dépendances existantes ne fonctionnent plus correctement
      • un nouveau composant a été ajouté à l’infrastructure, mais ne se comporte pas comme prévu
  • Conclusion
    • Cette expérience dans une nouvelle maison montre à quel point l’estimation de l’effort est difficile en développement logiciel
    • Avant de commencer à développer, il faut examiner les exigences aussi minutieusement que possible, mais l’apparition de blockers imprévus reste inévitable
    • Même si un projet logiciel ressemble à une tâche familière, un nouvel environnement peut faire surgir des défis totalement différents
    • Il faut donc ajuster de manière souple le planning et les ressources en tenant compte de ces variables

1 commentaires

 
GN⁺ 2025-02-19
Commentaires Hacker News
  • Les estimations logicielles sont une blague. Il n’y a aucune sanction en cas de sous-estimation

    • On peut comparer cela à l’estimation de la production cinématographique. Il existe des entreprises qui vendent des garanties d’achèvement
    • Une garantie d’achèvement coûte environ 2 % du coût de production. Elle est généralement utilisée pour des films indépendants dont le budget va de 3 à 70 millions de dollars
    • La société de garantie prend en charge une partie des dépassements de coûts, mais si ceux-ci deviennent trop importants, elle licencie le réalisateur et reprend la production. C’est ce qui rend le mécanisme réellement efficace
    • Les sociétés de garantie font leurs estimations à partir de données historiques. Elles disposent des coûts réels de nombreux films
    • Elles tiennent des relevés détaillés du coût de chaque scène. Par exemple, pour une course-poursuite en voiture, elles consultent dans leur base de données le coût des 100 précédentes courses-poursuites
    • Elles disposent aussi d’informations sur les réalisateurs, producteurs et acteurs, et comparent le coût de tournage de leurs scènes à celui de leurs pairs
    • Ce n’est pas de la science des fusées, c’est de la souscription d’assurance
  • Excellent article, mais il manque une différence essentielle avec l’expérience logicielle

    • Le client peut ne pas savoir ce qu’il veut réellement. On ne peut pas obtenir cette information à l’avance, même en posant toutes les questions possibles
    • Il faut absolument refuser de facturer au temps passé tout en s’engageant sur un prix forfaitaire par projet
  • Les projets DIY se passent toujours comme ça

    • On parle beaucoup des biens matériels, mais les outils et les pièces prennent énormément de place
    • L’auteur avait déjà beaucoup d’outils, mais il lui en manquait encore quelques-uns
    • Au final, on va moins souvent à la quincaillerie, mais l’atelier se retrouve rempli d’objets
  • J’ai appris ce que signifie rester bien droit pendant 25 minutes après avoir percé, ainsi que l’intérêt étonnant des écouteurs à réduction de bruit

    • Les casques à réduction de bruit ne sont pas des protections auditives. Une protection auditive crée une barrière physique entre la source du bruit et l’oreille
    • Les casques à réduction de bruit écoutent les sons ambiants et génèrent des ondes opposées. Comme ce n’est pas parfait, ils ne protègent pas suffisamment les oreilles
  • Bonne histoire. Mais mon expérience est presque exactement l’inverse

    • Ce n’est pas que 90 % du travail est facile, c’est que 90 % du temps on tâtonne
    • Il arrive souvent que plusieurs entreprises refassent le même travail sur un même produit
  • Cela me rappelle la phrase : « la réalité a des détails surprenants »

    • Ce qu’on ne sait pas reste tel quel jusqu’à ce qu’on s’approche de quelque chose de nouveau
  • Quand l’auteur perce un trou pour le câble d’alimentation, il ajuste proprement un insert en plastique

    • Les ouvriers du bâtiment découpent grossièrement un trou pour le tuyau d’eau puis vont fumer une cigarette
    • Cela correspond à mes expériences passées
  • La plupart de mes collègues sont surpris quand je dis que la phase de recherche et d’inventaire prend beaucoup de temps avant le début d’un projet

    • La plupart de mes collègues terminent leurs projets rapidement, puis passent beaucoup de temps en maintenance après coup
    • Moi, j’investis beaucoup de temps au début du projet, ce qui évite d’avoir besoin de maintenance ensuite
  • Point intéressant à garder en tête la prochaine fois que le tarif d’un technicien vous surprend

    • Si un plombier facture 300 dollars pour raccorder une machine à laver en quelques minutes, c’est parce qu’il sait comment percer le trou pour l’évacuation
  • Que faire quand on ne sait même pas quelles questions poser avant de démarrer un projet logiciel ?

    • Je ne suis pas opposé à considérer le travail d’exploration comme un exercice de collecte des exigences
    • Faire un seul passage à la quincaillerie, avec une grande liste d’achats et un ensemble de questions ouvertes, permet ensuite de travailler de façon plus efficace et plus simple