Le mythe du mois-homme (The Mythical Man-Month: Essays on Software Engineering) est un livre de Frederick Brooks considéré comme un classique dans le domaine du génie logiciel.

Le titre de l’ouvrage fait référence à une unité de coût de développement : le mois-homme, c’est-à-dire le travail d’un homme pendant un mois. Le seul fait d’utiliser cette unité tend à faire croire qu’un travail de 1 personne pendant n mois peut parfaitement être réalisé par n personnes pendant 1 mois ; selon cette idée, on pourrait diviser les temps de développement par deux en mettant deux fois plus de personnel.

Or, expérimentalement, cela est faux. Le proverbe cité par Brooks pour exprimer cette idée est : « Neuf femmes ne font pas un enfant en un mois »1.

Bien que certaines remarques proprement techniques de l’ouvrage soient très datées (car portant sur des types de systèmes depuis longtemps dépassés), de nombreux problèmes soulevés par Brooks sont toujours d’actualité au XXIe siècle.

Le livre a été publié une première fois en 1975, et réédité en 1995. La réédition contient l’essai No Silver Bullet (Pas de balle en argent) et des commentaires de l’auteur.

Résumé

Brooks y expose son expérience du développement informatique et notamment du développement d’OS/360 chez IBM. Bien qu’il mentionne parfois des outils ou des problèmes algorithmiques, il s’attache plutôt à l’organisation et aux méthodes de travail des équipes de développement : hiérarchie des responsables, documentation et prévision des délais de développement.

La loi de Brooks

Ajouter des ressources humaines à un projet en retard sur les prévisions ne fait qu’accentuer ce retard : c’est la loi de Brooks. En effet, le personnel ajouté devra être formé au nouveau système, ce qui prend un temps non négligeable que ne peut compenser la productivité ajoutée par le personnel en question. Les nouveaux ont souvent besoin d’entraînement et de formation. De plus, leur présence alourdit les canaux de communications. Si n personnes doivent échanger entre elles (sans hiérarchie), quand n augmente, leur extrant M décroît et peut même devenir négatif (c’est-à-dire que le travail total à réaliser à la fin d’une journée est plus grand qu’au début de cette journée).

Formule des canaux de communication :
En combinatoire, n participants pris 2 à 2 = C_2^n = \frac{n!}{{(n-2)!}\times{2}} = \frac{n\times(n-1)}{2}

Pour 50 participants, on a ainsi \frac{50\times(50-1)}{2}, soit 1 225 canaux de communication.

Bibliographie :

http://www.cs.unc.edu/~brooks/

No Silver Bullet: Essence and Accidents of Software Engineering (http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBullet.html)

The mythical Man-Month (pdf)

 http://www.tibonihoo.net/blog/2012/12/revue-le-mythique-mythical-man-month/