Czy są jakieś badania dotyczące wydajności / skuteczności Agile vs. Waterfall [zamknięte]

22

Na spotkaniu, któregoś dnia ogłoszono, że zwinność była tylko o 60% tak wydajna w czasie rozwoju w porównaniu do wodospadu. Nie chcę weryfikować ani odrzucać tego roszczenia. Interesuje mnie ustalenie, czy były jakieś badania porównujące 2 metodologie.

Czy istnieją jakieś badania porównujące te dwa?

SoylentGray
źródło
4
Zwinne nie oznacza dostarczania lepszego oprogramowania. Oprogramowanie wysokiej jakości może być wysyłane niezależnie od metodologii. Zwinność polega zazwyczaj na dostarczaniu wysokiej jakości oprogramowania dodającego wartość w krótszym czasie, odpowiadając jednocześnie na zmieniające się potrzeby klienta.
Thomas Owens
6
Zapytaj o źródło roszczenia.
Martin York,
Cóż, jeśli oryginalna osoba ma źródło, może zawierać linki do innych badań.
Martin York,
4
@Chad Dlaczego to nie było twoje miejsce? Kto to mówił? Jeśli był to dostawca zewnętrzny, co za dobra okazja, aby zrozumieć jego zdolność do zarządzania projektami przed rozpoczęciem współpracy z nimi.
Thomas Owens
1
@CHad: Parafrazując Douglasa Adamsa .... I refuse to prove that Agile is more efficient,mówi Bóg,for proof denies faith, and without faith Agile is nothing.
Mattnz

Odpowiedzi:

12

Książka „Tworzenie oprogramowania: co naprawdę działa i dlaczego w to wierzymy” zawiera kilka rozdziałów na temat metod zwinnych, w tym XP, Scrum, Dynamic Software Development i Lean, z dobrym zapleczem naukowym. Jest wysokiej jakości, jak można oczekiwać od O'Reilly. Jednym z redaktorów był znakomity Greg Wilson , zaufany autor informatyki, redaktor i prezenter.

Sama książka podsumowuje wiele badań, w tym wiele zwinnych. Jedna sekcja podsumowuje badania, w tym „Czy dwie głowy są lepsze niż jedna? Na temat skuteczności programowania par” autorstwa Dybå, T .; Arisholm, E .; Sjøberg, DIK; Hannay, JE; Shull, F .; oraz „ Badania empiryczne dotyczące zwinnego tworzenia oprogramowania: przegląd systematyczny ” Tore Dybå i Torgeir Dingsøyr.

Ogólny sens jest taki, że większość zwinnych praktyk jest korzystna, ale efekty programowania par oraz TDD i innych zwinnych najemców nie są tak silne, jak można by się spodziewać. Istnieje nawet niepokojący przypis, że TDD może być w rzeczywistości uzależniające *.

Książka jest świetnym sposobem na uzyskanie dostępu do wielu badań, które zostały wykonane, a wszystko w jednej spójnej całości. Istnieje kilka blogów i innych witryn w Internecie, które recenzują książkę.


* To niekoniecznie moja opinia!

Kyle Hodgson
źródło
1
Czy jest szansa, że ​​możesz dodać cytaty i referencje? Może pomóc ustalić, czy jest wart jednego z moich miejsc na półki na książki w safari. * 8 ')
Mark Booth
1
Również wersja Nook :) Dziękuję, sprawdzisz to dziś wieczorem.
SoylentGray
Dodany. Daj mi znać, czy to właśnie miałeś na myśli. Jeśli ktoś zechce zredagować ten post i przepisać tekst książki, również byłby mile widziany.
Kyle Hodgson,
Dzięki, Kyle, ale myślę, że podsumowanie byłoby lepsze niż coś, co wygląda jak zrzut ekranu. Trochę trudno jest zdobyć to, o czym mówią, bez większego kontekstu, na przykład, co oznaczają wysiłek ? Czy mówimy o godzinach programisty na projekt?
Mark Booth,
1
Książka odpowiada na pytanie, które powinienem był zadać, choć uważam, że byłoby ono zbyt szerokie. Dziękuję za link.
SoylentGray
10

