Blog
Po co stosujemy metodyki Agile?
Jaki problem one rozwiązują? Jakie przynoszą korzyści? Czemu są lepsze niż metody Waterfall-owe?
Jakie są źródłowe powody, by ich używać?
O dziwo, to pozornie podstawowe pytanie sprawiło sporo kłopotów większości kandydatów podczas naszej rekrutacji na stanowisko Scrum Mastera.
Kandydaci wymieniali wiele korzyści: iteracyjny tryb pracy, samo organizujące się zespoły, bezpośrednią komunikację, transparentność, komfortowe środowisko pracy, zmotywowanych developerów. To wszystko prawda. I wszystkie te rzeczy są wartościowe. Ale żadna z nich nie jest celem Agile. To albo narzędzia, konieczne by stać się Agile, albo pozytywne efekty uboczne bycia Agile – ale nie źródłowe powody wdrożenia Agile.
Po co więc, moim zdaniem, stosujemy Agile?
Ja rozumiem to tak: Celem metodyk Agile jest zapewnienie konkurencyjnej przewagi w nieprzewidywalnym, zmiennym środowisku.
Powyższe sformułowanie obejmuje dwa kluczowe elementy.
Po pierwsze, konkurencyjna przewaga, nasza lub naszego klienta, jest kwestią absolutnie nadrzędną. Mimo że praca w środowisku Agile jest fajna, nie wdrażamy Agile tylko po to, by fajniej się nam pracowało. Wdrażamy Agile by tworzyć produkty szybciej, lepiej i taniej niż konkurencja. Zapominanie o tym fakcie prowadzi do poważnych dysfunkcji procesu i konfliktów.
Po drugie, musimy zrozumieć, że metody Agile zostały zaprojektowane z myślą o nieprzewidywalnym, zmieniającym się środowisku. Nie rozwiązują one problemu lepiej niż metody Waterfall-owe – rozwiązują całkowicie inny problem. Waterfall zakłada, że projekty programistyczne są przewidywalne i mogą być szczegółowo zaplanowane. Agile przyjmuje do wiadomości, że są one nieprzewidywalne i optymalizuje proces pod kątem zdolności do radzenia sobie z nieuchronnymi zmianami tanio i efektywnie. Ta elastyczność ma jednak swoją cenę. Jeżeli zapomnimy, co jest intencją Agile, może okazać się, że zapłacimy pełną cenę otwartości na zmiany, nie osiągając żadnych z potencjalnych korzyści.
Te dwa cele – zapewnienie konkurencyjnej przewagi i radzenie sobie z nieprzewidywalnością – to moim zdaniem filary metod Agile. Wszystkie pozostałe reguły czy korzyści albo wspierają je, albo z nich wynikają. Jeśli zapomnimy o którymkolwiek z tych dwóch źródłowych powodów, nigdy nie będziemy w stanie osiągnąć pełnego potencjału Agile.
A dlaczego Ty stosujesz Agile? Zgadasz się z moim zdaniem, czy masz na ten temat inne spojrzenie? Podziel się swoją opinią w komentarzach poniżej!