J'aime beaucoup le terme de "programmation durable" utilisé par Martin Lessard (et pas Sylvain Carle, pardon) dans son billet sur le carnet interstructure.
L'idée de choisir ses technologies et de faire des developpements qui durent fait partie des missions que nous nous étions donnés a NetValue et que nous avons plutôt bien réussi (évidement cet avis n'engage que moi :) et je ne suis forcement pas très objectif sur ce sujet).. Nous avions décidé en 1998 d'utiliser la technologie Java pour toute notre platforme serveur alors qu'a l'époque c'était un choix assez difficile à faire (en ce temps la les 'applications server' sont apparus pour que les applis tiennent le coup alors que les JVM crashait très facilement). Nous avons voulu faire ce choix pour tirer partie de la modularité de Java et de ses capacités en mode distribué en connexion base de données et pour traiter le XML. Mais surtout nous voulions garder une indépendance de la platforme utilisé.
Nous n'avons jamais regretté ce choix. Il nous a permit au début de l'aventure de traiter les données de 1000 personnes en mono-machine (sur système SUN) pour 5 ans plus tard sans avoir a remettre en cause les developpements en traiter celles de centaines de milliers en mode distribué sur des PC Linux (et nous n'avons pas multipliés les investissements machine par 100 !).
Il nous a aussi permis grace aux objets java de pouvoir mieux se concentrer sur l'algorithmique du traitement statistiques des données des internautes et l'histoire nous a montré que ces traitements sont devenus très compliqués au fur et a mesure de l'évolution des technologies internet.
Le refactoring (notion de l'Extreme Programming) était au coeur de notre façon de travailler alors que nous ne connaissions pas le terme. Nous avons rendu notre plateforme modulaire de bout en bout afin de pouvoir modifier incrémentalement chaque partie. Et c'est exactement ce que nous avons fait.
Nos moyens de petite société ne nous permettaient pas de préparer une platforme version 2 qui serait deployé une fois testé parfaitement. Ceci aurait reduit enormement la mise sur le marché des différentes solutions.
En final en 5 ans, nous n'avons jamais remis en cause l'architecture intiale de la platforme que nous avions initialement concue. Elle s'est juste améliorée au fur et à mesure, s'adaptant au changement de notre métier.
Un autre aspect de "developpement durable" consiste dans la gestion des fournisseurs hardware ou software propriétaires. Pour certains aspects nous pouvions difficilement nous passer d'un base de données haut performance tournant sur un système ultra stable (genre 24h/24h 7j/7 a 100% CPU). Pour autant tout en utilisant des solutions propriétaires l'idée est de garder son système ouvert et a tout moment d'être parfaitement conscient de la dépendance qu'on se crée vis à vis du fournisseur. Il faut en tenir compte dans le coût (avec une dépendance le coût devient long terme).