IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

268 % de taux d'échec en plus pour les projets logiciels agiles, selon une recherche qui fait suite aux échecs catastrophiques de logiciels
De plus en plus présents dans l'esprit du public

Le , par Jade Emy

72PARTAGES

6  0 
Une étude menée auprès de 600 ingénieurs logiciels britanniques et américains révèle que les projets qui adoptent les pratiques du Manifeste Agile ont 268 % plus de chances d'échouer que ceux qui font le contraire. L'étude démontre que les taux d'échec des projets de logiciels agiles peuvent être divisés par 6,5 en utilisant une nouvelle méthodologie d'ingénierie d'impact. L'adoption de l'ingénierie d'impact pourrait permettre d'économiser 115 milliards de dollars américains par an en dépenses de R&D inutiles aux États-Unis et les contribuables britanniques pourraient économiser environ 7 milliards de livres sterling par an sur les projets gouvernementaux de changement numérique qui n'aboutissent pas.

Le développement agile de logiciels est un état d'esprit qui découle des valeurs convenues par l'Agile Alliance, un groupe de 17 praticiens du logiciel, en 2001. Comme l'indique leur Manifeste pour le développement agile de logiciels, les praticiens accordent de l'importance aux valeurs suivantes : les individus et les interactions plutôt que les processus et les outils, un logiciel fonctionnel plutôt qu'une documentation exhaustive, la collaboration avec les clients plutôt que la négociation de contrats, la réaction au changement plutôt que le suivi d'un plan.

Le Manifeste Agile existe depuis plus de 21 ans maintenant, mais la recherche empirique sur l'impact réel de ses valeurs sur l'industrie reste lacunaire, malgré une étude récente montrant que 81 % des décideurs au Royaume-Uni et 89 % aux États-Unis sont préoccupés par le respect des délais de livraison des projets de logiciels dans leur organisation.

Une nouvelle étude menée pour un nouveau livre, Impact Engineering, a montré que 65 % des projets de logiciels adoptant les pratiques d'ingénierie des exigences Agile ne parviennent pas à être livrés dans les délais et dans les limites du budget, avec un niveau de qualité élevé. En revanche, les projets qui adoptent une nouvelle approche d'ingénierie d'impact décrite dans le nouveau livre n'échouent que dans 10 % des cas.


Le taux d'échec des projets logiciels agiles est supérieur de 268 %

L'étude, menée par Junade Ali PhD CEng FIET et J.L. Partners, a vu la participation de 600 ingénieurs en logiciel (250 au Royaume-Uni et 350 aux États-Unis). Le travail sur le terrain s'est déroulé du 3 au 7 mai 2024. J.L. Partners est membre du British Polling Council et respecte ses règles.

Selon les auteurs, "la signification statistique des données de l'étude montrant que les projets utilisant les pratiques de l'ingénierie d'impact sont plus performants que tous les autres est si forte que la probabilité que cette conclusion soit incorrecte équivaut à lancer six fois consécutivement le chiffre six sur un dé à six faces, dès la première tentative" (les probabilités sont très faibles).

Trois des quatre pratiques énumérées dans le Manifeste Agile sont "le logiciel de travail plutôt qu'une documentation exhaustive", "la collaboration avec le client plutôt que la négociation d'un contrat" et "la réponse au changement plutôt que le suivi d'un plan". Toutefois, la nouvelle étude a révélé que les projets qui disposaient d'un cahier des charges ou d'exigences documentées avant le début du développement avaient 50 % de chances de plus de réussir que ceux qui n'en disposaient pas, que les projets qui avaient des exigences claires avant le début du développement avaient 97 % de chances de plus de réussir et que les projets qui ne nécessitaient pas de modifications importantes des exigences à la fin du processus de développement avaient 7 % de chances de plus de réussir.

