Ich habe Agile Manifesto Principles gelesen . Alles scheint klar und vernünftig, bis auf einen Punkt:
Einfachheit - die Kunst, den Umfang der nicht geleisteten Arbeit zu maximieren - ist von entscheidender Bedeutung.
Ich verstehe das nicht. Bedeutet das, dass die Arbeit, die nicht geleistet wurde, irgendwie übertrieben sein sollte? Wenn ja, macht es nicht wirklich Sinn.
agile
management
superM
quelle
quelle
Antworten:
Entfernen Sie den Kommentar in Klammern. Was bleibt, ist "Einfachheit ist wesentlich", was übrigens eine Anwendung des Prinzips auf seinen Ausdruck selbst ist.
Einfachheit ist entscheidend, denn Sie haben das destilliert, was Sie wirklich brauchen, und das entfernt, was die anstehende Aufgabe schwerer und weniger elegant macht: komplex.
Ich habe immer im Sinne von Pascals Kürze gedeutet : " Ich hätte einen kürzeren Brief geschrieben, aber ich hatte keine Zeit. " Man muss vermeiden, was überflüssig ist (aus dem Brief, aus dem Code) und das ist Eine aktive und keine leichte Aufgabe . Es ist nicht etwas, was von selbst passiert.
quelle
Die Idee ist es, zu vermeiden, dass Arbeiten ausgeführt werden, die nicht erforderlich sind, dh "die Menge der nicht ausgeführten Arbeiten zu maximieren ".
Wenn Sie also in einem traditionellen Projekt ein hervorragendes abstraktes Basissystem planen und erstellen würden, um später alle Ihre möglichen Anforderungen zu erfüllen, überspringen Sie dies und erstellen Sie das einfachste, was für die aktuellen Anforderungen möglich ist. Bauen Sie keine Sachen, die Sie nicht brauchen.
YAGNI ist ein verwandtes Konzept.
quelle
Früher haben wir das "Vergolden" genannt. Voraussetzung für einen Hammer ist, dass er einen Nagel in ein Stück Holz schlagen kann. Es macht den Job nicht besser, ein vergoldeter Hammer zu sein.
Oft schlug ein Entwickler vor, ein neues cooles Framework zu verwenden oder Features hinzuzufügen, die zwar cool waren, aber nicht notwendig waren. Wir würden diese Idee notieren, aber für diese Version werden wir es nicht tun. Wir werden die nicht geleistete Arbeit maximieren. Es ist schwierig genug, Software rechtzeitig bereitzustellen. Geben Sie also nicht mehr Code aus, als Sie benötigen. Wenn es erledigt werden muss, wird es irgendwann in den Plan aufgenommen und zum richtigen Zeitpunkt erledigt.
quelle
Diese Idee ist einem Konzept aus dem Toyota Production System (TPS) sehr ähnlich, das zu einer allgemeineren Lean-Fertigung und dann zur Anwendung dieser Techniken auf die Lean-Software-Entwicklung führte . Die TPS ist deutlich älter als die agile Bewegung, deren Wurzeln in der Fertigung Ende der 1950er Jahre liegen.
Das Konzept der Maximierung des nicht geleisteten Arbeitsaufwands ähnelt der Abfallbeseitigung. In der Fertigungsumgebung gehören zu Abfällen Dinge wie Überproduktion von Waren, Warten auf Ressourcen, unnötige Bewegung von Personen oder Produkten, zu viel Inventar und fehlerhafte Produkte. In der Lean-Software-Entwicklung wurden diese Abfälle in unnötige Funktionen, Verzögerungen im Entwicklungsprozess, unklare Anforderungen, die die Produktion von Software verlangsamen, fehlende Tests und Kommunikationsverzögerungen umgesetzt.
Die Gesamtidee beider Konzepte ist die gleiche - Dinge, die keinen Mehrwert bringen, sind verschwenderisch und sollten minimiert werden. Das ultimative Ziel ist es, die Qualität zu steigern und gleichzeitig Zeit und Kosten für die Produktion zu reduzieren.
quelle