12 mars 2009

A quoi bon ?

Dans le milieu des "architectes Java" on se targe d'appliquer des patterns, de structurer des architectures et d'offrir des applications flexibles, maintenables et évolutives.

Mais dans la vraie vie, ça donne quoi ? 

Des concepts abstraits qui perturbent les nouveaux arrivants, de longues heures de formation sur les design pattenrs qui ne laissent que bien peu de traces dans le code produit, un joli tas de voeux pieux qui n'aboutit à rien de concret, et une belle architecture, plus ou moins bien appliquée, mise à mal au moindre bug un peu bloquant qu'il faut corriger en urgence.

Alors à quoi bon. Après tout, du bon vieux code "Plain Old Spaghetti Code" (POSC, à ne pas confondre avec le code de PORC)  est-il vraiment si terrible ? De toute façon, d'ici six mois les besoins auront tellement évolués qu'il faudra tout reprendre et que notre magnifique "modèle objet du domaine" sera bon pour la casse - pardon, pour le "refactoring massif". D'ici un an, deux armées de stagiaires seront passées sur le code et auront massacré votre beau modèle en couche faute d'en comprendre les raffinements si subtils. D'ici deux ans, votre magnifique framework de [mettez-ici-le-pattern-que-vous-voulez] sera totalement obsolète. Alors pourquoi se tirer une balle dans le pied ?

Qu'est ce qu'on trouve à pas cher sur le marché ? Des gens pas très expérimentés qui rivalisent difficilement avec leur homologues indiens. Combien celà coute t-il d'en faire des experts à même de comprendre nos architectures hautement modulaires ? Quel bénéfice au final ?

Pourquoi ne pas considérer officiellement le modèle du code kleenex ? Tout pourri, mal ficelé, à peine fonctionnel, mais ça coute de toute façon moins cher de le refaire "from scratch" à bas cout d'ici deux ans que de le maintenir en l'état.

Quelle valeur ajoutée réelle pour nos belles usines à logiciel, toutes automatisées et bardées de contrôle qualité, si personne n'est au commandes ?

Bref je suis de plus en plus dubitatif. D'un côté je voudrais encore y croire, d'un autre côté la réalité est tellement loin de ce beau modèle de développement que je commence à voir venir le sciècle du "code discount" : pas cher, pas terrible, mais pas cher. 

Il me reste donc à aller élever des chêvres dans le Larzac ...

6 commentaires:

Unknown a dit…

Je suis à 100% d'accord avec toi:
Allons élever des chèvres dans le Larzac et regarder le lever de soleil depuis le Puncho d'Agast!!!

Tu m'auras bien fait rire ce matin. ;-)
Bonne continuation et bon courage!

Unknown a dit…

Quel coup de déprime !!!
Pourtant, la clé de tout ça est dans ton billet : "si personne n'est aux commandes".

Je viens de me replonger dans un code vieux de 2 ans, où j'avais tanné mes développeurs pour faire du propre, et là, bonheur ! La modification m'a pris peu de temps, il est simple d'y retrouver ses petits.

Comme quoi, il reste un peu d'espoir ;)

Unknown a dit…

Ha ha, Nico, je suis d'acc' avec toi pour le coup des chèvres dans le Larzac... avec quand même un ordi portable et une connexion Internet pour continuer à bosser sur des projets OSS trippants ;-)

Fab

Mickaël a dit…

Je pense que cela dépend de la durée de vie supposé du logiciel. Si c'est du one shot pour une migration par exemple, je serais le premier a proposer du rapide et pas cher. Par contre, pour un logiciel d'entreprise (durée de plusieurs années voire > 10 ans), ce n'est plus envisageable, et la maintenabilité devient un maître mot....si on a les bonnes personnes au commandes (je suis d'accord avec noon).

Alexandre de Pellegrin a dit…

Ouaih, et bien je ne fais jamais cela mais, fatigué par des actions héroîques de développement incomprises par la DSI, je me suis lancé dans une expérience intéressante. Un projet tombe (ou plutôt une évolution). Le code en place est vieux et pas securisé du tout (pas de gestion de transaction, connexions base catastrophiques, modèle métier à revoir avec des hacks à la cons de partout, le tout dans une vieille sauce Struts). Bref, je fais deux chiffrages : un pour faire évoluer l'appli dans son état bouzique actuel et l'autre pour la reécrire sous Wicket. 9 jours contre 25. Le responsable tranche : ce sera 9 (ça vous étonne???). On décide donc de travailler comme dans le temps et, pour rester dans l'esprit du projet, on code à l'arrache avec une conception minimaliste 'on-the-fly'. Et bien vous savez quoi? Ca repose l'esprit de faire ça. On s'est bien marré en plus en codant à deux. Pire, on s'est même payé de luxe de rappeler à notre chef de projet avec de grands sourires que tout était pourri. Elle l'a pris avec le sourire également et l'a noté dans le compte rendu. De toute façon, elle n'a rien compris à ce qu'on lui a raconté. Et puis tout le monde s'en fout. Alors à quoi bon... Y'a des fois, on se demande...

Unknown a dit…

Allons, il existe des jeunes diplômés animés par la même passion, et soucieux de s'entourer de personnes compétentes pour apprendre. Malheureusement, à ce stade de la vie professionnelle on ne choisit pas toujours son équipe et ses responsables !

Un jeune diplômé ;)