Empiryzm
“Jak sie nie psewrócis to sie nie naucys.”
Scrum został osadzony w teorii empirycznej kontroli procesu, lub – krócej – w teorii empiryzmu. Empiryzm reprezentuje pogląd, iż wiedza wynika z doświadczenia i podejmowania decyzji w oparciu o to, co poznane. Scrum wykorzystuje podejście iteracyjne i przyrostowe w celu zwiększenia przewidywalności i lepszej kontroli ryzyka.
Czyli jak to mawiają górale:
Jak sie nie przewrócis to sie nie naucys.
Tworzenie softu jest trudne. Na tyle trudne, że pod względem złożoności może się z nim równać inżynieria genetyczna. Podobnie jak w medycynie, przy tworzeniu softu mamy do czynienia z ogromną liczbą zmiennych, a jeśli organizm (system) jest wystarczająco duży, nie da się go poznać w całości.
Proste bakterie znamy prawie całkowicie, ale już w przypadku znajomości przemian chemiczno-biologicznych w naszym własnym organizmie nasza wiedza dopiero raczkuje. Badania przeprowadza się metodą prób i błędów. Naukowcy obserwują, że pewne hipotetyczne połączenia przynoszą efekty, więc badamy je dalej, robimy kolejne eksperymenty. Podobnie dzieje się w procesie dobierania dawek leków na serce, tarczycę lub inne schorzenia. To jest empiryzm.
W przypadku tworzenia oprogramowania również nie da się poznać i przewidzieć wszystkich implikacji tego, co napisaliśmy. Do najtrudniejszych zadań wykorzystujemy z resztą ten sam mechanizm – algorytmy genetyczne.
To jednak nie koniec. Złożoność tworzeniu oprogramowania rośnie przez skomplikowanie generowane przez grupy osób, które nad nim pracują.
W takich warunkach tylko podejście metodą prób i błędów może przynieść efekty. Dlatego właśnie w jednym zespole sprawdzi się git, cucumber i retro w pobliskiej kawiarni, a w drugim dimensions, offline review i posiadanie marketingowca bezpośrednio w zespole. Są pewne praktyki które działają w większości przypadków, ale jest ich bardzo niewiele.
Każda realizacja empirycznej kontroli procesu opiera się na trzech filarach: przejrzystości, inspekcji i adaptacji.
O trzech filarach w kolejnym odcinku.