Chociaż nie podoba mi się tytuł, uważam, że Równoważenie Zwinności i Dyscypliny: Przewodnik dla Zakłopotanych może zawierać pewne istotne dla Ciebie informacje. Ta książka autorstwa dwóch ekspertów inżynierii oprogramowania i zarządzania projektami - Barry Boehm i Richard Turner. Ta książka analizuje różne aspekty metodologii zwinnej i opartej na planach, porównuje je i porównuje, a także omawia ich integrację w celu osiągnięcia sytuacji „najlepszej z obu światów”.

Załącznik E do Bilansowania Zwinności i Dyscypliny zawiera bogactwo informacji empirycznych dotyczących kosztów i korzyści różnych metod zwinnych i opartych na planach. Wydaje się jednak, że nie ma żadnych danych dotyczących efektywności czasu. Ale przeglądając dane, wydaje się (jak podejrzewałem), że nie jest to żaden wybór - niektóre projekty doświadczyły mniejszego wysiłku, szybszych harmonogramów i mniejszych wad przy stosowaniu zwinnych metod. Jednak inne projekty, które wykorzystały. W tej sekcji omówiono szereg różnych projektów w różnych branżach, rodzaj zastosowanego procesu i to, czego doświadczyli w trakcie realizacji projektu.

Istnieje wiele studiów przypadków cytowanych w załączniku E, które dostarczają tych danych. Jest o wiele za dużo, by zacząć losowo nazywać, ponieważ wielu koncentruje się w konkretnej branży lub nawet w konkretnej organizacji. Jeśli zamierzasz przyjrzeć się przypadkom, proponuję znaleźć te, które mają charakter podobny do twojego zespołu, projektu, organizacji i branży, aby wyciągnąć uzasadnione wnioski.

W Rapid Development: Taming Wild Software Schedules Steve McConnell identyfikuje szereg czynników, które należy wziąć pod uwagę przy wyborze metodologii cyklu życia: poziom zrozumienia wymagań, poziom zrozumienia architektury, pożądana niezawodność, zarządzanie ryzykiem, ograniczenia harmonogramu, ilość procesów koszty ogólne, „korekty kursu” w trakcie realizacji projektu, zdolność zapewnienia klientowi widoczności, zdolność zapewnienia zarządzania widoczności oraz wyrafinowanie zespołu programistów i zarządzania. Są też inne, takie jak kultura organizacyjna, więc prawdopodobnie nigdzie nie ma wyczerpującej listy.

Nawet biorąc pod uwagę dokładnie ten sam projekt, istnieje również czynnik zespołowy. Jeśli weźmiesz zespół, który stale dostarcza oprogramowanie przy użyciu spiralnej metodologii opartej na planie i wrzucisz je do Scruma, doświadczą spadku wydajności, wzrostu thrashingu i będą musieli pokonać nowy model procesu, zanim będą mogli przyjść do osiągnięcia sukcesu. Mimo że inna metodologia może być bardziej odpowiednia, zawsze istnieje potrzeba dostarczenia oprogramowania. Właśnie dlatego wysiłki mające na celu ulepszenie procesów są często działaniami długoterminowymi, a nie z dnia na dzień - poważne zmiany są szokujące dla zespołu i (nawet jeśli metodologia może być lepiej dostosowana na papierze) może spowodować spadek wydajności.

Jest o wiele więcej niż tylko wydajność lub efektywność procesu i nie można po prostu spojrzeć na migawkę tego samego zespołu pracującego w środowisku opartym na planie i środowisku zwinnym. Podejmując decyzję, należy wziąć pod uwagę kontekst przemysłowy i organizacyjny, atrybuty projektu, zespół, klienta i tak dalej.


Na podstawie tego, co przeczytałem, będę musiał się nie zgodzić z oceną twoich współpracowników. Jestem pewien, że możesz znaleźć jakieś studium przypadku, w którym sprawny projekt był o 60% mniej wydajny w odniesieniu do niektórych wskaźników wydajności niż podobny projekt oparty na planie. Istnieją jednak badania, które pokazują, że zwinność daje 80% mniej wysiłku, 50% mniej czasu i wysoką satysfakcję klienta z produktu.

