2 Scrum L essence de Scrum, c est d accepter les changements consécutifs aux nouvelles découvertes ou idées que vous ou votre client pouvez avoir, y compris durant le développement. Sur la base de ces idées, vous devez revoir les priorités et adapter votre logiciel.. «Scrum est une façon de faire du développement logiciel, m explique Theo. Et une façon de faire que je qualifierais de plutôt radicale, ajoute-t-il. Scrum appartient à une mouvance que l on appelle Méthodes Agiles. Mais le terme agile est parfois source de confusion parce qu il est souvent associé à la notion de rapidité, alors que ce que l on cherche à évoquer, c est plutôt la flexibilité, la souplesse Cette confusion crée parfois le faux espoir qu avec Scrum, une équipe produira spontanément plus vite. En réalité, il est possible d aller plus vite en adoptant Scrum, mais ce n est pas l objectif principal. L essence de Scrum, c est d augmenter la réactivité du développement. En bref, son agilité.» Theo poursuit : «L essence de Scrum, c est d accepter les changements consécutifs aux nouvelles découvertes ou idées que vous ou votre client pouvez avoir, y compris durant le développement. Sur la base de ces idées, vous devez revoir les priorités et adapter votre logiciel. Pour cela, vous appliquez un cycle de développement court et prédictible, qui permet de livrer très fréquemment une nouvelle version stable du logiciel. 7
Ces livraisons fréquentes assurent une très grande qualité au appliquez un cycle de développement produit, et renforce votre crédibilité auprès de vos clients. court et prédictible, qui permet de livrer Dans ces conditions, collaborer très fréquemment une étroitement avec vos clients nouvelle version stable devient critique puisque ce sont du logiciel. Ces livraisons eux qui fournissent le feedback fréquentes assurent dont vous avez besoin pour une très grande qualité ajuster vos développements. On au produit, et renforce entend souvent que les éditeurs votre crédibilité auprès de logiciels cherchent à établir de vos clients.. une relation durable avec leurs clients. En réalité, ils échouent souvent, faute de pouvoir durablement tenir leurs promesses et livrer de façon fiable. Scrum vous aide à tenir vos promesses. Il vous permet de mettre votre processus sous contrôle, et de le rendre transparent ; transparent pour vous, bien sûr, mais également pour vos clients. Et, continue-t-il, d une façon plus générale, on pourrait même dire que cela permet de rendre le monde meilleur. Vous allez peut-être me prendre pour un fou, mais si effectivement on parvient à améliorer l efficacité et la pertinence des logiciels en ne produisant que ce qui est nécessaire, et avec une très grande qualité, alors c est beaucoup de temps, d argent et de ressources qui seront économisés! Et je ne parle même pas des piles de papier inutilement gâchées pour rédiger des spécifications qui doivent être revues et corrigées en permanence. Mais peut-être cette préoccupation pour l environnement est-elle trop hollandaise à votre goût» Pour cela, vous Il sourit et me regarde avec une lueur de plaisir dans les yeux. J hésite à le chambrer en lui faisant remarquer que, de toute évidence, il a également décidé de protéger la planète en se tenant éloigné des coiffeurs, à en juger par la longueur de son catogan. Mais je me retiens. J ai le sentiment que 8
son souci de l environnement n est pas une simple posture mais une vraie passion chez lui. D ailleurs, il poursuit ses explications sans s interrompre : «Pour compléter, j ajouterais qu avec Scrum, les développeurs sont intégralement responsables de leurs résultats. Ils ont le contrôle de leur façon de travailler. Et leur point de vue là-dessus est plus important que toutes les procédures standardisées. Leur objectif est de produire un logiciel parfaitement opérationnel. Point. Et c est bien là l objectif ultime de toute organisation de développement, non? La documentation, par exemple, aussi importante soit-elle, reste une production secondaire par rapport au logiciel. Attendez une seconde, dis-je. Dans ce cas-là, ça devient vite le bazar. Si les développeurs ne font que ce qu ils jugent important, sans avoir à documenter quoi que ce soit, alors c est rapidement l anarchie!» Je me souviens d un précédent employeur, chez qui j avais eu en charge la mise en place d un processus de développement unifié. Cela m avait absorbé durant des mois et maintenant, M. Catogan essaie de me convaincre que les développeurs devraient faire uniquement ce qu ils veulent, sans rien documenter? «C est la porte ouverte au chaos, lancé-je. Et ce chaos s installera très vite, donc effectivement de façon très agile!» Theo rebondit : «Je pensais vous avoir précisément expliqué qu il ne faut pas confondre agilité et vitesse. Si vous écoutez aussi attentivement vos clients, je peux déjà prédire l avenir de votre société» Il me présente un grand sourire et poursuit plus doucement : «Non, je vous assure, Scrum n est pas absurde, même s il peut apparaître un peu magique au premier abord. Laissons de côté cette histoire de documentation pour l instant, ce 9
n est pas l essentiel. L essentiel, nous avons nié que le je le répète, c est la réactivité, changement est inhérent ou pour le dire autrement, la au développement tolérance au changement. Nous logiciel, et avons plutôt avons appris au cours des dernières décennies qu en matière cherché à l interdire. Pourtant, dans la de développement logiciel, les plupart des domaines, besoins ne sont jamais complets et particulièrement dans et changent systématiquement à les affaires, être tolérant la dernière minute. Nous aurions au changement est une dû nous adapter à cette réalité. bonne chose. C est en Mais nous ne l avons pas fait. s adaptant que l on crée Jusqu à récemment, nous avons de la valeur.. nié que le changement est inhérent au développement logiciel, et avons plutôt cherché à l interdire. Pourtant, dans la plupart des domaines, et particulièrement dans les affaires, être tolérant au changement est une bonne chose. C est en s adaptant que l on crée de la valeur. Les approches traditionnelles du développement n ont jamais véritablement intégré cette notion, probablement en raison de son impact sur le budget et le planning. Ajuster le périmètre, ou modifier les exigences en cours de développement est resté un tabou.» Jusqu à récemment, «Au contraire, un contrôle étroit des exigences, consistant in fine à refuser les changements, était considéré comme le seul moyen de maîtriser budgets et délais. L idée de mettre en place un processus de développement qui au contraire intègre dans sa structure le changement est en conséquence une idée puissante! Et même mieux, de choisir une façon de travailler qui encourage ces changements. Une nouvelle version d un logiciel est toujours l occasion de voir éclore de nouvelles idées, poursuit-il. Et pour avoir du succès, vous devez avoir la volonté d améliorer tout ce qui peut l être sur la base de ces nouvelles idées. Regardez les choses ainsi, Marc : dans notre métier, nous parlons toujours de 10
Nous échangeons nos cartes de visite et je promets de l appeler lundi pour organiser un dîner. Je me lève, règle les consommations et me dirige vers ma chambre. Je m endors à peine glissé sous les draps. Ce qu il faut retenir Acceptez le changement. Si vous savez à l avance qu il y aura de nombreux changements durant votre projet, assurez-vous que votre gestion de projet permet de les gérer. Le feedback est essentiel pour développer un bon produit. Plus vous obtenez ce feedback tôt, plus il est facile de l intégrer dans le développement, et plus rapidement votre produit convergera vers une solution optimale. Scrum autorise le changement en étant parfaitement flexible sur ce qui doit être fait dans les itérations à venir, mais parfaitement inflexible sur le périmètre de l itération en cours. En contrepartie, l équipe de développement s engage à livrer ce dernier périmètre. Ce que vous ne faites pas bien, ce qui vous pose problème, faites-le le plus souvent possible. Ainsi, vous progresserez et vos problèmes seront bientôt un souvenir. Cela s applique en particulier à la livraison d un logiciel : faites-le le plus souvent possible. Si vous livrez souvent, vous trouverez les bugs plus tôt et plus vite. Quand la version commerciale (ou de production) sera prête, vous aurez déjà résolu la plupart des problèmes. Adieu, les crises de post-production! L avantage de cycles de développement courts et de durée fixe est qu ils vous permettent d apprendre quelle quantité de travail vous êtes vraiment capable de fournir 25
en un seul cycle. Vous pourrez ainsi souvent confronter vos estimations au réalisé, et améliorerez la précision de vos projections. Vous serez alors plus à même de tenir vos promesses. Ne détaillez que les fonctionnalités dont votre client a besoin rapidement. Avec Scrum, ce sont ces fonctionnalités que vous allez livrer en premier. Choisissez les plus essentielles au début de chaque sprint. Ne faites que ce qui apporte le plus de valeur ajoutée. Il est de la responsabilité du client de s assurer que les développeurs comprennent correctement ce dont il a besoin. Cela implique un contact étroit. Si un client ne souhaite pas s investir à ce point, alors le projet ne recèle pas une valeur ajoutée suffisante à ses yeux. Dans ce cas, considérez la possibilité d annuler le développement. Le product-owner priorise les développements que l équipe devra réaliser à chaque sprint. Il le fait en collaboration avec toutes les parties prenantes. Il construit une liste d exigences qui s appelle le product backlog. Le product backlog est la liste de tout ce que le logiciel doit être en mesure de faire. Cette liste est ordonnée selon la valeur de ses éléments. 26