Myślę, że to prawda, w niektórych środowiskach zwinność jest wykorzystywana jako wymówka dla braku dyscypliny. Prawdziwy problem polega na tym, że straciliśmy z oczu, dlaczego mamy jakąkolwiek metodologię. Osobiście uważam, że metodologia jest zagadnieniem architektonicznym w tym sensie, że architektura systemu powinna uwzględniać niefunkcjonalne atrybuty jakości, metodologia powinna odnosić się do niektórych z tych samych atrybutów (łatwość konserwacji, produktywność rozwoju, transfer wiedzy, i wsp.)
Spojrzenie na metodologię jako kontrolę atrybutów procesu implikuje kilka rzeczy: 1) bez mierników nie możemy porównać skuteczności jednej metodologii nad drugą, 2) należy podjąć aktywną decyzję o tym, jakie atrybuty są ważne (czas dostawy a kod jakość a transfer wiedzy).
Nie mając zarówno wskaźników, jak i konkretnego celu, po prostu wybieramy metodologię jako nasze „magiczne pióro”, która jeśli będziemy się trzymać mocno, będziemy w stanie dostarczyć oprogramowanie.
Teraz nie-mówcy Agile, XP, Scrum itp. Mówią o kruchości tej konkretnej kategorii metodologii. Argumentem jest: po co stosować metodologię, która może być sabotowana przez osobę pozbawioną dyscypliny, aby przestrzegać wszystkich zasad? Pytanie jest ważne; jest to jednak objaw, a nie przyczyna. Jeśli dokładny i znaczący (to jest trudny element) zestaw metryk procesu zostanie zdefiniowany, przetestowany i otrzyma aktualne informacje zwrotne, sądzę, że odkryjemy, że konkretna metodologia ma niewiele wspólnego z sukcesem. (Anegdotycznie rzecz biorąc widziałem udane projekty wykorzystujące niezliczoną liczbę metodologii i dwa razy więcej niepowodzeń przy użyciu tych samych metodologii)
Więc jakie są dane? Różnią się od projektu do projektu, od zespołu do zespołu i od czasu do czasu. Przydatne, gdy harmonogram dostaw jest ważny, którego osobiście użyłem, to umiejętność szacowania i jakość. Większość programistów może dokładnie oszacować zadania trwające tydzień lub krócej. Tak więc jednym podejściem jest podzielenie projektu na zadania trwające jeden tydzień programisty i śledzenie, kto dokonał oszacowania. W miarę realizacji projektu mogą zmieniać swoje prognozy. Po zakończeniu zadania, jeśli jest wyłączone o więcej niż 10% (1/2 dziennie), traktujemy to tak samo jak błąd - identyfikujemy, dlaczego oszacowanie było wyłączone (tj. Nie uwzględniono tabeli bazy danych), określ działania korygujące (tj. zaangażuj DBA w oszacowanie), a następnie przejdź dalej. Korzystając z tych informacji, możemy tworzyć wskaźniki, takie jak liczba błędów w szacunkach na tydzień, liczba błędów na programistę,
Więc co? Właśnie wtedy pojawiają się metodologie - jeśli masz model predykcyjny, który nie spełnia jakości procesu, możesz dodać lub usunąć jakiś aspekt metodologii i zobaczyć, jak wpływa ona na twój model. To prawda, że nikt nie chce bawić się procesem rozwoju z obawy przed porażką, ale już zawodzimy w niezmiennie wysokim i przewidywalnym tempie. Wprowadzając indywidualne zmiany i mierząc wyniki, możesz stwierdzić, że Agile jest idealną metodologią dla Twojego zespołu, ale równie łatwo możesz znaleźć RUP, wodospad lub po prostu zestaw najlepszych praktyk, które będą idealne.
Więc moja sugestia pozwala przestać martwić się o to, co nazywamy procesem, wprowadzić kontrole, które są istotne dla naszych celów procesu rozwoju i eksperymentować z różnymi technikami, aby ulepszyć ten proces.