Un premier article contre la tendance (peut-être française) à se limiter au découpage analytique, sans pousser jusqu’à la pensée globale qui met les éléments en regard et fait des synthèses et des comparaisons fructueuses.
Quelques exemples :
- globalité d’un échange d’information. Une somme d’échanges individuels est moins bien qu’une réunion. La créativité n’est pas la même quand plusieurs personnes sont là et interprètent ce que disent l’un ou l’autre, réagissent, comparent, complêtent, transforment. N points de vue confrontés en même temps, globalement, valent mieux que N fois un échange entre 2 points de vue.
- globalité de l’optimisation. Quiconque a essayer de faire marcher un algorithme d’optimisation (recuit simulé, algorithmes génétiques, …) sait bien que pour trouver l’extremum absolu, on est obligé de prendre des décisions brutales, radicales, on ne peut pas se contenter de gagner un peu partout, de suivre la pente du gradient.
- globalité du chiffrage, de l’exercice qui consiste à dire quelle charge sera consommée pour réaliser tel ou tel développement.
- Quand on pratique le chiffrage, on se rend compte que ce qui est le plus intéressant dans l’exercice analytique, ce sont les hypothèses qui émergent au fur et à mesure. Le chiffrage repose sur la créativité
- Le chiffrage repose sur la créativité. La confrontation des idées de plusieurs personnes permettra d’identifier les réelles hypothèses, contraintes à considérer, coûts sous-jacents, …
- Le chiffrage repose sur la comparaison entre les items. Certes cela implique un découpage analytique aussi fin que nécessaire (et possible au vu des informations dont on dispose). Cela suppose aussi et surtout une comparaison des items obtenus, pour identifier des correspondances (items coûtant à priori la même chose), des économies d’échelle, … Après vient le moment de l’évaluation quantifiée. Il est beaucoup plus juste d’évaluer les différents items en poids relatif, pour ensuite éventuellement traduire ces poids en charge.
- Le chiffrage repose sur l’historique. Comparer les items du chiffrage en cours avec l’historique de l’équipe sur ce projet s’avère très enrichissant, surtout si, dans l’historique, on dispose des hypothèses de départ, voire de la connaissance de comment les choses on tourné.
- globalité de la gestion de priorités. Il ne suffit pas d’arbitrer chaque bug pour dire on l’embarque / on l’embarque dans la release suivante. Il faut chiffrer les bugs (cf ci dessus). Il faut évaluer la charge que la somme représente, classer, comparer. Low/Medium/High pour chacun comporte beaucoup moins d’information qu’un classement.
- Globalité de la spécification, du chiffrage, du développement : le chiffrage ne doit pas être dissocié de la spécification de ce qui doit être réalisé. C’est (pour moi) à la base des méthodes agiles. Etablir un cahier des charge grosse maille pour une partie assez réduite de l’application. Chiffrer. En déduire des hypothèses à faire confirmer à la maîtrise d’ouvrage ou infirmer. En déduire ce qui coûte, et proposer des alternatives à la maîtrise d’ouvrage. Ré-établir le cahier des charge grosse-maille, réiterer. Cela va jusqu’au développements : si en cours de développement on se rend compte que quelque chose est beaucoup plus complexe que prévu, ou bien qu’il y a une autre approche beaucoup moins coûteuse, à nouveau reflexion globale specs/chiffrage/developpement. “Design to cost“. On a trop tendance à séparer specification et réalisation.
- Globalité des tests. Les tests unitaires (une couche d’un module), les tests d’intégration (toutes les couches d’un module) ne doivent pas faire oublier les tests de bout en bout, use case complet de l’utilisateur, peut importe qu’il passe par le module de gestion des utilisateurs (login) puis par le module de recherche puis par le module de passage de commande en ligne puis par le module de my space puis…
- Globalité d’une prise de décision rationelle. On identifie les critères de décision. On identifie les scénarios à étudier. On évalue chaque scénario sur chaque critère. Voila pour la partie analytique. Lors de cette évaluation, on identifie de nouveaux critères, pour lesquels on évalue les différents scénarios. On commence à pondérer les critères. On calcule le poids final de chaque scénario. On compare. On se rend compte que tel ou tel critère est plus important, on augmente son poids. On identifie de nouveaux critères, pourquoi pas de nouveaux scénarios. Etc… Au final, on a l’illusion d’une décision analytique, le process était beaucoup plus complexe.