D'autres pratiques ont également contribué à la réussite des projets. Les projets dans lesquels l'ingénieur logiciel a déclaré se sentir psychologiquement en sécurité pour discuter des problèmes et les résoudre rapidement lorsqu'ils apparaissent avaient 87 % plus de chances de réussir que ceux qui n'en avaient pas. Les projets dont les exigences se fondaient précisément sur un problème réel avaient 54 % plus de chances de réussir que les autres.

Il est intéressant de noter que l'étude n'a pas révélé de différence statistiquement significative entre la réussite des personnes travaillant sur un seul projet et celles travaillant sur plusieurs projets, bien que la réduction des travaux en cours soit un élément clé de la méthodologie de développement de logiciels Lean. Toutefois, des recherches antérieures menées par le Dr Ali ont montré que 83 % des ingénieurs en informatique déclarent souffrir d'épuisement professionnel, la "charge de travail élevée" en étant la principale raison.


Cette étude intervient alors que les défaillances logicielles catastrophiques sont de plus en plus présentes dans l'esprit du public. Dans son précédent ouvrage intitulé "How to Protect Yourself from Killer Computers", le Dr Ali a étudié de nombreux cas de logiciels mortels dont les causes techniques ont été attribuées à des problèmes de conception logicielle, notamment des avions effectuant des "plongées mortelles", des accidents de voiture mortels et des surdoses de radiations mortelles dans les hôpitaux.

En effet, le système informatique Horizon était l'un des premiers projets à grande échelle à utiliser une méthodologie Agile, à savoir le développement rapide d'applications, qui a été condamnée par les ingénieurs de Fujitsu qui ont témoigné dans l'enquête publique (Terence Austin et le dénonciateur David McDonnell) comme étant à l'origine des problèmes techniques dus à l'absence d'un processus solide d'ingénierie des exigences.

Charles Cipione, l'expert technique qui a témoigné dans le cadre de l'enquête, a résumé la situation en disant que "si vous n'avez pas une bonne conception, cela ne fonctionnera pas correctement". L'incapacité à résoudre ces problèmes et les tentatives de dissimulation ont conduit au scandale des Postes, décrit comme la plus grande erreur judiciaire de l'histoire britannique, liée à de multiples suicides de personnes emprisonnées à tort, dont une femme enceinte.

L'étude a également révélé, de manière inquiétante, que les ingénieurs en logiciel du Royaume-Uni avaient 13 % de chances en moins de se sentir capables de discuter et de résoudre les problèmes que ceux des États-Unis, ce qui représente la plus grande différence de toutes les pratiques d'ingénierie entre les deux pays. Cette constatation fait suite à une étude réalisée en novembre 2023 par Engprax, selon laquelle 75 % des ingénieurs en informatique au Royaume-Uni ont subi des représailles après avoir signalé des actes répréhensibles.

Junade Ali, auteur de l'ouvrage Impact Engineering, a déclaré :



Avec 65 % des projets adoptant des pratiques agiles qui ne sont pas livrés à temps, il est temps de remettre en question le culte de l'Agile. Nos recherches ont montré que ce qui compte lorsqu'il s'agit de livrer un logiciel de haute qualité dans les délais et dans les limites du budget, c'est un processus solide d'ingénierie des exigences et la sécurité psychologique nécessaire pour discuter et résoudre les problèmes lorsqu'ils apparaissent, tout en prenant des mesures pour prévenir l'épuisement des développeurs. C'est un élément fondamental de la philosophie de l'ingénierie d'impact.

« Impact Engineering » est désormais disponible sur Amazon en format Kindle eBook et en livre de poche. Ce roman d'entreprise est basé sur des études de cas réels de transformations personnelles et organisationnelles utilisant la méthodologie de l'ingénierie d'impact et un cadre psychologique nouvellement développé pour réaliser des transformations réussies, en plus d'un chapitre décrivant la base scientifique sous-jacente de la méthodologie.
Source : Engprax

Et vous ?

Pensez-vous que cette étude est crédible ou pertinente ?
Quel est votre avis sur le sujet ?

Voir aussi :

Les développeurs devraient abandonner les méthodes agiles selon Ron Jeffries, l'un des signataires du Manifeste Agile

