it-swarm.it

Esistono alternative importanti a Waterfall e Agile?

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

35
Morgan Herlocker

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 rimozione dei difetti.

  • 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.
    iterative diagram

  • RAD - utilizza una pianificazione minima a favore della prototipazione rapida. La "pianificazione" del software sviluppato usando RAD è intercalato con la scrittura del software stesso.

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

  • Spirale - combinando elementi di progettazione e prototipazione in fasi, nel tentativo di combinare i vantaggi di top-down e concetti dal basso verso l'alto. Questo modello di sviluppo combina le caratteristiche del modello di prototipazione e del modello a cascata.
    spiral model diagram

  • Waterfall - sequenziale attraverso le fasi di Conception, Initiation, Analysis, Design, Construction, Testing and Maintenance.
    waterfall diagram

  • Lean - una traduzione dei principi e delle pratiche Lean manufacturing e Lean IT nel dominio dello sviluppo del 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 forma 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.
    v-model diagram

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

49
Peter Boughton

Cowboy Coding

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.

20
Bruce Alderman

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 alt text

4
Ryan Hayes

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.

1
Josh K

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 software Kanban

Sviluppo software snello sul cloud

1
Tony