Esistono alternative importanti a Waterfall e Agile? [chiuso]


35

Sono curioso di sapere se qualcuno conosce metodologie significativamente diverse (non una ricombinazione) e apprezzerei particolarmente chiunque abbia portato avanti un'esperienza con alternative.

Risposte:


47

Wikipedia li elenca come metodologie / processi di sviluppo :

  • Agile - basato sullo sviluppo iterativo e incrementale, in cui i requisiti e le soluzioni evolvono attraverso la collaborazione tra team auto-organizzanti e interfunzionali.

  • Cleanroom : il focus del processo Cleanroom è sulla prevenzione dei difetti, piuttosto che sulla loro rimozione.

  • Iterativo : un processo di sviluppo software ciclico sviluppato in risposta alle debolezze del modello a cascata. Inizia con una pianificazione iniziale e termina con la distribuzione con le interazioni cicliche nel mezzo.
    diagramma iterativo

  • RAD : utilizza una pianificazione minima a favore della prototipazione rapida. La "pianificazione" del software sviluppato utilizzando RAD è intercalata con la scrittura del software stesso.

  • RUP - Rational Unified Process (RUP) è un framework di processo di sviluppo software iterativo adattabile, progettato per essere personalizzato selezionando gli elementi del processo appropriati.

  • Spirale : combina elementi di progettazione e prototipazione in fasi, nel tentativo di combinare i vantaggi dei concetti top-down e bottom-up. Questo modello di sviluppo combina le caratteristiche del modello di prototipazione e del modello a cascata.
    diagramma del modello a spirale

  • Cascata - sequenziale attraverso le fasi di Conception, Initiation, Analysis, Design, Construction, Testing and Maintenance.
    diagramma a cascata

  • Lean : una traduzione dei principi e delle pratiche Lean manufacturing e Lean IT nel dominio dello sviluppo software; tutto ciò che non aggiunge valore al cliente è considerato uno spreco.

  • Modello a V - Invece di spostarsi verso il basso in modo lineare, le fasi del processo vengono piegate verso l'alto dopo la fase di codifica, per formare la tipica forma a V. Il modello V dimostra le relazioni tra ciascuna fase del ciclo di vita dello sviluppo e la fase di test associata.
    diagramma del modello v

  • TDD - fa affidamento sulla ripetizione di un ciclo di sviluppo molto breve: prima lo sviluppatore scrive un caso di test automatizzato non riuscito che definisce un miglioramento desiderato o una nuova funzione, quindi produce codice per superare quel test e infine refactoring il nuovo codice su standard accettabili.


Grazie per una risposta così chiara e concisa. Sono così vecchia scuola, non ho mai sentito molti dei termini che vengono lanciati su P.SE.
Michael Riley - AKA Gunny,

7
Grande elenco, tranne TDD. Non è un ciclo di vita ma una pratica di sviluppo.
Michael,

18

Codifica da cowboy

Sviluppo puro non strutturato, non gestito, a forma libera. Può essere utile per piccoli progetti hobby che non hanno una scadenza o addirittura un obiettivo chiaro, ma che probabilmente non funzioneranno in un contesto aziendale.


2
Sìì! Bang-Bang!
mlvljr,

3
"probabilmente non funzionerà in un ambiente aziendale". Ti dice! ;)
Bobby Tables

+1 Aaa, fantastico! Lo faccio a volte, ma non sapevo come chiamare questo "processo" :)
Zzz,

yeeee-haw padnah!
ybakos,

In ambienti formali maturi aziendali vero. Tuttavia, nelle piccole imprese può esserci un bel po 'di mentalità "appena fatta".
JB King

4

Il modello a spirale

Il modello a spirale è un processo di sviluppo software che combina elementi di progettazione e prototipazione in fasi, nel tentativo di combinare i vantaggi dei concetti top-down e bottom-up. Conosciuto anche come modello del ciclo di vita a spirale (o sviluppo a spirale), è un metodo di sviluppo di sistemi (SDM) utilizzato nella tecnologia dell'informazione (IT). Questo modello di sviluppo combina le caratteristiche del modello di prototipazione e del modello a cascata. Il modello a spirale è destinato a progetti grandi, costosi e complicati.

- Wikipedia testo alternativo


1

Piano

Siediti con il cliente (o l'utente finale) e progetta una serie di casi d'uso.

Design

Disporre il sistema su carta / lavagna su alcune birre e pizza. Snicker quando qualcosa sembra fallico.

Confermare

Confermare la progettazione con il cliente (o l'utente finale) e bloccare i requisiti.

Codice

Autoesplicativo.


"Requisiti di congelamento" è il più grande più facile a dirsi che mai.
Justin Schier,

1

Questa discussione su Waterfall è in circolazione da un po 'di tempo ed è stata utilizzata dagli agili leader del pensiero all'inizio. Anche loro hanno incontrato la "realtà" della cascata come un "allarme rosso".

Quando inizi a lavorare su un progetto di sviluppo software, scoprirai rapidamente che la metodologia di sviluppo utilizzata avrà un ruolo importante da svolgere nella velocità e nella qualità del codice sviluppato. Poiché la metodologia Agile è così ampiamente utilizzata, è importante che tu comprenda i vantaggi e svantaggi di agile in modo da poter determinare se è la soluzione migliore per i risultati del progetto.

Lo sviluppo di software agile è un framework concettuale per intraprendere progetti di ingegneria del software. La maggior parte dei metodi agili tenta di minimizzare il rischio sviluppando software in brevi intervalli temporali, chiamati iterazioni, che in genere durano da una a quattro settimane. Ogni iterazione è come un progetto software in miniatura e include tutte le attività necessarie per rilasciare il mini-incremento di nuove funzionalità: pianificazione, analisi dei requisiti, progettazione, codifica, test e documentazione.

È un buon processo per l'azienda perché include il cliente nel processo di sviluppo e lo rende responsabile della consegna del prodotto. Dall'altro lato i clienti sono felici perché trovano la propria partecipazione autonoma allo sviluppo del prodotto.

Demeriti per Agile:

  • L'agile è troppo incentrato sul programmatore e non è chiaro come bilanciare il lavoro all'interno di un'organizzazione.
  • Se non sai dove stai andando, Agile non ti porterà lì!
  • Creazione di quadri senza chiari bisogni.
  • Uso eccessivo delle funzionalità linguistiche (in modo inappropriato).
  • Nessuna mentalità test-first.

Bene per una metodologia interessante che potrebbe funzionare come alternativa a AGILE può essere vista al meglio sotto questi 3 link:

Kanban come implementazione agile alternativa

Sviluppo di software kanban

Sviluppo software snello sul cloud


3
Se non sai dove stai andando, Waterfall non ti porterà lì!
Eric Wilson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.