L'armée américaine annonce une nouvelle politique visant à favoriser l'adoption de pratiques de développement logiciel agiles

La méthode Scrum est-elle une méthode agile efficace ou un cancer pour les développeurs ? Les propos d'un professionnel de l'informatique divisent la communauté

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de d_d_v
Membre éprouvé https://www.developpez.com
Le 06/06/2024 à 9:18
Agile ou pas, ce qu'il faut à un moment, ce sont des spécifications écrites quelque part. J'ai l'impression que la méthode agile est un prétexte pour na jamais écrire de documentation technique. Je ne comprend même pas comment on peut penser que ça peut fonctionner.
Comment vous pouvez savoir si tel comportement dans le logiciel est normal ou pas s'il n'est documenté nulle part. C'est encore pire quand le turnover est important: ceux qui détenaient la connaissance se sont barrés et les nouveaux arrivants se débrouillent comme ils peuvent.
6  1 
Avatar de pyros
Membre expérimenté https://www.developpez.com
Le 06/06/2024 à 17:12
J'aimerai connaitre, parmis la part des projets "Agile" ayant échoué, quels sont les projets vraiment Agile et quels sont les projets ou un caoch agile grassement payé s'est pointé en déroulant son template et en collant des réunions à tour de bras parce que c'est marqué dans le Scrum Guide...

On s'est mis à faire de l'agile car les méthodes de gestion projet classique type Waterfall ou cycle en V ne s'adaptaient pas aux projets portant sur des techno emergente ou des marché inconnue. Il y a beaucoup de projet où on ne sait juste pas ce que le logiciel est censé faire et où même le client n'es sais foutre rien, (quoi qu'il puisse en penser). C'est là qu'Agile a un intéret. Il permet de piloter un système cahotique par itération successive.

Pour un system connue, contrain et un marché stable comme l'aéronautique, le médical, etc... Agile a beaucoup moins d'intéret. Il faut arréter de vouloir trouver une formule magique qui marche partout.
5  0 
Avatar de OuftiBoy
Membre éprouvé https://www.developpez.com
Le 14/08/2024 à 20:38
Bonjour à tous.

Nous voici donc avec une discution commencée en 2018 et qui "repart" en 2024. Intéressant... Je n'avais pas participé à l'époque, car la discussion ressemblait plus à une guerre de religion qu'a autre chose.

J'ai maintenant une certaine expérience, et des méthodes, j'en ai vu passer, du moins "théoriquement".

Sans penser avoir "la solution" à la difficulté de réussir un projet "logiciel", j'ai, au fil du temps, remarqué plusieurs choses. Je les cite en vrac.

- La "compétence" ou "formation" des "développeurs" a grandement diminué depuis qlq décénies. Je ne sais pas à quoi cela est dû exactement, c'est juste une constatation que j'ai faite. D'autres n'ont peut être pas ce ressentiment, et peut-être que cela dépend du domaine dans lequel on bosse.

- Faire appel à la sous-traitance a toujours été un fiasco. Un sous-traitant n'est pas là pour touver une "bonne solution" à un projet, mais à prendre tous les raccourcis possible pour livrer "au plus vite" quelque chose qui "ressemble" à une solution. Que cette solution puisse ou pas "évoluer" dans le temps long ne fait pas partie des préoccupations. C'est même le contraire, afin de se rendre "indispensable" au "client", s'assurant la/les mises à jour.

- De plus en plus (ça doit être l'époque qui veut ça), des mots magiques "sortent du lot" (pour l'instant c'est l'IA), et il faut utiliser ces nouvelles "religions" pour se sentir exister ou être "à la pointe du progrès".

- De plus en plus de couches se sont glissées entre le besoin et la réalisation de ce besoin. Au point de parfois même "inventer un besoin" pour justifier le rôle d'un "Poste".

- Pour monter en salaire, l'expérience n'est pas valorisée, et la seule solution et de soit changer de boîte, soit grimper dans la hiérarchie de l'entreprise. Et là, ça devient plus un jeu politique que technique, et les "camas" des "camas" auront toujours l'avantage, ce n'est plus une question de compétence.

- Très vite arrive le "principe de peters", à savoir que l'on arrête de monter lorsque l'on est arriver à un point ou l'on n'est plus compétent. Un bon développeur (pour gagner plus), tente de passer chef de projet, là ou il sera éventuellement médiocre. L'entreprise perd un "bon développeur" et gagne un "mauvais chef de projet". Il suffirait d'augmenter le salaire des "bons développeurs" pour éviter la chose, mais sauf dans une entreprise où le "logiciel" est au coeur du métier, "l'informaticien" ne sera jamais valorisé, c'est juste une "ressource" comme disent les RH, pensant qu'on remplace un "développeur" par un autre "développeur" comme on change une chaise par une autre.

- On complexifie inutilement les "porblèmes a solutionner", mais aussi "la manière dont on les solutionne".

Les méthodes permettent au "superviseur" du projet à avoir des graphiques et des "choses" a montrer à ses supérieurs. Un projet ne profite pas plus d'une méthode que d'une autre.

En fait, la seule chose qui compte pour qu'un projet réussisse, c'est la communication entre les membres de l'équipe, savoir dire "non", savoir expliquer pourquoi ce "non", privilégier le bons sens, et s'en tenir au principe KISS. Il faut également savoir garder les gens là où ils sont le plus utiles à l'entreprise, et donc ne pas privilégier la montée dans la hiérarchie pour la montée en salaire.

Avec le temps, j'en suis arriver à la conclusion qu'il ne faut pas de "méthode", ni de "documentation" (souvent générée automatiquement et pas à jour, un code source clair, limpide et simple vaut 1000x toutes les documentations), mais énormément d'échange et d'intéraction, pour comprendre les problèmes (qui n'en sont peut-être pas). Une fois un problème bien cerné, implémenter une solution limpide et le plus simplement possible.

Perso, je garde à jour un simple document, évolutif, dans lequel se trouve (1) ce que l'on fait, (2) pourquoi on le fait, et (3) comment on l'a fait. Le comment on l'a fait est mixte de "problème/solution" (expliquer le problème, et comment on le résout).

BàV et Peace & Love.
5  0 
Avatar de Pyramidev
Expert éminent https://www.developpez.com
Le 06/06/2024 à 1:28
Dans cette publicité pour le livre Impact Engineering, je lis :

Today, new research conducted for a new book, Impact Engineering, has shown that 65% software projects adopting Agile requirements engineering practices fail to be delivered on time and within budget, to a high standard of quality. By contrast, projects adopting a new Impact Engineering approach detailed in a new book released today only failed 10% of the time.
Donc, la définition de l'échec, c'est que le projet soit livré après une échéance fixée à l'avance ou dépasse un budget fixé à l'avance ?
Pour fixer de manière réaliste une échéance et un budget à l'avance, on y arrive moins difficilement quand on a une spécification ? Merci Captain Obvious !

Parmi les projets dans lesquels j'ai travaillé, dans le plus agile d'entre eux, les clients payaient un abonnement pour le logiciel et ce dernier avait régulièrement de nouvelles fonctionnalités. Il y avait assez peu de planification. Le choix des fonctionnalités à ajouter dépendait surtout des besoins du moment des clients les plus importants. Dans ce contexte, mesurer le succès ou l'échec par le respect d'une estimation de délai n'avait souvent pas de sens, car le délai était souvent ASAP.

Les succès, c'est quand des clients sont contents et restent, ce qui permet d'attirer de nouveaux clients. Les échecs, c'est quand des clients partent.
3  0 
Avatar de Pyramidev
Expert éminent https://www.developpez.com
Le 06/06/2024 à 13:10
Citation Envoyé par d_d_v Voir le message
Agile ou pas, ce qu'il faut à un moment, ce sont des spécifications écrites quelque part. J'ai l'impression que la méthode agile est un prétexte pour na jamais écrire de documentation technique. Je ne comprend même pas comment on peut penser que ça peut fonctionner.
Comment vous pouvez savoir si tel comportement dans le logiciel est normal ou pas s'il n'est documenté nulle part.
Il faut de la documentation technique, mais pas toujours au point de détailler la totalité du fonctionnel comme dans une spécification.

C'est possible, mais il y a plein de conditions à réunir :
• Il existe des cas où les détails de certains algorithmes ne sont pas communiqués au client, donc n'ont pas besoin d'être dans la documentation utilisateur.
• Il y a aussi des cas où les personnes de l'entreprise qui ont la connaissance métier savent lire du code. Ça arrive plus souvent quand l'entreprise est petite.
• À partir d'un certain niveau de qualité, le code fait partie de la doc pour les personnes qui savent lire du code. Ce niveau de qualité est rarement atteint, mais ça arrive.
• Comment savoir si un comportement d'un logiciel est normal ou accidentel ? Par les tests automatisés. Si un comportement est présent dans un test automatisé, normalement, c'est qu'il est intentionnel. Les contre-exemples sont les characterization tests. Mais, si un test est un characterization test, il faut qu'il soit décrit comme tel.

En résumé, ne pas dupliquer l'intégralité du fonctionnement du logiciel dans des spécifications, ça peut très bien marcher avec une petite équipe de développeurs d'élite pour certains projets.

Un autre point avec lequel il faut faire attention, c'est que la majorité des développeurs ne savent pas maintenir à jour de la documentation, surtout si cette dernière est volumineuse. Ils galèrent déjà beaucoup à maintenir à jour une petite documentation. Dans un projet typique, il y a d'un côté du code qui est à jour mais pas vraiment compréhensible, et de l'autre une documentation qui n'est pas à jour.
Cependant, quand des personnes qui ne développent pas sont spécialisées sur l'écriture de spécifications, dans mon expérience, elles arrivent mieux à maintenir à jour ces spécifications, étant donné qu'elles ne sont pas occupées avec le code.

Citation Envoyé par d_d_v Voir le message
C'est encore pire quand le turnover est important: ceux qui détenaient la connaissance se sont barrés et les nouveaux arrivants se débrouillent comme ils peuvent.
Un turnover élevé est toujours néfaste pour la productivité.
Quand un système n'est pas compréhensible sans la connaissance tribale, effectivement, les dégâts sont encore plus élevés.
1  0 
Avatar de Fagus
Membre expert https://www.developpez.com
Le 13/08/2024 à 23:19
Citation Envoyé par Ryu2000 Voir le message

Qu'est-ce que c'est une "méthodologie d'ingénierie d'impact" ?
J'ai recherché vite fait et je n'ai rien trouvé.
Apparemment selon ce blog https://http103.medium.com/impact-en...w-c6625d97ccc7 ça vient de ce bouquin https://www.amazon.co.uk/Impact-Engi.../dp/1068605723 . Les critiques disent que c'est du baratin dans une prose à la GPT qui se résume à "écrire les spécifications avant de coder" plus sur des critiques infondées d'agile.

Si ça c'est révolutionnaire (comme le présente l'éditeur), alors il faut relire Jean-Raymond Abrial l'inventeur de la méthode b et ce qu'il pense des cycles classiques de développement. C'est assez drôle. https://www.01net.com/actualites/jea...er-173964.html
1  0 
Avatar de RenarddeFeu
Membre averti https://www.developpez.com
Le 06/06/2024 à 2:00
La méthode Agile ça marche, modulo que le développement soit fait en interne, et que l'équipe en charge du projet soit suffisamment stable, mature et redondante afin d'anticiper les éventuels turn-over.

Mets un prestataire externe dans l'équation, et tout tombe à l'eau.
2  2 
Avatar de smarties
Expert confirmé https://www.developpez.com
Le 06/06/2024 à 10:17
Avec les méthodologies Agile/SCRUM, j'ai l'impression de passer plus de temps en réunion mais un projet doit surtout partir sur des bases saines :
- dans quel environnement l'application doit fonctionner afin de faire le bon choix au niveau architecture et technologies (serveurs/client lourd/client léger, partie sécurité, dimensionnement... on a pas systématiquement besoin d'AWS/GCP/...)
- si applicable avoir une idée des améliorations/usages futurs qui peuvent impacter le point 1
- les fonctionnalités en mettant de l'importance sur les données d'entrée nécessaires et ce qui doit être produit par le système

