Pourquoi nous sous-estimons nos tâches ?

novembre 28, 2020 0 Par Knight Errant

Nous avons tendance à sous-estimer nos tâches et il arrive que nous ne terminions pas nos récits (storys) à la fin de nos sprints, ou nos objectifs à la fin d’un incrément de programme. Pour quoi ?

Le problème ne date pas d’hier, Frederick P. Brooks, Jr en parle dans son livre The Mythical Man-Month, publié initialement en 1975 (oui, il y a 45 ans !).

Le but de cet article, inspiré du livre susmentionné, est de vous offrir des éléments à considérer lors que vous devez faire des estimations.

La nature de nos tâches

En général, nous sommes optimistes !

D’une part, nous avons tendance à penser que tout va aller bien, nous prenons souvent par acquis que toutes les tâches vont se réaliser dans le temps prévu initialement. Mais attention, dans le développement de logiciel, ce n’est pas souvent le cas.

Fréquemment nos tâches en informatique sont de nature complexe. Ce n’est pas comme suivre des étapes dans une recette pour préparer du riz. Nos étapes ne sont pas toujours à ce point simples. Par exemple, souvent, nous devons essayer un nouveau patron d’exposition, utiliser un nouveau mécanisme de sécurité ou encore, utiliser une technologie qui ne nous est pas familière, etc.

D’une autre part, les idées, lorsque nous les imaginons, ils ont l’air plus simples à faire de ce que nous pensons. Je peux m’imaginer en traversant à la nage une piscine olympique, même si je suis conscient que je ne ferai pas de record mondial, je peux bien m’imaginer à le faire. Être dans la piscine en train de le faire, c’est toute une autre histoire. Je veux vite réaliser que cela me prendra plus d’effort que ce que j’avais prévu.

Une idée c’est une chose, la réalisée, c’est toute une autre histoire

Programmer une fonctionnalité est une activité créative et terminer cette création implique plus qu’imaginer cette idée. Terminer cette création implique en plus d’imaginer l’idée, la programmation (réalisation) et la livraison à notre client final. Chacune de ces étapes nous apportera de défis, de découvertes, etc. qui nous demandera des efforts que nous n’avons pas prévu initialement.

Le mythe de jours-personne

Pour estimer une initiative ou un objectif d’incrément de programme, nous donnons de chiffres toujours en jours-personne.

Estimation des coûts vs estimation de progrès

Les coûts d’une initiative varient, en effet, en fonction du nombre de personnes et du temps estimés, donc l’information de jours-personnes est pertinente. Par contre, cette même information devient moins utile lorsqu’on veut estimer le progrès.

Le jours-personne implique (ou laisse présager) que les personnes et le temps sont interchangeables, alors que cela n’est pas vrai dans la majorité de cas, particulièrement en TI où les tâches, comme expliqué préalablement, sont fréquemment de nature complexe.

Lorsque nous avons une tâche ou des tâches qui ne peuvent pas être découpées à cause de contraintes imposant une séquence de réalisation, l’ajout de plus de capacité n’a aucun effet sur le calendrier de livraison. Faire et donner naissance un enfant prend neuf mois, quel que soit le nombre de femmes affectées à cette tâche. Beaucoup de tâches en développement de logiciel partagent cette caractéristique (ou cette contrainte).

Si on veut suivre le progrès, l’estimation des efforts devrait être fait en « jours » avec la prémisse d’avoir une équipe où toutes les compétences requises sont présentes.

Exemple,
L’objectif A prendra 45 jours de réalisation pour une équipe qui aurait toutes les compétences nécessaires pour les mener à terme.

L’ajout de plus de personnes dans ce cas-ci, ne permettra pas d’aller plus vite, puisque notre estimation considère déjà le fait qu’une équipe ayant toutes les compétences nécessaires est présente. Au contraire, l’ajout de plus de ressources va, fort probablement, empirer l’estimation.

Communication

L’ajout de ressources exige un effort supplémentaire de communication. Cet effort de communication doit être considéré dans l’estimation des efforts pour réaliser l’objectif.

La lourdeur ajoutée par le besoin de communication se décline en deux, en formation et en dépendances.

Formation

Chaque ressource doit être formée dans l’objectif en tant tel, la technologie impliquée, la stratégie de réalisation et de livraison, etc. La formation doit être effectuée avant que la nouvelle ressource soit fonctionnelle dans l’équipe. Cela implique un formateur et la nouvelle ressource (ou les nouvelles ressources). Ce sont des efforts linéaires qui varient en fonction du nombre de personnes concernées et qui doivent être considérés dans l’estimation globale.

Dépendances

Si l’ajout de ressources génère des dépendances, il faut considérer que la coordination des travaux génère également un effort qui doit être additionné dans l’estimation globale. Plus de personnes sont impliquées sur une même tâche, plus de temps de communication (coordination des efforts, conférences, débogage, fusion des travaux, etc.) à prévoir.

Dans le cas ici exposé, l’ajout de plus de personnes fait que les tâches prennent plus de temps, et non moins, dans une planification.

Conclusion

  • Lorsque nous estimons nos tâches, rappelons-nous que, en général, nous sommes optimistes, nous avons tendance à penser que toutes les tâches vont se réaliser selon le plan initial.
  • Considérons que compléter une activité créative, comprends en plus de l’idée, les tâches de réalisation et de livraison. Des tâches qui vont amener certainement des complexités additionnelles.
  • L’estimation des coûts et l’estimation des efforts ne doivent pas se baser sur la même métrique.
  • Pour l’estimation du progrès, il est préférable de parler de « jours », plutôt que « jours-personnes », sous la base d’avoir une équipe complète en terme des compétences requises.
  • Estimer avec la prémise qu’une équipe complète ayant les compétences requises est disponible fait en sorte que l’ajout de ressources aura fort probablement un impact négatif sur le calendrier de livraison.
  • Si des efforts de communication (formation, dépendances) sont nécessaires, ces efforts doivent être considérés dans l’estimation globale. Souvent ce sont des efforts linéaires et préalables à la réalisation des tâches. Les dépendances peuvent être entre membres d’une même équipe, ou entre équipes différentes.

Références