Czytałem Zasady Manifestu Agile . Wszystko wydaje się jasne i rozsądne, z wyjątkiem jednego punktu:
Prostota - sztuka maksymalizacji ilości niewykonanej pracy - jest niezbędna.
Nie rozumiem tego. Czy to oznacza, że praca, która nie została wykonana, powinna być jakoś przesadzona? Jeśli tak, to naprawdę nie ma sensu.
agile
management
superM
źródło
źródło
Odpowiedzi:
Usuń komentarz w nawiasie. Pozostaje „Prostota jest niezbędna”, która, nawiasem mówiąc, jest zastosowaniem zasady do samego jej wyrażenia.
Prostota jest niezbędna, ponieważ destylujesz to, czego naprawdę potrzebujesz, usuwając to, co czyni zadanie pod ręką cięższym, mniej eleganckim: złożonym.
Zawsze interpretowałem w sensie zwięzłości Pascala : „ Napisałbym krótszy list, ale nie miałem czasu. ” Musisz unikać tego, co jest niepotrzebne (z listu, z kodu) i to jest aktywne zadanie , a nie łatwe. To nie dzieje się samo z siebie.
źródło
Chodzi o to, aby unikać wykonywania pracy, która nie jest konieczna, tj. „Maksymalizować ilość pracy, która nie została wykonana”.
Więc jeśli w tradycyjnym projekcie planujesz i zbudujesz świetny abstrakcyjny system bazowy, który zaspokoi wszystkie twoje ewentualne potrzeby, po prostu pomiń go i zbuduj najprostszą rzecz, która może pracować dla obecnych wymagań. Nie buduj rzeczy, których nie potrzebujesz.
YAGNI to pokrewna koncepcja.
źródło
Nazywaliśmy to „złoceniem”. Wymagane jest, aby młot mógł wbić gwóźdź w kawałek drewna. Nie robi to nic lepszego, ponieważ jest pozłacanym młotem.
Wiele razy programista sugerowałby użycie nowego fajnego frameworka lub dodanie funkcji, które choć fajne nie były konieczne. Zanotowalibyśmy ten pomysł w dół, ale dla tej wersji nie zrobimy tego. Zmaksymalizujemy pracę nie wykonaną. Dostarczenie oprogramowania jest wystarczająco trudne, więc nie dostarczaj więcej kodu, niż potrzebujesz. Jeśli trzeba to zrobić, ostatecznie znajdzie się w planie i zostanie wykonane we właściwym czasie.
źródło
Pomysł ten jest bardzo podobny do koncepcji z Toyota Production System (TPS) , która doprowadziła do bardziej ogólnego Lean Manufacturing, a następnie zastosowania tych technik do Lean Software Development . TPS znacznie wyprzedza zwinny ruch, którego korzenie sięgają produkcji pod koniec lat 50. XX wieku.
Koncepcja maksymalizacji ilości niewykonanej pracy jest podobna do eliminacji marnotrawstwa. W środowisku produkcyjnym odpady obejmują takie rzeczy, jak nadprodukcja towarów, oczekiwanie na zasoby, niepotrzebny przepływ ludzi lub produktów, zbyt dużo zapasów i wadliwe produkty. W Lean Software Development straty te zostały przełożone na niepotrzebną funkcjonalność, opóźnienia w procesie programowania, niejasne wymagania, które spowalniają produkcję oprogramowania, brak testów i opóźnienia w komunikacji.
Ogólna koncepcja obu koncepcji jest taka sama - rzeczy, które nie dodają wartości, są marnotrawstwem i należy je zminimalizować. Ostatecznym celem jest poprawa jakości przy jednoczesnym skróceniu czasu i kosztów produkcji.
źródło