26 juillet 2007
Imprimer ce billet

Développement logiciel : Doit on continuer à ignorer l’évidence ?

Nous l’avons constaté encore une fois, une fois de trop sans doute. L’un de nos clients s’est mis tout seul (car les responsables d’une telle situation travaillent bien dans la même entreprise que celle où officie notre interlocuteur) dans une situation perdant/perdant avec son intégrateur dans le cadre d’un projet développé au forfait. Quels sont les faits ? Nous pourrions, sans même lui laisser la parole, nommer une à une toutes les difficultés qu’il rencontre, les yeux fermés, à la manière d’un chapelet qu’on égrène.

Un Appel d’Offre a été émis à destination des principaux intégrateurs de la place car selon la Direction des Achats c’est la seule manière de mener un projet informatique (Nous vous en parlions dans un précédent billet : « Eloge de la qualité« ). C’est, selon les mêmes spécialistes reconnus pour leurs compétences informatiques, un moyen de maîtriser les coûts et les délais, de partager le risque avec l’entreprise choisie et d’avoir un moyen de pression (car bien entendu de superbes clauses de pénalités de retard ont été prévues au contrat). L’intégrateur X est choisi. Pour une grande part, parce qu’il avait une proposition alléchante et savait accepter, sans piper mot, tous les principes de ce « contrat de confiance ». Le décor est planté : une atmosphère de sérénité, une confiance réciproque, l’implication des meilleurs profils de la société X, des desiderata d’utilisateurs pris en compte …

Vous vous en doutez, cette dernière phase est ironique.

Le chef de projet est sous tension, son entreprise lui a affecté 3 stagiaires et demi, un quart d’Architecte car, après d’âpres négociations, l’affaire gagnée se révèle moins rentable que prévu. Et en interne dans la Société X, un projet mal négocié aboutit à l’affectation de développeurs inexpérimentés ( »You pay peanuts, you get monkeys », c’est bien connu). Les acheteurs du client se frottent les mains, ils ont bien mené leur barque. Le chef de projet est contraint de faire travailler tout le monde plus que de raison pour tenir des délais déraisonnables. Le mot « pénalité » se murmure discrètement puis fuse au grand jour dans toutes les réunions de projet, brandi comme la menace suprême. Les services juridiques des deux parties ressortent le contrat et s’y penchent avec beaucoup d’intérêt. Tout le monde passe d’ailleurs plus de temps à voir comment prendre l’autre partie à défaut que de véritablement essayer de résoudre les problèmes ensemble, en toute bonne foi. Et les utilisateurs dans tout ça ? Ils s’inquiètent. L’application qu’ils ont commandée est critique pour l’exercice de leur métier. La MOE leur explique qu’ils ont mal travaillé, que leurs spécifications sont trop floues, que leurs incessantes demandes de modifications sont inacceptables. Ils seraient même pointés du doigt comme deuxième responsable d’un tel chaos, après l’intégrateur, bien entendu.

Ce projet devient vite un puit sans fond. Le client est allé trop loin pour faire machine arrière. On ouvre la boîte de Pandore : les « avenants », le mot est enfin lâché à la grande satisfaction de tous car, in fine, c’est la seule manière de s’en sortir la tête haute des deux cotés. Mais attention, l’usage de tels coups de canif au contrat liant les deux parties doit se faire avec beaucoup de parcimonie bien entendu, car il doit juste permettre à l’intégrateur de réduire « un peu » son déficit sur le projet, là où vraiment on ne peut pas le prendre à défaut. Ce subterfuge lui permet, tout juste, de se maintenir dans un état financier végétatif sur le projet (pertes réduites ou au mieux rentabilité nulle).

Le paradigme du développement logiciel au forfait repose sur des principes (pour ne pas dire des valeurs) falsifiés, malhonnêtes, utopiques, désuets.

Les entreprises qui réussissent comme Google, Amazon et Microsoft, pour ne citer que les plus connues, l’ont compris depuis longtemps. Les méthodes agiles sont une alternative sérieuse. Les principes de ces méthodes sont les suivants :

  • Compétence et motivation des équipes
    Le personnel mis à la disposition des projets est du niveau de séniorité nécessaire au développement d’applications modulaires, évolutives, performantes, documentées, intégrables et exploitables. Ce personnel s’engage sur le chiffrage et la réalisation de l’application.
  • Développement itératif
    Le développement des projets est itératif. L’effet tunnel est supprimé. Les modules livrés sont immédiatement opérationnels.
  • Un accueil favorable du changement
    La rédaction de spécifications détaillées complètes des mois avant sa livraison se révèle être une utopie. Dans ce contexte, l’acceptation du changement de priorités, de fonctionnalités fait partie intégrante du processus de développement agile de Xebia.
  • Une collaboration étroite avec les utilisateurs
    L’implication forte du management et des utilisateurs tout au long du projet est organisée autour de feedbacks permanents orchestrés par des démonstrations systématiques qui permettent, à chaque itération, de valider le travail effectué et de définir les priorités de l’étape suivante.
  • Une attention permanente à l’excellence technique
    L’hyperspécialisation Java/J2EE permet, dès le début du projet, de mettre en place les meilleures pratiques en vigueur dans l’industrie et cela à tous les niveaux du projet : Architecture conçue par des Architectes expérimentés, politique d’intégration continue, tests de performance, gestion des erreurs, exploitabilité des applications, choix technologiques pérennes, …