Réévaluer le développement logiciel agile : est-il mort ou peut-il être relancé ?
Le développement logiciel agile est un terme que les managers ont tendance à aimer et que les développeurs ont de plus en plus tendance à détester, à tel point que de nombreuses personnes ont tendance à le détester. proclamé agile être « mort« .
Mais la question de savoir si l’agilité a vraiment dépassé son apogée et encore moins est morte reste une question ouverte. Voici un aperçu de l’état du développement logiciel agile, des raisons pour lesquelles certains développeurs en sont venus à croire qu’il est défectueux et de la manière de l’améliorer.
Qu’est-ce qu’Agile ?
Comme vous le savez probablement, si vous connaissez bien Mots à la mode en matière de développement de logicielsagile est une approche du développement logiciel qui met l’accent sur le changement progressif et continu. C’est l’opposé du développement en cascade, qui implique la publication irrégulière de mises à jour d’applications en gros morceaux.
La grande idée derrière Agile est que les projets logiciels complexes s’exécutent plus efficacement lorsque les équipes les divisent en éléments faciles à gérer. En outre, les partisans de l’agilité affirment que cette méthode profite aux utilisateurs car les mises à jour des applications apparaissent de manière continue. Ainsi, au lieu d’attendre des mois ou des années pour une nouvelle version introduisant des fonctionnalités intéressantes, les clients reçoivent des mises à jour régulières.
L’histoire et l’état actuel de l’Agile
Agile a commencé à devenir populaire il y a plus de vingt ans lorsqu’un groupe de développeurs a introduit la Manifeste Agileune articulation des pratiques et des avantages du développement logiciel agile.
Depuis lors, l’agilité est sans doute la méthode la plus influente tendance du développement de logiciels du XXIe siècle. Agile sert de base à d’autres pratiques à la mode, comme DevOps. Quiconque ne pratique pas aujourd’hui une certaine forme de développement agile ou du moins prétend le faire est souvent considéré comme arriéré.
Cela dit, il y a de bonnes raisons de croire que l’apogée de l’agile pourrait enfin être révolue. Bien que des données d’enquête récentes suggèrent qu’au nord de 70% des entreprises Si nous utilisons actuellement Agile, un nombre croissant de développeurs et d’observateurs du secteur critiquent désormais Agile.
« Je déteste le développement Agile parce qu’il a été coopté par la direction de l’entreprise », a déclaré un développeur. écrit sur Reddit. « Agile est nul pour le développement de logiciels et j’en ai marre de prétendre que ce n’est pas le cas », un autre états sur Hacker News. Un autre rédacteur écrit« Je suis tombé amoureux de l’Agile » très tôt mais j’en suis maintenant venu à m’y opposer.
Certes, il est difficile de tirer des conclusions définitives basées sur des preuves qualitatives comme celle-ci. Mais il semble juste de conclure que de nombreuses personnes s’opposent à l’agilité. Nous n’assistons peut-être pas encore à une révolte à grande échelle contre l’agilité, mais il n’est pas fou d’imaginer qu’une telle chose se produise.
Pourquoi les gens détestent Agile
Pourquoi, exactement, tant de gens semblent-ils détester et, dans certains cas, détester le développement de logiciels agiles ? Il n’y a pas de réponse simple, mais les thèmes courants incluent :
- Manque de spécificité : De nombreuses plaintes concernant l’Agile soulignent que le concept est de trop haut niveau. En conséquence, la mise en œuvre réelle de pratiques agiles peut prêter à confusion, car il est rarement clair exactement comment mettre en pratique l’agilité. De plus, les pratiques ont tendance à varier considérablement d’une organisation à l’autre.
- Attentes irréalistes: Certains critiques de l’Agile suggèrent que le concept suscite des attentes irréalistes, en particulier de la part des managers qui pensent que tant qu’une équipe de développement adopte l’Agile, elle devrait être en mesure de publier des fonctionnalités très rapidement. En réalité, même les pratiques agiles les mieux planifiées ne peuvent garantir que les projets logiciels respecteront toujours les délais prévus.
- Utilisation abusive du terme « agile » : Dans certains cas, les développeurs se plaignent du fait que les chefs d’équipe ou les managers apposent l’étiquette « agile » sur les projets logiciels, même si peu de pratiques s’alignent réellement sur le concept agile. En d’autres termes, le terme a fini par être utilisé de manière très large, d’une manière qui rend difficile la définition de ce qui est considéré comme agile.
- Réunions et structure excessives : Les développeurs se plaignent parfois aussi du fait qu’Agile conduit à des pratiques de développement trop complexes ou très exigeantes. Par exemple, il est courant d’exiger régulièrement de courtes réunions de type « stand-up » au cours desquelles les membres de l’équipe expliquent sur quoi ils travaillent dans le cadre des pratiques agiles. Même s’il existe un argument selon lequel les stand-ups sont utiles pour stimuler la collaboration, certains développeurs les considèrent comme des formalités qui entravent un travail productif.
En bref, une grande partie de l’hostilité à l’égard de l’agilité semble provenir des développeurs qui y voient un concept qui réduit la productivité et rend leur vie plus compliquée.
Comment réparer le développement agile
Une façon de répondre à de telles critiques est de déclarer l’agilité morte, ce que, comme mentionné ci-dessus, de nombreuses personnes ont déjà fait.
Mais c’est une position difficile à adopter car on ne sait pas du tout ce qui remplacerait l’agilité. Personne ne semble vouloir revenir à l’époque du développement en cascade, mais personne n’a suggéré d’autres véritables alternatives à l’agile. De plus, abandonner l’Agile impliquerait également d’abandonner des pratiques connexes telles que DevOps, et il est également difficile de voir des gens accepter cette idée.
Au lieu de cela, une meilleure approche pourrait consister à renforcer les pratiques agiles. La manière exacte d’y parvenir est sujette à débat, mais une étape clé pourrait être de définir plus clairement ce que signifie agile. Peut-être avons-nous besoin d’un nouveau « Manifeste Agile » ou d’un addendum à l’original qui comprend des exemples concrets de ce qui est considéré comme agile. Cela faciliterait grandement la mise en pratique de l’agilité et la rendrait cohérente dans toutes les organisations.
Fabrication expérience de développeur une orientation plus importante au sein de l’Agile pourrait également aider. Historiquement, l’objectif principal de l’Agile a été d’augmenter la vitesse et l’efficacité de la livraison des logiciels, sans nécessairement faciliter la vie des développeurs. Mais étant donné les autres types d’investissements que les entreprises réalisent dans l’expérience des développeurs, comme ingénierie de plateforme l’introduction de pratiques agiles qui non seulement garantissent une livraison fluide des logiciels, mais maintiennent également les développeurs heureux et productifs, pourrait accroître l’adhésion aux concepts agiles parmi les développeurs en poste.
Conclusion : revivifier l’Agile
Il semble prématuré de déclarer la mort de l’agile. Mais il y a des signes évidents qu’il n’est pas en très bonne santé. À moins que la communauté du développement veuille revenir en bloc à l’époque de la cascade, ce que je pense que personne ne fait, il est temps de repenser l’état de l’agile et de résoudre les problèmes qui l’ont rendu si impopulaire auprès d’un nombre croissant de praticiens.
A propos de l’auteur