Thomas Owens
źródło
6

Nie mam studiów, ale chciałbym przekazać moje doświadczenia.

Skuteczność dowolnej z wymienionych metod zależy w dużej mierze od analityków.

Jeśli masz świetnego właściciela produktu, na przykład SCRUM jest z pewnością szybszy niż podejście do wodospadu ze złą specyfikacją.

Zwinny ze złym właścicielem produktu jest z pewnością wolniejszy niż wodospad o doskonałej specyfikacji.

Jednak często nie znamy dokładnych wymagań wystarczająco wcześnie, a zwinne metodologie mają szybsze cykle sprzężenia zwrotnego. Oznacza to, że w niepewnym terenie zwinny jest lepszą metodą dostarczania produktu wysokiej jakości przy rozsądnych kosztach. Istnieje wiele innych zalet, na przykład zwinne projekty są łatwiejsze do anulowania, gdy nie działają, a tym samym mogą zmniejszyć straty do minimum.

Można powiedzieć, że zwinne metodologie zmniejszają ryzyko, podczas gdy wodospad, nawet jeśli czasami może być szybszy, może być dość ryzykowny.

Sokół
źródło
4

zwinny był tylko 60% tak wydajny w czasie programowania

Prawdziwe.

Ale to kiepski pomiar.

Metody zwinne zwykle dostarczają rzeczywistą wartość wcześniej.

Wodospad po prostu trzyma się harmonogramu, niezależnie od tego, co zostało dostarczone i często nie przynosi nic wartościowego, dopóki nie upłynie ogromna ilość czasu.

Dalej.

Możesz zmierzyć „czas opracowywania” oddzielnie od „czasu opracowywania i testowania”.

Zwinne zwykle obejmuje testowanie. Więc wydaje się wolniejszy.

Rozwój wodospadu można całkowicie oddzielić od testów. Kod jest więc „gotowy do przetestowania” wcześniej. Ale nie jest to „zrobione” dopiero dużo później.

Więc. Mają całkowitą rację. Za to, co zmierzyli.

S.Lott
źródło
8
Nie wiem, czy to zawsze prawda - zależy to od tego, jak (na jakim poziomie) mierzysz wydajność. Jeśli przejdę przez projekt, który zajmuje mi 2 lata, spędziłem dwa lata na rozwijaniu wszystkiego. Ale jeśli zastosuję podejście iteracyjne / przyrostowe, mogę się dowiedzieć, że tylko 40% moich wymagań musi zostać wdrożonych, a projekt pomyślnie kończy się po wdrożeniu 40% zaległości produktu w ciągu 15 miesięcy. To 9 miesięcy czasu na opracowanie innego projektu. Dla mnie to wzrost wydajności - nie tylko spełniłem wszystkie potrzeby biznesowe jednego klienta, ale już wspieram drugiego.
Thomas Owens
3
Kolejny przypadek „Dostajesz to, co mierzysz”. Zmierz niewłaściwą rzecz, a to nie pomoże.
Martin York,
3
Z mojego doświadczenia wynika, że ​​zwinne metody są zdecydowanie wolniejsze, gdy masz naprawdę dobrą specyfikację. Ale kiedy twoja specyfikacja jest do bani (co często się zdarza), zwinne metodologie zapisują projekt. Agile / SCRUM jest do bani, gdy jest do bani właściciel produktu. Więc jest prawie tak samo. Jeśli masz kogoś, kto może przewidzieć naprawdę dobry produkt, oba podejścia są prawdopodobnie równie szybkie. Jest mniej zależny od metodologii niż od analityków.
Falcon,
3
Ponowne potwierdzenie pierwotnego stwierdzenia nie odpowiada w rzeczywistości na pytanie. Czy masz jakieś inne niż anegdotyczne dowody, że twierdzenie jest prawidłowe?
Mark Booth,
1
Dostajesz to, co mierzysz, to ryzyko, które podejmujesz.
Scott