Oltre a Waterfall, quali sono le altre metodologie di sviluppo del software basate su pianificazione?

8

Ho appena letto Agilità e disciplina di bilanciamento . Scarsa qualità del titolo, ha contrapposto un team di progetto guidato dal piano che utilizzava PSP / TSP e un team agile utilizzando Extreme Programming.

Quando gli autori hanno fornito un esempio di una metodologia guidata dal piano, hanno utilizzato Processo software personale / Processo software del team. Anche se, out-of-the-box, si tratta di metodologie pianificate, sono anche progettate per essere utilizzate come framework di processo e, in definitiva, solo specificare quali tipi di cose da fare e non come eseguirli, whi ch li rende potenzialmente utili anche in un ambiente agile. È possibile essere agili e rispettare i principi della PSP, e non sono abbastanza familiare con il TSP per dirlo con certezza, ma la mia comprensione è che è molto simile.

In un punto del libro, elencano una serie di metodologie e le classificano in termini di agilità. Metodi come Scrum, Lean, Crystal e XP sono in cima. Il fondo (dal più al meno agile) è costituito da Rational Unified Process, Team Software Process, Feature-Driven Development, CMMI, Software CMM, Personal Software Process e Cleanroom.

Watts Humphrey, in PSP: un processo di auto-miglioramento per gli sviluppatori software , dedica un capitolo alla definizione del processo e in particolare modificando il processo del software personale. Il tema comune è che i processi sono prescrittivi (dicono cosa fare) e non descrittivi (come farlo). Direi che il TSP è molto simile allo stesso modo. CMMI è stato utilizzato anche in combinazione con metodi agili, e il SEI ha un libro su di esso (che non ho ancora letto).

Lo sviluppo guidato da funzionalità è spesso considerato un approccio agile alla gestione dei progetti, tuttavia gli autori scelgono di classificarlo come una metodologia meno agile.

RUP è una struttura iterativa. Anche se non ne ho molta familiarità, il fatto che sia un framework mi presta a raggrupparlo con SW-CMM, CMMI e PSP / TSP in quanto potrebbe essere implementato sia come metodologia agile che come strategia pianificata.

L'unico altro esempio che il libro fornisce sono d'accordo Ingegneria del software di Cleanroom . I componenti chiave di Cleanroom sono l'uso di metodi formali, controllo statistico della qualità e test statisticamente validi. Non vedo perché questi non possano essere utilizzati in un metodo agile (iterativo / incrementale), con l'aggiunta del tempo e dei costi generali.

Solo per chiarire quello che sto cercando, la famiglia di metodi agili include implementazioni specifiche di un'idea astratta sotto forma di Scrum ed Extreme Programming. Questi realizzano i concetti di sviluppo iterativo e incrementale, rispondendo al cambiamento, persone (individui e team), frequenti consegne di software funzionante, collaborazione con il cliente e così via. Specificano chiaramente ruoli, artefatti, riunioni, timebox e altre pratiche e "fare Scrum" o "fare programmazione estrema" significa prendere il pacchetto. Anche così, consentono la personalizzazione e la creazione di nuovi processi (ma poi non si sta "facendo Scrum" o "facendo XP"). Tuttavia, non ho trovato la "do X" delle metodologie basate su piani - la maggior parte del lavoro sembra essere verso framework che potrebbero essere agili o basati su piani.

Quindi, la mia domanda: quali sono gli esempi di più metodologie di sviluppo del software basate sui piani? Un certo numero di framework di processo (PSP / TSP, SW-CMM, CMMI, RUP) consentono anche lo sviluppo pianificato o agile, ma nessuno è descrittivo. Ma ci sono delle metodologie realmente pianificate, che sono, per esempio, controparti dirette di Scrum ed Extreme Programming?

    
posta Thomas Owens 25.10.2011 - 02:09
fonte

1 risposta

5

Onestamente, ho dei dubbi sulla validità di qualsiasi affermazione fatta in un libro che mette Agilità e Disciplina l'una contro l'altra. Le metodologie agili richiedono molta più disciplina, nella mia esperienza, rispetto ad altri tipi di sviluppo.

Cioè, se hai intenzione di sfruttare i vantaggi dei processi Agile, devi seguire le pratiche di abilitazione fornite con loro (vedi Martin Fowler's Design Dead , parla principalmente di XP, ma si applica a tutta l'Agilità, a mio parere). Ciò richiede molta disciplina.

Tuttavia, per rispondere alla tua domanda, penso che tutte le metodologie realmente guidate dal piano siano variazioni di Waterfall, come Spirale , che richiede lo sviluppo attraverso più livelli di prototipazione prima di passare a un approccio a cascata e Cap Gemini SDM , che è Waterfall con fasi molto distinte in cui ciascuna termina prima che un'altra inizi.

    
risposta data 25.10.2011 - 02:52
fonte

Leggi altre domande sui tag