Sono curioso di sapere se qualcuno conosce metodologie significativamente diverse (non una ricombinazione) e apprezzerei particolarmente chiunque abbia portato avanti un'esperienza con alternative.
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:
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.

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.

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

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.

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.
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.
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.
Siediti con il cliente (o l'utente finale) e progetta una serie di casi d'uso.
Disporre il sistema su carta / lavagna su alcune birre e pizza. Snicker quando qualcosa sembra fallico.
Confermare la progettazione con il cliente (o l'utente finale) e bloccare i requisiti.
Autoesplicativo.
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:
Bene per una metodologia interessante che potrebbe funzionare come alternativa a AGILE può essere vista al meglio sotto questi 3 link: