Je lisais les principes du Manifeste Agile . Tout semble clair et raisonnable sauf un point:
La simplicité - l'art de maximiser la quantité de travail non effectuée - est essentielle.
Je ne comprends pas ça. Est-ce à dire que le travail qui n'a pas été fait doit être exagéré? Si c'est le cas, cela n'a pas vraiment de sens.
agile
management
superM
la source
la source
Réponses:
Supprimez le commentaire entre parenthèses. Reste «la simplicité est essentielle», qui est d'ailleurs une application du principe à son expression même.
La simplicité est essentielle, car vous avez distillé ce dont vous avez vraiment besoin, supprimant ce qui alourdit la tâche à accomplir, moins élégante: complexe.
J'ai toujours interprété dans le sens de la concision de Pascal : " J'aurais écrit une lettre plus courte, mais je n'ai pas eu le temps. " Il faut éviter ce qui n'est pas annulé (de la lettre, du code) et c'est une tâche active et pas facile. Ce n'est pas quelque chose qui se produit tout seul.
la source
L'idée est d'éviter de faire un travail qui n'est pas nécessaire, c'est-à-dire "maximiser la quantité de travail non effectué".
Donc, si dans un projet traditionnel vous planifiez et construisez un excellent système de base abstrait pour répondre à tous vos besoins possibles plus tard, il vous suffit de sauter cela et de créer la chose la plus simple qui puisse fonctionner pour les exigences actuelles . Ne construisez pas des choses dont vous n'avez pas besoin.
YAGNI est un concept connexe.
la source
Nous appelions autrefois ce "placage à l'or". L'exigence d'un marteau est qu'il peut frapper un clou dans un morceau de bois. Il ne fait pas mieux le travail pour être un marteau plaqué or.
Plusieurs fois, un développeur suggérerait d'utiliser un nouveau framework sympa ou d'ajouter des fonctionnalités qui, bien que cool, n'étaient pas nécessaires. Nous noterions cette idée, mais pour cette version, nous ne le ferons pas. Nous maximiserons le travail non effectué. Il est assez difficile de livrer le logiciel à temps, alors ne livrez pas plus de code que vous n'en avez besoin. Si cela doit être fait, il finira par s'inscrire dans le plan et être fait au moment opportun.
la source
Cette idée est très similaire à un concept du système de production Toyota (TPS) , qui a conduit au Lean Manufacturing plus générique , puis à l'application de ces techniques au développement de logiciels Lean . Le TPS est largement antérieur au mouvement agile, avec ses racines dans la fabrication à la fin des années 1950.
Le concept de maximisation de la quantité de travail non effectué est similaire à l'élimination des déchets. Dans l'environnement de fabrication, les déchets comprennent des choses comme la surproduction de marchandises, l'attente de ressources, le mouvement inutile de personnes ou de produits, un stock trop important et des produits défectueux. Dans Lean Software Development, ces déchets se sont traduits par des fonctionnalités inutiles, des retards dans le processus de développement, des exigences peu claires qui ralentissent la production de logiciels, un manque de tests et des retards de communication.
L'idée générale des deux concepts est la même - les choses qui n'ajoutent pas de valeur sont du gaspillage et doivent être minimisées. Le but ultime est d'augmenter la qualité tout en réduisant le temps et les coûts de production.
la source