La plus grosse erreur que peut commettre une équipe qui passe à Scrum est de croire que Scrum "seul" suffit à organiser efficacement un développement logiciel. Faire des itérations, construire un produit de manière incrémentale, améliorer la communication entre les intervenants, s'adapter aux besoins changeant. Tout ça c'est très bien mais on ne peut pas s'en contenter.

La clef d'un bon fonctionnement agile c'est d'être en permanence en situation de pouvoir faire toutes les modifications désirées sur un logiciel existant sans se retrouver dans des impasses. Pour cela, il n'y a qu'une solution : maîtriser techniquement le logiciel. Ceux qui espèrent tirer des bénéfices de Scrum en modifiant leur gestion de projet mais sans être prêt à assumer les conséquences techniques seraient bien avisés de revoir leur copie.

Développement agile ou pas, il est toujours souhaitable que les développeurs aient un minimum de cette maîtrise technique. Mais là où un développement en V ou en cascade réduit le risque de non-maîtrise par une réflexion accrue en amont (avec comme conséquence de ne pas être adaptable), le développement agile ne peut s'en sortir qu'avec une réflexion permanente. Etre agile, et donc assumer tous les changements incrémentaux, ça commence par une maîtrise de tous les instants. Cela demande bien plus d'efforts qu'une simple définition d'architecture en amont.

Dernièrement, j'ai assisté à une formation sur la conception d'applications web en java et le formateur a, à mon grand plaisir, introduit son sujet par ces mots "la seule chose qui m'intéresse, c'est la maintenabilité du code".
Au bout du compte qu'est ce que la maintenabilité si ce n'est "d'être en permanence en situation de pouvoir faire toutes les modifications désirées sur un logiciel existant sans se retrouver dans des impasses" ? Développer de manière agile, ce n'est jamais que baigner dans une situation extrême de "maintenance" où la plupart des fonctionnalités du logiciel ne sont pas encore parfaitement connues et où l'on veut pouvoir assurer une maintenance évolutive pendant un temps illimité.

Il y a, parmi les principes agiles, une phrase qui est bien trop souvent laissée de côté au profit de toute la mécanique itérative et incrémentale : "Continuous attention to technical excellence and good design enhances agility".
Il sera toujours temps de le rappeler aux équipes qui ont adopté les méthodes agiles en ne modifiant que leurs pratiques de gestion de projet.