jeudi 21 octobre 2010

Craftsmanship

Un courant dont on parle de plus en plus dans le monde de l'agilité est celui du software craftsmanship. C'est un point de vue d'avantage tourné vers les aspects techniques qui apparaissent comme parents pauvres de la conception de l'agilité aujourd'hui orienté gestion de projet et de ses ressources.

Les valeurs de se courant sont énoncées dans un manifeste qui se veut être un complément du manifeste agile. Le but avoué est de viser l'excellence technique, de devenir meilleur développeur, d'apprendre sans cesse. Le but n'est plus de livrer un logiciel qui marche mais un logiciel globalement bien construit. Un peu si on disait "bien sûr que le logiciel marche, mais dites moi plutôt ce que vous pensez de mon code source" !

On peut se demander pourquoi un tel mouvement émerge, alors que l'agilité est au départ orienté vers la technique, avec des pratiques comme la programmation en binôme et surtout le développement dirigé par les tests, lié à eXtrem Programming. Peut-être est-ce en réponse au fait qu'aujourd'hui XP est un peu oublié au profit de Scrum, qui a ceci de pratique qu'elle ne spécifie aucune pratique de développement ! Est-ce bien réaliste de demander à l'équipe de réaliser des livraison incrémentales installables en production sans un filet de sécurité offert par les tests unitaire et une non reg automatisée ? Je l'ai fait, il faut aimer l'adrénaline !

Ce principe d'artisanat (crafstmanship) prend une dimension aujourd'hui une dimension "économique" avec l'émergence des offres PaaS comme l'AppEngine de Google. Aujourd'hui, le développeur peut directement mettre son application à disposition avec une faible mise de départ. Plus besoin de couteuses études et d'acheter un serveur à plusieurs kilo euros. On développe, on déploie, on fait un peu de promotion et on voit si ça marche. Si ça ne marche pas, on abandonne et on cherche une autre idée. Et boum, tout un pan du management IT vient de tomber (enfin je plaisante, mais il faut réaliser que les choses vont peut-être changer).

Personnellement, les valeurs de ce mouvement me plaisent parce qu'elles remettent le développeur au centre du système. C'est la personne qui crée la valeur et il faut la motiver à devenir meilleure professionnellement. J'en ai marre de voir des gens qui s'arrêtent de développer parce que leur métier n'est pas reconnu, voire littéralement méprisé (oui, je veux parler de l'offshore).