Filozofowie zwinni, wodospadowi i greccy .
Nieodpowiedzialne jest pisanie posta porównującego dwóch największych filozofów, którzy kiedykolwiek żyli, z metodologiami, których obecnie używamy do dostarczania projektów oprogramowania, więc pozwolę sobie na kilka zastrzeżeń. Po pierwsze, jest prawdopodobne, że ani Platon, ani Arystoteles nie interesowaliby się rozwojem oprogramowania jako całości, gdyby żyli dzisiaj. Obaj byli zaangażowani w pytania o sens życia, z czego zbudowany jest świat i jak my (ludzie) poznajemy różne rzeczy. Wyraźnie starali się unikać „techne” (jak coś zrobić / praktyczne zastosowanie), czym zajmuje się zawód tworzenia oprogramowania. Po drugie, w tym poście mniej chodzi o filozoficzną dokładność, a bardziej o wyliczenie różnic między teoretycznymi korzeniami kaskadowych i zwinnych metodologii zarządzania projektami.
Zastrzeżenie zakończone.
Sokrates i Agile
Moje pierwsze prawdziwe spotkanie z Platonem miało miejsce w Republice , klasyku wśród klasyków. W tym dramacie Sokrates (nauczyciel Platona) wraz z kilkoma rozmówcami próbuje dowiedzieć się, co to znaczy być sprawiedliwym. W tym zadaniu praktykuje metodologię filozoficzną, którą obecnie znamy jako dialog sokratejski. W przeciwieństwie do większości współczesnych rozmów Sokrates wyraźnie stara się powstrzymać od argumentowania za daną tezą, ale zamiast tego skupia się na zbadaniu głębi stanowisk innych. Jego metodologię ukazuje dialog z Trazymachem, który pełni rolę swoistego antysokratesa.
Trazymach: „Słuchaj więc, powiedział; Ogłaszam, że sprawiedliwość to nic innego jak interes silniejszego. A teraz dlaczego mnie nie chwalisz? Ale oczywiście, że nie.
Sokrates: „Pozwól mi najpierw cię zrozumieć, odpowiedziałem. Sprawiedliwość, jak mówisz, jest w interesie silniejszego. Co to znaczy, Trazymachu? Nie możesz powiedzieć, że skoro Polidamas, pankracjasta, jest silniejszy od nas i uważa, że jedzenie wołowiny sprzyja jego sile cielesnej, to więc jedzenie wołowiny jest w równym stopniu dobre dla nas, którzy są od niego słabsi, i słuszne i słuszne. tylko dla nas?"
Źródło: The Project Gutenberg eBook of the Republic, autorstwa Platona. Projekt Gutenberg. (nd). Pobrano 4 maja 2023 r. z https://www.gutenberg.org/files/1497/1497-h/1497-h.htm
Zanotuj wszystkie pytania Sokratesa. Nie są zatrudniani po to, by wygrać spór, ale raczej po to, by dotrzeć do sedna tematu, jakim jest dla nich sprawiedliwość. Unika pokusy, by po prostu coś postawić… szybko i zbyt starannie wymyślić ramową definicję. Podobnie jak właściciele produktów, jego zadaniem jest sondowanie.
Po co budować widżet wyszukiwania w ten sposób? Jak to faktycznie pomoże naszym klientom? Jak w ogóle definiujemy „pomoc” i/lub „klienta”? Zadawanie pytań dociekliwych to różnica między kierownikiem projektu, który przyjmuje polecenia (i ostatecznie ponosi porażkę), a tym, który stara się zrozumieć sedno problemu.
Zauważ też, że Sokrates nie zaprzecza istnieniu obiektywnego rozumienia sprawiedliwości. Gdyby wierzył w czysty relatywizm (bez absolutów), to nie byłoby sensu w eksploracji. Nie byłoby sensu zadawać pytań i zastanawiać się, jak wejść głębiej. Często właściciele produktów formułują swoje cele jedynie relatywnie. Na przykład powiedzą: „Klient lub grupa klientów tego chce? Świetnie, zbudujmy to”.
Takie podejście prowadzi do dwóch rzeczy. Po pierwsze, prowadzi to do zaryzykowania misji. Twoją misją jako właściciela produktu jest zbudowanie czegoś, co służy konkretnej potrzebie, a nie jakiejkolwiek potrzebie. Teraz, czy Twoja misja jest dobra, to inna historia, zobacz mój post o KPI , aby uzyskać więcej informacji na ten temat. Ale jeśli nie będziesz wierny swojej misji, Twój produkt stanie się Frankensteinem, mieszanką części lub stanie się tak nieciekawy jak grafika ścienna w gabinecie dentystycznym, ponieważ próbuje zrobić za dużo, a tym samym nie robi nic . Po drugie, jeśli słuchasz tylko początkowych potrzeb klientów i nie kwestionujesz ich założeń, możesz zbudować coś, co jest ładne, ale nie świetne, lub produkt, który całkowicie mija się z celem, ponieważ założenia powierzchniowe nie odzwierciedlają głębszych.
Arystoteles i Wodospad
Mógłbym powiedzieć dużo więcej o Sokratesie, ponieważ jest on jednym z moich intelektualnych bohaterów, ale skupmy się na Arystotelesie. Arystoteles był uczniem Platona i ewentualnym nauczycielem Aleksandra Wielkiego. Troszczył się również o sprawiedliwość, ale miał inne podejście niż Platon i Sokrates. Istnieje ogromne ryzyko nadmiernego uproszczenia, ale dwa główne wkłady Arystotelesa w filozofię to sylogizm logiczny i jego system metafizyki, których chciałbym użyć do analizy.
Sylogizm to argument logiczny skonstruowany w określony sposób, tak aby przesłanki prowadziły do wniosku. Jeśli A = B i B = C, to A = C. Oto kolejny przykład: 1) Tylko starożytni Grecy robią dobrą fetę, 2) starożytni Grecy już nie istnieją, 3) dlatego nikt nie robi dobrej fety. Metafizyka, podobnie jak fizyka, zajmuje się zachowaniem rzeczy. Jednak metafizyka ma większy zakres niż fizyka, ponieważ rozszerza się, ponieważ nie dotyczy tylko fizyczności. Na przykład Arystoteles zajmował się tym, co składa się na daną rzecz. Czy pies jest psem, bo ma sierść? Koty mają futro, więc to nie może być to. Czy to dlatego, że ma łapy? Chciał wiedzieć, co jest istotą rzeczy, a co jest jej zwykłym przypadkiem.
Jeśli Sokrates wahał się, czy zajmować się szczegółami, woląc poruszać się w abstrakcji, Arystotelesa interesowało to, co dokładne i szczegółowe. Podobnie jak kierownicy projektów wodospadowych, Arystoteles chciał być precyzyjny, ponieważ bycie nieprecyzyjnym może prowadzić do różnych konsekwencji tworzących efekt domina. Jednym z powszechnych przejawów tego zjawiska w oprogramowaniu kaskadowym jest niespisywanie wszystkich (i mam na myśli wszystkich!) założeń i wymagań dla danej funkcji, co następnie psuje następną funkcję. Posłużę się przykładem w celu dalszego wyjaśnienia.
Funkcja: niesamowity przycisk
Wymagania:
Na stronie głównej powinien znajdować się duży przycisk
- Przycisk powinien prowadzić do strony XYZ
- Przycisk powinien mieć wymiary 30 px X 20 px
- Powinien działać jak ta strona na urządzeniach mobilnych (wstaw link)
- Itp.
Jednym z narzędzi Arystotelesa, które może pomóc PMom nieco uprościć żmudne procesy definiowania cech, jest jego rozróżnienie między esencją a przypadłościami. W projektach kaskadowych jedną z rzeczy, z którymi borykają się PMowie, jest wąskie zdefiniowanie esencji lub rdzenia tego, czym powinien być produkt. Jak to definiujesz? Arystoteles robi to, zaczynając od unikalnej funkcji rzeczy (zwanej argumentem funkcji). W swojej Polityce Arystoteles używa tego argumentu w stosunku do ludzi, ale możemy to zrobić za pomocą produktu. Jaka jest podstawowa i unikalna funkcja dla każdej danej funkcji? Po udzieleniu odpowiedzi na te pytania poznasz istotę tej funkcji.
FUNKCJA: Funkcją widżetu wyszukiwania jest dokładne pokazywanie produktów zgodnie z tym, czego szuka użytkownik.
ESSENCE: Zbuduj widżet wyszukiwania, który wyświetla wszystkie produkty z kategorią buty lub obuwie, gdy użytkownik wyszukuje „but”. Jeśli nie może tego zrobić, oznacza to, że nie jest prawidłowo działającym widżetem wyszukiwania.
WYPADEK: Zbuduj widżet wyszukiwania, który jest czerwony. Jeśli nie może tego zrobić, nadal może być prawidłowo działającym widżetem wyszukiwania.
Myśli końcowe
Jednym z głównych zagrożeń związanych z rozwojem nowoczesnego oprogramowania jest połączenie dwóch sprzecznych metodologii rozwoju produktu. Widziałem to wielokrotnie w zespołach, które miały zarówno standard „poczekaj i dostosuj się”, jak i chciały mieć określony zakres i budżet. Chcą być dokładni i zwinni, chcą precyzji Arystotelesa i mistagogii Platona. I choć oczywiście możliwe jest wykorzystanie zwinności i wodospadu, jest to również ryzykowne. Istnieje ryzyko, że Twój proces będzie tak klarowny jak zupa, a dynamika Twojego zespołu tak smaczna jak rozmoczony chleb.
Zachęcam zespoły, aby skupiły się na tym, co aktualnie robią i wykorzystały mądrość Arystotelesa lub Platona, aby pomóc wam w ciągłym dążeniu do dostarczania lepszych produktów.