Après une équipe de développement est autonome quand :
- les priorités sont identifiées
- les fonctionnalités sont identifiées avec les bonnes informations dedans. Le design de l'interface graphique ne devrait pas être imposé par le client mais plutôt partir de suggestions.
- il y a des pipelines de tests comme ça les corrections se font dans la foulée
0  0 
Avatar de 23JFK
Inactif https://www.developpez.com
Le 07/06/2024 à 16:13
Ô surprise... Suffit de lire le manifeste pour deviner que permettre d'ajouter sans fin des idées fantaisistes à un projet au budget inextensible est le meilleur moyen de tuer un projet.
0  0 
Avatar de Ryu2000
Membre extrêmement actif https://www.developpez.com
Le 13/08/2024 à 21:41
Citation Envoyé par Mathis Lucas Voir le message
Snyder affirme : « les étudiants en programmation n'apprennent pas les langages de bas niveau ni comment interagir avec le code machine, mais seulement des langages de haut niveau qui facilitent le développement d'applications, mais qui laissent les ingénieurs sans le contexte nécessaire pour comprendre comment leurs pièces du puzzle s'intègrent dans un ensemble plus vaste et largement interconnecté ». À ce propos, Marlinspike a fait valoir que les chercheurs en cybersécurité, qui sondent régulièrement les abstractions de surface, sont mieux placés pour stimuler l'innovation dans le développement de logiciels.
Ce n'est pas vrai, j'ai eu des cours sur les langages bas niveau lors de mon master informatique.
Mais d'un autre côté c'est vrai que je ne me rappelle pas de grand chose.

