La méthode agile
L’adoption de nouveau mode de consommation des utilisateurs, l’évolution des technologies ont changé la façon dont les logiciels doivent être développés et distribués.
Le développement des logiciels doit être continu et les équipes sont maintenant confrontées à une pression accrue de la part des concurrents qui travaillent en méthode agile pour réduire de façon drastique leur cycle de développement.
Amazon déploie un nouveau code toute les 11.6 secondes ! Pour la platforme ecommerce, les cycles courts et l’ensemble de la méthode agile, sont devenue un réel un avantage compétitif – les modifications se font très rapidement, les retours clients sont pris en compte et intégré au process, créant ainsi une conversation continue avec leurs clients mais aussi un produit toujours meilleur, puisque construit grâce au retour client.
Il s’agit là, d’un cas un peu extrême, Amazon emploie des milliers de software ingenieurs, ce qui facilite grandement la puissance de développement, mais qui illustre parfaitement le besoin de réduire le fameux « Time-to-Market ».
Avant le « Manifeste », le développement logiciel était très loin d’être aussi rapide. Il n’était pas rare de voir des projets en cours se voir purement et simplement annulés en raison de l’évolution des besoins commerciaux.
Historique
La crise
Au début des années 1990, alors que l’informatique sur PC commençait à proliférer dans l’entreprise, le développement de logiciels a connu une crise. À l’époque, on l’appelait communément » crise de développement d’applications » ou » délai de livraison des applications « . Les experts de l’industrie ont estimé qu’il s’écoulait environ trois ans entre un besoin opérationnel validé et une application réelle en production.
Le problème, c’est que les entreprises évoluaient plus vite qu’il y a 25 ans. En l’espace de trois ans, les exigences, les systèmes et même des entreprises entières étaient susceptibles de changer. Résultant sur l’annulation de nombreux projets en cours de route et que bon nombre de ceux qui ont été achevés n’ont pas répondu à tous les besoins actuels de l’entreprise, même si les objectifs initiaux du projet ont été atteints.
Pire, dans certaines industries, le décalage entre les demandes et la livraison était bien supérieur à trois ans. Dans les secteurs de l’aérospatiale et de la défense, il pouvait s’écouler 20 ans ou plus avant qu’un système complexe ne soit réellement mis en service. Le programme de la navette spatiale, qui a été lancé en 1982, a utilisé les technologies de l’information et de traitement à partir des années 1960, ce qui est un exemple extrême mais pas inhabituel. Des systèmes matériels et logiciels très complexes ont souvent été conçus, développés et déployés dans un laps de temps qui a duré des décennies.
La frustration des « leaders »
Jon Kern, ingénieur en aérospatiale dans les années 1990, frustré par ces longs délais et par les décisions prises tôt dans un projet qui ne pouvait être modifiées par la suite à commencer à chercher un moyen d’améliorer les process de développement de logiciels.
Il était l’un des 17 « leaders » qui ont commencé à se rencontrer de façon informelle et à parler des façons de développer des logiciels plus simplement. Ce groupe comprenait Kern, les pionniers de l’Extreme Programming Kent Beck et Ward Cunningham, Arie van Bennekum, Alistair Cockburn, et douze autres, tous bien connus de la communauté agile. Ces rencontres ont conduit à la désormais célèbre réunion Snowbird en Utah au début de 2001 et à la création du Manifeste Agile.
La méthode est concentrée sur une conception rapide de logiciels fonctionnels afin de les livrer aux utilisateurs finaux. La rapidité des feedbacks et la volonté de changement se sont avérées être les principales caractéristiques du mouvement agile. Si l’équipe du logiciel n’est pas sûre de comprendre les besoins de l’utilisateur, elle fournit une première approximation et écoute ensuite les commentaires. Rien, ou très peu, n’est gravé dans le marbre au début du projet.
4 valeurs et 12 principes
Les Valeurs
1. Les individus et leurs interactions plus que les processus et les outils
2. Des logiciels opérationnels plus qu’une documentation exhaustive
3. La collaboration avec les clients plus que la négociation contractuelle
4. L’adaptation au changement plus que le suivi d’un plan
Les individus et leurs interactions plus que les processus et les outils
L’approche Agile est centrée sur les besoins utilisateurs mais aussi sur la communication entre les membres d’une même équipe. Il est facile de comprendre qu’il est plus important et efficace de valoriser les gens que les processus ou les outils, car ce sont eux qui répondent aux besoins de l’entreprise et qui pilotent le processus de développement. La communication doit être fluide et libérée, les silos cassés. Dans le cas d’autre processus de développement, la communication est planifiée (ou pire) inexistante et nécessite un contenu spécifique, souvent à base de ppt ou de pdf envoyé aux développeurs sans même leur demander leur avis. On pourra peut-être abordé dans un deuxième temps la gestion de projet d’un produit vendu par une équipe commerciale déconnecté de leur produit (un grand classique en matière de frustration pour l’équipe de développeurs et, aussi pour l’utilisateur final)
Des logiciels opérationnels plutôt qu’une documentation exhaustive
Historiquement, beaucoup de temps était consacré à la documentation du produit en vue de son développement et de sa livraison finale. Spécifications techniques, exigences techniques, descriptif technique, documents de conception d’interface, plans d’essai, plans de documentation et approbations requises pour chacun. La liste était longue et a causé de longs retards dans le développement. La méthode Agile n’élimine pas la documentation, mais la rationalise sous une forme qui donne au développeur ce dont il a besoin pour faire le travail sans s’enliser dans les détails. Les exigences/besoins sont documentés sous forme d’histoires d’utilisateurs.
La collaboration avec les clients plus que la négociation contractuelle
La négociation est la période pendant laquelle le client et le chef de produit mettent au point les détails d’une livraison, avec des points en cours de négociation où les détails peuvent être renégociés. La collaboration est une tout autre chose. Avec des modèles de développement tels que Waterfall, les clients négocient les exigences du produit, souvent dans les moindres détails, avant le début des travaux. Cela signifiait que le client était impliqué dans le processus de développement avant et après le développement, mais pas pendant le processus. Le Manifeste Agile décrit un client qui s’engage et collabore tout au long du processus de développement, de la fabrication. Il est ainsi beaucoup plus facile pour le développement de répondre aux besoins du client. Les méthodes agiles peuvent inclure le client à intervalles réguliers pour des démonstrations périodiques, mais un projet peut tout aussi bien avoir un utilisateur final qu’un membre quotidien de l’équipe et assister à toutes les réunions, assurant que le produit répond aux besoins commerciaux du client.
L’adaptation au changement plus que le suivi d’un plan
Traditionnellement, tout changement était considéré comme une dépense à éviter lorsqu’il s’agissait de développement. Le développement de logiciels traditionnels considérait le changement comme une dépense, il fallait donc l’éviter. L’intention était de développer des plans détaillés et élaborés, avec un ensemble défini de caractéristiques et avec tout le reste, ayant généralement la même priorisation, et avec un grand nombre de dépendances pour livrer dans un certain ordre afin que l’équipe puisse travailler sur le prochain morceau du « puzzle ». En méthode agile, la durée courte d’une itération permet de reporter les priorités d’une itération à l’autre et d’ajouter de nouvelles fonctionnalités à la prochaine itération. La vision Agile est que les changements améliorent toujours un projet ; les changements apportent une valeur ajoutée.
12 principes
Les Douze Principes sont les principes directeurs pour les méthodologies qui sont incluses sous le titre « Le Mouvement Agile ». Ils décrivent une culture dans laquelle le changement est un élément positif et le client est au centre du travail. Ils concrétisent également l’intention du mouvement telle que décrite par Alistair Cockburn, l’un des signataires du Manifeste Agile, qui est d’aligner le développement sur les besoins des entreprises.
Les douze principes du développement agile incluent :
- Satisfaction des clients en assurant une livraison rapide et continue des logiciels – Les clients sont plus satisfaits lorsqu’ils reçoivent des logiciels fonctionnels à intervalles réguliers, plutôt que d’attendre de longues périodes de temps entre les versions.
- Répondre aux exigences d’évolution tout au long du processus de développement – Aptitude à éviter les retards lorsqu’une exigence ou une demande de fonctionnalité change.
- Livraison fréquente de logiciels fonctionnels – Scrum s’adapte à ce principe puisque l’équipe fonctionne en sprints logiciels ou en itérations qui assurent une livraison régulière des logiciels fonctionnels.
- Collaboration entre les « stakeholders » et les développeurs tout au long du projet – De meilleures décisions sont prises lorsque l’équipe commerciale et technique sont alignées.
- Soutenir, faire confiance et motiver les personnes impliquées- Les équipes motivées sont plus susceptibles d’accomplir leur meilleur travail que les équipes insatisfaites.
- Favoriser les interactions face à face – La communication est plus efficace lorsque les équipes de développement sont installées dans les mêmes locaux.
- Le logiciel de travail est la principale mesure du progrès – La livraison d’un logiciel fonctionnel au client est le facteur ultime qui mesure le progrès.
- Processus agiles pour soutenir un rythme de développement cohérent – Les équipes établissent une vitesse répétable et maintenable à laquelle elles peuvent fournir des logiciels de travail, et elles le répètent à chaque version.
- L’attention portée aux détails techniques et à la conception améliore l’agilité – Les bonnes compétences et la bonne conception permettent à l’équipe de maintenir le rythme, d’améliorer constamment le produit et de soutenir le changement.
- Simplicité – Développez juste ce qu’il faut pour accomplir le travail dès maintenant.
- Les équipes qui s’auto-organisent encouragent les grandes architectures, les exigences et les conceptions – Des membres compétents et motivés de l’équipe qui ont un pouvoir de décision, s’approprient, communiquent régulièrement avec les autres membres de l’équipe et partagent des idées qui donnent des produits de qualité.
- Réflexions régulières sur la façon de devenir plus efficace – L’amélioration de soi, l’amélioration des processus, le perfectionnement des compétences et des techniques aident les membres de l’équipe à travailler plus efficacement.
Pour faire simple : agile est le terme générique désignant diverses pratiques techniques, processus, cadres, principes et valeurs qui exigent de la flexibilité dans les workflows et des changements itératifs au produit.
Cette méthode aide à l’alignement entre les équipes, stimule la qualité et oblige chacun à mesurer et à gérer les progrès pour apporter plus de valeur aux clients plus rapidement.
Le Manifesto est toujours disponible en ligne. N’hésitez pas à aller le consulter.
A voir aussi
Découvrir le blog
5 Meilleurs éditeurs de code édition 2019
Les meilleurs éditeurs de Texte : édition 2019. Que vous soyez programmeur ou créateur de sites Web, un bon éditeur de texte vous fera gagner du temps et vous aidera à travailler plus efficacement.
Rejoignez notre communauté de + de 2000 abonnés.
Restez informé des dernières nouveautés en matière de web development, digital marketing.