Inversion de contrôle
Par Jean-Baptiste le mardi 8 septembre 2009, 10:40 - General - Lien permanent
Je fais assez souvent la réflexion que le métier des SSII s'est dégradé, volontairement ou pas, par rapport aux principes d'origine. J'ai tendance à penser que le rôle premier d'une SSII est de savoir faire des logiciels sur mesure, et mener les projets donc jusqu'à une fin heureuse pour tout le monde. Ceci est bien entendu la vision idéaliste, mais je pense qu'il est censé correspondre à la majorité des cas. La plupart du temps, les clients ne savent pas ce qu'ils veulent, ni comment l'obtenir, et c'est tout à fait notre métier de savoir pourtant extraire un logiciel d'autant de chaos. Il n'y a pas à se plaindre de cet état de fait, c'est une composante normale de notre profession, et s'en indigner est juste une réaction puérile et irréaliste.
Pourtant, ma propre expérience des SSII a prouvé plutôt que le client, ne connaissant pourtant rien à la construction de logiciels, pouvait demander n'importe quoi, même l'échec, car "le client est roi". Le rôle de conseil et d'accompagnement qui me semble indispensable s'est transformé dans la grande majorité des cas en une sorte d'intérim très cher qui produit globalement pas grand chose par rapport au prix investi.
Maintenant, voilà que j'ai deux retours de forfaits ou le client a explicitement demandé l'utilisation de TDD dans le développement de son logiciel. Je ne m'en réjouie pas. Voilà que le client est obligé de demander la qualité contractuellement? Obligé de demander à la SSII de faire son travail, car sinon il sait qu'il va obtenir quelque chose en papier mâché? TDD n'est pas une pratique à négocier, dans un sens ou dans l'autre, mais une obligation pour tout développeur professionnel. Il n'y pas à demander au client, ou à la SSII s'ils sont d'accord pour le faire, c'est une pratique de professionnel au même titre que nous tentons de garder le design propre, de nommer correctement les variables, etc etc. Donc je considère ces deux cas comme un pas de plus dans l'inversion de contrôle qui s'est opéré dans la profession : Les clients n'ont plus seulement à dicter la gestion de projet, mais également les pratiques de développement. Quel savoir-faire reste-il à la SSII?
Quel mal tout de même a été fait à la profession pour que le niveau de confiance soit réduit au point de demander contractuellement ce qui semble aller de soit : la qualité et la fiabilité.



Commentaires
100% d'accord.
Dans un monde idéal un client vient avec la vision d'un produit, charge à la SSII de le réaliser en utilisant tous les moyens utiles.
Dans la vraie vie, les SSII ne sont plus des fabricants de logiciels, mais des vendeurs de prestation de réalisation de logiciel, et ca fait toute la différence. Une SSII "moderne" peut dire "je fais du logiciel pourri, du moment qu'un client paye". Dans ce cas il est normal que le client réagisse en s'assurant que la SSII ne fasse pas du logiciel pourri et fasse de l'ingérence dans les pratiques d'ingénierie. Le fond du truc c'est que les clients voient les SSII comme des marchands de tapis et ne leur font pas confiance. Le cercle vicieux de la rentabilité à court terme (réduction des coûts de réalisation, pression sur les délais etc) devrait se transformer en cercle vertueux de la rentabilité à moyen terme (maintenabilité, qualité du design, évolutivité).
Mais bon, peut être qu'avec l'introduction de valeurs agiles (l'excellence technique, l'implication, la qualité non négociable) dans le monde de la SSII, elles pourront démontrer qu'elles sont dignes de la confiance du client. Si elles le sont.
J'aime bien la métaphore de l'inversion de contrôle.