Citation Envoyé par Mathis Lucas Voir le message
L'étude démontre que les taux d'échec des projets de logiciels Agile peuvent être divisés par 6,5 en utilisant une nouvelle méthodologie d'ingénierie d'impact. Pourtant, de nombreuses équipes d'ingénierie se tournent systématiquement vers les méthodes Agile.
Qu'est-ce que c'est une "méthodologie d'ingénierie d'impact" ?
J'ai recherché vite fait et je n'ai rien trouvé.

Citation Envoyé par Mathis Lucas Voir le message
Le développement agile de logiciel est un état d'esprit qui découle des valeurs convenues par l'Agile Alliance, un groupe de 17 praticiens du logiciel, en 2001. Comme l'indique leur Manifeste pour le développement agile de logiciels, les praticiens accordent de l'importance aux valeurs suivantes : les individus et les interactions plutôt que les processus et les outils, un logiciel fonctionnel plutôt qu'une documentation exhaustive, la collaboration avec les clients plutôt que la négociation de contrats, la réaction au changement plutôt que le suivi d'un plan. Mais pour beaucoup de critiques, l'approche Agile ne marche pas.
L'approche agile peut fonctionner pour plein de projets.

La collaboration avec les clients, un logiciel fonctionnel, la réaction au changement, je trouve ça plutôt cool.
En tout cas c'est adapté à ce que je fais, puisque je corrige ou j'ajoute des fonctionnalités dans des logiciels existants. Donc il y a des réunions régulières, parfois un client dit "dans ce scénario nous n'obtenons pas le résultat attendu" ou "nous avons besoin d'une nouvelle fonctionnalité" et lors de la réunion suivante on montre la progression au client. (quand ce sont des petites modifications il y a une livraison avant la réunion suivante)

====
Au moins les méthodes agiles ne sont pas le cycle en V, je n'aime pas le cycle en V.
1  1