JavaRush /Java Blog /Random-IT /Tutto quello che devi sapere sulle metodologie di svilupp...

Tutto quello che devi sapere sulle metodologie di sviluppo software: tendenze, principi e insidie per i principianti

Pubblicato nel gruppo Random-IT
Lo sviluppo del software è un processo aziendale complesso. Ciò significa che l'IT deve parlare la lingua dell'ottimizzazione, della pianificazione e del calcolo. Tutto quello che devi sapere sulle metodologie di sviluppo software: tendenze, principi e insidie ​​per i principianti - 1Comprendere i concetti di gestione offre un grande vantaggio sia ai datori di lavoro che agli sviluppatori e aiuta a portare la collaborazione a un livello superiore.

Nota per i principianti: modelli, metodologie e confusione generale

Un chiarimento importante per cominciare: esistono modelli separati per lo sviluppo del software e metodologia separata per questo stesso sviluppo. I modelli prevedono il comportamento futuro di un sistema. Le metodologie sono necessarie affinché il sistema funzioni nel modo necessario. Confondere modelli e metodologie di sviluppo software è il compito sacro di ogni principiante IT, quindi questo non è considerato un grave errore. Eppure, i modelli sono quelli classici della Cascata Waterfall , con la sua linearità, la chiara definizione degli obiettivi per ogni fase e il rigoroso controllo delle scadenze. I modelli sono Spiral , focalizzati sull'identificazione precoce e sulla mitigazione dei rischi del progetto. Lo sviluppo a spirale inizia su piccola scala, risolvendo prima i problemi locali e poi quelli più complessi. Il modello finale è IID , che suddivide il ciclo di vita del progetto in una sequenza di iterazioni, ognuna delle quali assomiglia a un “mini-progetto”. In generale, un modello è qualcosa che descrive il processo di sviluppo del software . Ma le metodologie sono sistemi di controllo, valutazione e monitoraggio del lavoro sui compiti assegnati. Le metodologie sono la carota e il bastone dello sviluppo moderno, necessarie per controllare ogni anello del processo di sviluppo. Vengono scelti in base alla direzione del progetto, al suo budget e ai tempi del prodotto finale. Inoltre, le metodologie possono essere selezionate in base al temperamento del project manager e del suo team. Anche in base alla filosofia dell'azienda o del cliente. Diamo un'occhiata alle metodologie più popolari.

1. Metodologia di mischia

Scrum è un metodo agile di gestione dei progetti . Si basa su "sprint" - iterazioni brevi, strettamente limitate nel tempo (di solito 2-4 settimane). La durata delle riunioni è ridotta al minimo, ma la loro frequenza aumenta. Ogni sprint è costituito da un elenco di compiti fino alla fine dell'iterazione, e ognuno di essi ha il proprio “peso”. Durante le riunioni, il team discute chi ha fatto cosa, cosa farà e quali problemi ci sono. Scrum utilizza uno sprint journal per la pianificazione. In questo approccio, nel team appare spesso uno Scrum Master, che stabilisce il lavoro continuo dell'intero team, creando condizioni confortevoli per questo. Anche nel progetto appare il ruolo del Product Owner: il responsabile dello sviluppo, la persona che monitora il prodotto e funge da collegamento principale tra la richiesta del cliente e il risultato del team.

Professionisti:

  • avvio rapido del progetto con il budget più basso possibile;
  • monitoraggio quotidiano dello stato di avanzamento dei lavori, frequenti dimostrazioni del progetto;
  • la capacità di apportare modifiche man mano che il progetto avanza.

Aspetti negativi:

  • difficoltà nella conclusione dei contratti a causa della mancanza di un budget fisso;
  • non lavora con qualifiche basse del team, scadenze di lavoro o budget sottovalutati;
  • la capacità di apportare continuamente modifiche tra gli sprint può creare confusione.

A chi è adatto:

Questo sistema è adatto a progetti fino a dieci persone, indipendenti o all'interno di grandi aziende. Ciò è conveniente se il team ha una grande mole di lavoro e un lungo ciclo di vita, che lo costringe a cambiare e ad adattarsi alle nuove condizioni del mercato.

2. Metodologia Kanban

La caratteristica più importante di Kanban è la visualizzazione del ciclo di vita del progetto . Le colonne vengono create per completare le attività inviate individualmente. Le colonne sono contrassegnate da indicatori come: Da fare, In corso, Revisione del codice, In test, Fatto (i nomi delle colonne, ovviamente, possono cambiare). L'obiettivo di ciascun membro del team è ridurre il numero di attività nella prima colonna. L’approccio Kanban è visivo e ti aiuta a capire dove si trova il problema. La struttura Kanban non è determinata in modo definitivo e irrevocabile: a seconda delle specificità del progetto si possono aggiungere colonne improvvisate. Ad esempio, alcuni team utilizzano un sistema in cui devono definire i criteri per l'idoneità di un'attività prima di eseguirla. Quindi vengono aggiunte due colonne: specifica (specifica i parametri) ed esegui (mettiti al lavoro).

Professionisti:

  • flessibilità progettuale. Il team si concentra solo sul lavoro corrente, viene determinata anche la priorità del compito;
  • visibilità. Quando tutti gli attori hanno accesso ai dati, le questioni globali sono più facili da notare;
  • elevato coinvolgimento nel processo di sviluppo. La visualizzazione del processo aumenta l’auto-organizzazione e l’autocontrollo.

Aspetti negativi:

  • non funziona con team composti da più di cinque persone;
  • non destinato alla pianificazione a lungo termine;
  • non adatto a lavorare in gruppo senza motivazione. Nel Kanban non sono previste scadenze per ogni attività e la metodologia non prevede penalità in caso di ritardo.

