Czy są jakieś główne alternatywy dla Waterfall i Agile? [Zamknięte]


35

Jestem ciekawy, czy ktoś zna jakiekolwiek metodologie, które są znacząco różne (nie rekombinacja), a szczególnie doceniłbym każdego, kto przedstawił jakieś doświadczenie z alternatywami.

Odpowiedzi:


47

Wikipedia wymienia je jako metodologie / procesy rozwojowe :

  • Zwinny - oparty na iteracyjnym i przyrostowym rozwoju, w którym wymagania i rozwiązania ewoluują dzięki współpracy między samoorganizującymi się, wielofunkcyjnymi zespołami.

  • Cleanroom - proces Cleanroom koncentruje się na zapobieganiu wadom, a nie na ich usuwaniu.

  • Iteratywny - cykliczny proces tworzenia oprogramowania opracowany w odpowiedzi na słabości modelu kaskadowego. Zaczyna się od wstępnego planowania, a kończy na wdrożeniu z cyklicznymi interakcjami pomiędzy nimi.
    schemat iteracyjny

  • RAD - używa minimalnego planowania na rzecz szybkiego prototypowania. „Planowanie” oprogramowania opracowanego przy użyciu RAD przeplata się z pisaniem samego oprogramowania.

  • RUP - Rational Unified Process (RUP) to adaptowalna platforma iteracyjnego procesu tworzenia oprogramowania, którą należy dostosować, wybierając odpowiednie elementy procesu.

  • Spirala - łączenie etapów projektowania i prototypowania, aby połączyć zalety koncepcji odgórnych i oddolnych. Ten model rozwoju łączy cechy modelu prototypowego i modelu kaskadowego.
    schemat modelu spiralnego

  • Wodospad - sekwencyjny przez fazy Poczęcia, Inicjacji, Analizy, Projektowania, Budowy, Testowania i Konserwacji.
    schemat wodospadu

  • Lean - tłumaczenie zasad i praktyk Lean Manufacturing oraz Lean IT na domenę tworzenia oprogramowania; wszystko, co nie stanowi wartości dodanej dla klienta, jest uważane za marnotrawstwo.

  • Model V - Zamiast przesuwać się liniowo, etapy procesu są wyginane w górę po fazie kodowania, aby utworzyć typowy kształt V. Model V pokazuje związki między każdą fazą cyklu rozwojowego a powiązaną z nią fazą testowania.
    Schemat modelu V.

  • TDD - polega na powtórzeniu bardzo krótkiego cyklu programowania: najpierw programista pisze nieudaną zautomatyzowaną skrzynkę testową, która definiuje pożądane ulepszenie lub nową funkcję, a następnie tworzy kod do przejścia tego testu i ostatecznie refaktoryzuje nowy kod do akceptowalnych standardów.


Dziękuję za tak jasną, zwięzłą odpowiedź. Jestem tak starą szkołą, że nigdy nie słyszałem, by wiele terminów było rzucanych na P.SE.
Michael Riley - AKA Gunny

7
Świetna lista, z wyjątkiem TDD. To nie jest cykl życia, ale praktyka programistyczna.
Michael

18

Cowboy Coding

Czysty, nieustrukturyzowany, niezarządzany, swobodny rozwój. Może być przydatny w przypadku małych projektów hobbystycznych, którym brakuje terminu lub nawet wyraźnego celu, ale prawdopodobnie nie będzie działać w środowisku korporacyjnym.


2
tak! bang-bang!
mlvljr

3
„prawdopodobnie nie będzie działać w środowisku korporacyjnym”. Mówi ci! ;)
Tabele Bobby

+1 Aaa, spoko! Robię to czasami, ale nie wiedziałem, jak nazwać ten „proces” :)
Zzz

yeeee-haw padnah!
ybakos

W formalnych dojrzałych ustawieniach korporacyjnych to prawda. Jednak w małych firmach może istnieć mentalność „po prostu załatw”.
JB King

4

Model spiralny

Model spiralny to proces tworzenia oprogramowania, łączący etapy projektowania i prototypowania w celu połączenia zalet koncepcji odgórnych i oddolnych. Znany również jako spiralny model cyklu życia (lub spiralny rozwój), jest to metoda rozwoju systemów (SDM) stosowana w technologii informatycznej (IT). Ten model rozwoju łączy cechy modelu prototypowego i modelu kaskadowego. Model spiralny jest przeznaczony do dużych, drogich i skomplikowanych projektów.

- Wikipedia alternatywny tekst


1

Plan

Usiądź z klientem (lub użytkownikiem końcowym) i zaprojektuj serię przypadków użycia.

Projekt

Ułóż system na papierze / tablicy na kilku piwach i pizzy. Snicker, gdy coś wygląda fallicznie.

Potwierdzać

Potwierdź projekt za pomocą klienta (lub użytkownika końcowego) i zamroź wymagania.

Kod

Wyjaśniające.


„Wymagania zamrożenia” to najłatwiejsze do powiedzenia niż kiedykolwiek.
Justin Schier

1

Ten argument Wodospadu istnieje już od jakiegoś czasu i był używany przez zwinnych liderów myśli na początku. Oni również spotkali „rzeczywistość” wodospadu jako „czerwony alarm”.

Kiedy zaczniesz pracować nad projektem rozwoju oprogramowania, szybko odkryjesz, że zastosowana metodologia programowania będzie miała duży wpływ na szybkość i jakość opracowanego kodu. Ponieważ metodologia Agile jest tak szeroko stosowana, ważne jest, aby zrozumieć zalety i wady zwinności, abyś mógł określić, czy najlepiej pasuje do rezultatów twojego projektu.

Zwinne tworzenie oprogramowania to koncepcyjne ramy dla podejmowania projektów inżynierii oprogramowania. Większość zwinnych metod próbuje zminimalizować ryzyko poprzez tworzenie oprogramowania w krótkich przedziałach czasowych, zwanych iteracjami, które zwykle trwają od jednego do czterech tygodni. Każda iteracja jest jak własny miniaturowy projekt oprogramowania i zawiera wszystkie zadania niezbędne do uwolnienia mini-przyrostu nowej funkcjonalności: planowania, analizy wymagań, projektowania, kodowania, testowania i dokumentacji.

Jest to dobry proces dla firmy, ponieważ obejmuje klienta w procesie rozwoju i czyni go odpowiedzialnym za dostawę produktu. Z drugiej strony klienci są zadowoleni, ponieważ znajdują swój własny udział w rozwoju produktu.

Wady dla Agile:

  • Zwinność jest zbyt skoncentrowana na programistach, dlatego nie jest jasne, jak zrównoważyć pracę w organizacji.
  • Jeśli nie wiesz, dokąd zmierzasz, Agile cię tam nie doprowadzi!
  • Tworzenie ram bez wyraźnych potrzeb.
  • Nadużywanie funkcji językowych (niewłaściwie).
  • Brak mentalności polegającej na pierwszym testowaniu.

Cóż za interesującą metodologię, która może działać jako alternatywa dla AGILE, najlepiej można zobaczyć pod tymi 3 linkami:

Kanban jako alternatywna implementacja zwinna

Tworzenie oprogramowania Kanban

Oprzyj się na tworzeniu oprogramowania w chmurze


3
Jeśli nie wiesz dokąd zmierzasz, wodospad cię tam nie doprowadzi!
Eric Wilson,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.