Industrialiser ou professionnaliser le développement logiciel ?
On parle souvent d’industrialisation lorsqu’on parle de logiciel, mais cela tient plutôt du voeux pieux ou d’un marketing de bon aloi.
A l’origine on parle d’industrie lorsqu’il y a transformation de matière première en biens matériels. Si cette définition peut s’utiliser dans la production d’ordinateur, ce n’est pas le cas pour la création de logiciel. Par extension on parle de pratique industrielle en opposition à artisanale lorsqu’il y a optimisation du processus de production, afin d’obtenir de meilleurs résultat (en terme de qualité et/ou de productivité). C’est pourquoi on parle d’industrie du disque, du cinéma.
Il faut bien avouer qu’aujourd’hui le développement logiciel tient plus de l’artisanat que de l’industrie. L’une des raisons principales tient à l’instabilité technologique. En effet il est difficile de mettre en oeuvre des méthodes permettant la réutilisation ou la construction de base de connaissance comme cela est fait dans l’industrie quand les outils changent presque tous les ans.
Certaines entreprises ont fait le choix de figer leur outil informatique (plateforme, langage de développement, etc) afin de mettre en oeuvre une approche industrielle. Le résultat en a été paradoxalement une perte de productivité, un fort turn-over, et une perte d’opportunité en se coupant des avancés technologiques. En effet l’évolution des outils a jusqu’ici permit de réduire les coûts d’exploitation (baisse du prix des matériels) et de développement (outils RAD, etc).
Par ailleurs chez les éditeurs de logiciel il n’est pas rare de voir une réécriture quasi-complète d’un logiciel entre deux versions. Imaginez qu’un constructeur automobile change toutes les pièces, même les boulons, lorsqu’il sort un nouveau modèle. On a voulu créer l’équivalent des banques d’organes avec les composants logiciels, mais leur utilisation n’est pas vraiment répandu, en tout cas pas d’une manière systématique (on va acheter un composant pour un projet, puis pour le projet suivant on achètera un autre composant s’il est plus adapté).
Quand je dis que le développement logiciel tient de l’artisanat, c’est souvent encore faux. Combien de développeur ont suivi l’équivalent de l’apprentissage pour un artisan ? Combien n’ont appris le développement que par auto-formation, souvent de manière incomplète ?
Avant donc de s’industrialiser, il faut que le développement logiciel se professionnalise. Ce qui veut dire la mise en place de pratiques de développement efficaces. Aujourd’hui la plupart des méthodologies (XP, RUP) s’approche plus de cet objectif que d’une vraie industrialisation.
Alors seulement la mise en place d’un approche industrielle d’optimisation (CMMI) prendra tout son sens. Une autre approche peut-être de mettre en place CMMI pour “forcer” la professionnalisation, mais le pari peut-être risqué car sans effort de formation et d’outillage la mise en place d’une démarche qualité est souvent vécu comme une contrainte complémentaire (flicage) par les équipes.
janvier 26th, 2005 à 18:30
Je ne suis pas sûr qu’il faille forcément regretter l’aspect artisanal du développement informatique. En effet, au niveau macroéconomique, on peut se demander si l’aspect artisanal du développement informatique ne constitue pas le futur (et dernier ?) avantage comparatif des pays industrialisés en cours de révolution post-industrielle. Car, finalement, en ce moment, on assiste à une industrialisation rapide et performante de certains pays asiatiques, ce qui montre que l’industrialisation - même celle des hautes technologies - est la plus "abordable", celle qui est accessible en premier. A cela s’ajoute un inconscient qui fait de l’industrie une activité ostentatoire, un graal mythifié de productivité absolue et de perfection du produit. Cependant, à l’heure occidentale de la révolution post-industrielle, l’heure est davantage au "clé en main" et à l’adaptation permanente aux "besoins du client". Si cette évolution se confirme, l’artisanat pourrait bien se révéler l’avenir de l’industrie…
janvier 27th, 2005 à 14:00
Developpe des gros projet en ADA on vera si tu trouves cela artisanale …
janvier 27th, 2005 à 14:16
Drac, “Certaines entreprises ont fait le choix de figer leur outil informatique (plateforme, langage de développement, etc) afin de mettre en oeuvre une approche industrielle.”. Ce n’est le cas des gros projets en ADA ?
Et ces projets en ADA representent combien de projets, et emploie combien du pourcentage total d’informaticiens ?
Personnellement je ne vois pas beaucoup d’annonce recherchant des développeurs en ADA…
janvier 27th, 2005 à 14:25
Clem, je ne regrette rien, je constate.
Souvent le seul avantage concurentiel de l’artisant par rapport à l’industriel, c’est sa proximité. C’est à dire le fait qu’il puisse soit addresser un marché trop petit pour interesser l’industrie, soit parce qu’il est la dernier maillon pour la mise en place (assemblage) d’élements manufacturés.
Le problème avec le logiciel c’est qu’étant par nature immateriel, avec le développement d’internet il n’est pas necessaire d’être proche geographiquement pour répondre au besoin d’un client. Il ne reste donc que la proximité culturelle. Mais les sociétés d’offshore bien structurés peuvent rafler beaucoup de contrats, même petits, avec une interface locale et des developpeurs à l’étranger, le client ignorant même dans certains cas où les developpements ont lieu.