Artisanat contre industrialisation

François Planque nous dit, à raison, que, signe des temps, le développement informatique passe au stade industriel y compris sur le web :

Au niveau du web, celà se traduit de plus en plus par l'abandon des technologies de mise en oeuvre rapide - je pense à PHP, ASP, ColdFusion... - au profit de frameworks largement plus complexes - j'ai nommé J2EE et .NET - pour les plus gros projets, et de sites préformattés (mais "customizables") pour les plus petits. La bande des "moyens projets", elle, semble de plus en plus étroite.

Exit donc les sites jetables réalisés sous l'impulsion des agences de com, renouvelés au rythme des campagnes publicitaires... de préférence deux fois par an!

Intellectuellement, l'idée semble logique, et cette tendance est déjà favorisée par le rouleau compresseur des SSII qui poussent toutes dans ce sens. Mon expérience est toutefois encore à l'opposé, du moins concernant le web et en l'état actuel de ces technologies. Les frameworks facilitent la vie des développeurs, mais certaines technologies (je pense à Java vs. PHP) ont un impact très différent en aval, en particulier en production :

  • Coûts de développement : à l'argument de l'industrialisation censée diminuer le prix du code, j'opposerai le coût très élevé d'un bon développeur Java par rapport au coût relativement bas d'un développeur PHP (et, encore mieux, d'un webmestre qui connaît PHP).
  • Déploiement : PHP n'impose aucune modification de la structure ou de la gestion d'un site web classique et déployer un script PHP est aussi simple que déployer une page HTML. Java impose une structure applicative, un mode de déploiement particulier et des notions comme le redémarrage d'une application. Les développeurs ont des outils qui rendent la gestion plus simple mais ces outils ne font pas partie de la panoplie classique du webmestre.
  • Coûts d'hébergement : trouver un hébergeur qui maîtrise parfaitement les divers moteurs d'applications Java est difficile, et vous devez être prêt à y mettre le prix. Au contraire, si un hébergeur tente de facturer quoi que ce soit en sus pour du PHP, changez-en. Et apprêtez-vous à investir dans une bête de course côté serveur et peut-être dans quelques licences logicielles et frais de maintenance si vous ne trouvez pas le support autour de Tomcat satisfaisant.
  • Fiabilité : là c'est l'expérience (douloureuse) qui tranche. Je n'ai jamais vu un serveur planter à cause de PHP. Lorsqu'un script plante, on assiste au pire à la rupture de la connexion avec le navigateur de l'internaute qui l'a invoqué, sans que les autres visiteurs soient impactés. Par contre, j'ai déjà assisté à mon grand dam au gel complet de serveurs (sous Solaris aussi bien que sous Linux) à cause d'une application Java mal dégrossie. On en revient au point du coût de développement : il est possible de faire des applications PHP avec des développeurs "moyens" alors qu'il est impératif d'avoir d'excellents développeurs Java si on veut dormir la nuit quand on a la responsabilité d'un service tournant 365j/an et 24h/24.
  • Réactivité : un webmestre qui a la main sur un site et des compétences PHP battra toujours un développeur Java pour de la maintenance au fil de l'eau. C'est un point qui est rarement évoqué et qui en fait ne cadre pas avec la logique d'industrialisation abordée par François, basée sur la spécialisation à outrance des développeurs.

Notez que je ne parle pas de .NET que je ne connais pas en production, car je n'ai plus que des serveurs sous Unix. L'une des conséquences de certaines technologies lourdes est d'ailleurs de vous enfermer dans une plate-forme rigide (en l'occurrence Windows) dont la structure de coûts est, disons, plus monolithique (et donc qu'on adoptera, ou rejettera, en bloc).

J'ajouterai que le modèle du site "jetable" est très loin d'être abandonné ! Bien au contraire, si des fonctions récurrentes comme la gestion de contenu peuvent bénéficier d'un socle stable (c'est là qu'on retrouve une compétition féroce entre technologies), les sites contiennent nombre de petites fonctions interactives qui sont souvent adossées à des campagnes ponctuelles ou gérées par des équipes différentes, et là on retrouve l'avantage des technologies légères, bien plus flexibles. Le prototypage (par opposition au framework stable) conserve des avantages en termes de réactivité et de flexibilité pour bien des sites web.

Une autre chose qui a le don de m'énerver au plus haut point -- je suppose que c'est la conséquence logique de ce mouvement industriel qui spécialise les profils à outrance -- c'est l'ignorance crasse qu'ont les développeurs de la réalité de l'hébergement de sites web voire, pire, de la vie d'une application web (testez-les sur la notion de session) ! Encore une fois, je préfère avoir à faire à un webmestre à compétences multiples qu'à un développeur "industriel" qui n'a jamais connu d'autre ordinateur que sa station de travail gonflée à bloc.

Lorsque le développement d'une fonction me coûte trois ou quatre fois plus cher en Java qu'en PHP, j'ai moins envie de faire plaisir au développeur (qui ne s'occupe plus de moi dès que j'ai signé la recette) qu'au webmestre (qui maîtrise PHP et s'occupe du site en permanence). Je sais, malheureusement, que ce n'est pas une position très populaire, mais quand on considère un site web comme une application, et un webmestre comme un développeur, on va droit dans le mur. On en reparlera quand il sera plus facile de gérer un site (et non seulement développer des applications) avec ces technologies au jour le jour, ou quand PHP5 sera en production ;-).

A l'extrême, je dirais que quitte à pousser la logique de l'industrialisation jusqu'au bout, il vaut mieux acquérir des packages plutôt que des applications sur mesure. Là je rejoins François sur la dichotomie entre petits et gros projets entre lesquels se développe une sorte de no-developers land. L'émergence de logiciels open source de bonne qualité va accentuer cette tendance, au profit d'équipes internes dont les outils et les compétences actuels sont déjà suffisants, et de SSII (de toutes tailles à mon avis) qui sauront intégrer plutôt que réinventer l'eau chaude. Mais je suis un fervent partisan de l'artisanat en informatique, j'ai une autre idée du web, je me méfie des modes et je ne sais pas de quoi demain sera fait ;-)

3 commentaires

Héhé, étant moi même persuadé que le développement est un art avant d'être une science industrialisable, je ne peux pas rester insensible à ce plaidoyer pour l'artisanat web! ;)

Mais la réalité nous rattrape ici. On peut par exemple comparer l'industrie du web à celle de l'aéronautique ou de l'automobile. Les premiers avions, les première voitures, étaient construits par des passionnés. Plusieurs décennies plus tard, plus aucun passionné ne peut rivaliser avec les produits issus de l'industrialisation de ces secteurs.

La seule différence avec les systèmes d'information, c'est que ces derniers progressent beaucoup plus vite! :-/

J'ai posté un petit exemple simpliste sur les limites de l'artisanat.

Laisser un commentaire

En laissant un commentaire, vous acceptez la politique des commentaires de ce blog.

Archives mensuelles

Notes récentes