A chi è adatto:

Kanban funziona alla grande nelle aziende in cui il team è motivato a sviluppare e ottenere risultati. Come è già ovvio, una piccola squadra. Forse anche una divisione o parte di una squadra.

3. Metodologia RUP

La metodologia RUP utilizza un modello di sviluppo iterativo. Alla fine di ogni iterazione (che richiede dalle 2 alle 6 settimane), il team dovrebbe raggiungere gli obiettivi pianificati e avere una versione temporanea ma funzionante del progetto. RUP prevede la divisione del progetto in quattro fasi , in ciascuna delle quali si lavora su una nuova generazione del prodotto: fase di avvio del progetto, perfezionamento, costruzione e implementazione. Alla fine della fase, viene inserito un indicatore di completamento della fase (Pietra miliare del progetto). Project Milestone può essere considerato il momento in cui il team valuta i risultati raggiunti. Di conseguenza, la metodologia implica che le funzionalità principali vengano rilasciate nella prima fase e che le aggiunte vengano aggiunte nelle fasi successive.

Professionisti:

  • permette di far fronte ai compiti mutevoli provenienti sia dal cliente che a quelli che emergono durante il lavoro;
  • garantisce il miglioramento continuo del prodotto. Durante le iterazioni, il progetto può essere esaminato attentamente;
  • consente di identificare ed eliminare i rischi nelle prime fasi di lavoro, oltre a controllare efficacemente la qualità dello sviluppo.

Aspetti negativi:

  • un metodo piuttosto complesso e difficile da implementare con un piccolo team o azienda;
  • dipendenza dalla capacità degli esperti di impostare i compiti;
  • necessita di una documentazione eccessiva dei requisiti.

A chi è adatto:

Grandi progetti con requisiti chiaramente definiti e rischi definiti, quando il prodotto deve essere rilasciato il più rapidamente possibile. Anche a scapito della funzionalità, per occupare rapidamente la sua nicchia e solo successivamente affinare le sfumature.

Molte metodologie, una tendenza

Oltre agli innegabilmente popolari Scrum e Kanban, che si basano sui principi di flessibilità sotto il nome generico di “Agile” , nonché al tenace RUP iterativo, le aziende lavorano con molte varianti di metodologie. Alcune persone preferiscono la programmazione estrema e prendere le decisioni più rapide e semplici, alcuni preferiscono lo sviluppo basato sui test e altri preferiscono lo sviluppo rapido di applicazioni (RAD). Allo stesso tempo, la tendenza principale e incondizionata è l’uso di più metodologie contemporaneamente . O anche combinando modelli e metodologie in un unico sistema di controllo. Tutto quello che devi sapere sulle metodologie di sviluppo software: tendenze, principi e insidie ​​per i principianti - 2Le aziende moderne si sforzano di eliminare le barriere burocratiche e creare un'atmosfera di lavoro di squadra generale all'interno dell'organizzazione, senza spostare la responsabilità tra dipartimenti e blocchi. Secondo il rapporto Scrumalliance , il 70% delle aziende IT utilizza Scrum. Tra questi ci sono giganti come Google, Amazon, Salesforce, Microsoft, Adobe. Le startup e i progetti giovani sono più propensi al Kanban, ma viene utilizzato anche da Toyota e, ad esempio, dai giocatori di Wargaming. Le società CIS più modeste Prom.ua, Bigl.ua, Kabanchik.ua utilizzano contemporaneamente le metodologie Scrum e Kanban, ma per compiti diversi. Scrum - come strumento di pianificazione, Kanban - per monitorare l'avanzamento del lavoro. Per quanto riguarda il RUP, è spesso praticato da aziende occidentali con 50-200 dipendenti e un fatturato compreso tra 1 e 10 milioni di dollari. Ma allo stesso tempo, IBM ha cambiato RUP per avvicinarsi ai principi Agile rilasciando la metodologia OpenUP: “RUP, solo agile”. Quella stessa decantata agilità Agile ora governa il panorama IT . Al giorno d'oggi non è solo una moda passeggera: è ancora innovativo e funziona davvero in molte grandi aziende. Agile è utilizzato nella Silicon Valley ed è utilizzato da Facebook e Uber.

Linea di fondo

Ogni progetto ha la propria metodologia di sviluppo software, a seconda del team, dei finanziamenti, dei tempi e delle esigenze del cliente. Non esiste una tecnologia di gestione universale: anche la popolarissima Agile non può fornire l’approccio migliore al processo di sviluppo. Pertanto, la metodologia viene scelta con attenzione, e talvolta anche in modo fondamentale. Tanto che puoi usarlo per trarre conclusioni sull'azienda stessa o sui suoi clienti. Le metodologie sono miste, integrate con modelli e adattate a se stesse. Tanto da dare origine a nuovi approcci. Anche se alla fine il regno del management rimane nelle mani di Scrum e Kanban, con inclusioni inaspettate del modello Waterfall o RUP iterativo.
Cos'altro leggere
Siti web: Libri:
  • Andrew Stelman, Jennifer Greene: “Apprendimento agile”;
  • Per Kroll, Bruce MacIsaac: “Agilità e disciplina rese semplici: pratiche da OpenUP e RUP”;
  • Mike Cohn: Mischia. Sviluppo agile";
  • Robert K. Martin: “Sviluppo rapido di software. Principi, esempi, pratica";
  • Markus Hammarberg, Joakim Sundén: “Kanban in azione”;
  • A Jacobson, G. Booch, J. Rumbaugh: "Un processo di sviluppo software unificato".
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION