Agile Data Science - Concetti metodologici
In questo capitolo ci concentreremo sui concetti del ciclo di vita dello sviluppo del software chiamato "agile". La metodologia di sviluppo software Agile aiuta nella creazione di un software attraverso sessioni incrementali in brevi iterazioni da 1 a 4 settimane in modo che lo sviluppo sia allineato ai mutevoli requisiti aziendali.
Ci sono 12 principi che descrivono in dettaglio la metodologia Agile:
Soddisfazione dei clienti
La massima priorità viene data ai clienti che si concentrano sui requisiti attraverso la consegna tempestiva e continua di software di valore.
Accogliere nuovi cambiamenti
Le modifiche sono accettabili durante lo sviluppo del software. I processi agili sono progettati per funzionare al fine di abbinare il vantaggio competitivo del cliente.
Consegna
La consegna di un software funzionante viene data ai clienti in un arco di tempo compreso tra una e quattro settimane.
Collaborazione
Gli analisti aziendali, gli analisti della qualità e gli sviluppatori devono collaborare durante l'intero ciclo di vita del progetto.
Motivazione
I progetti dovrebbero essere progettati con un clan di individui motivati. Fornisce un ambiente per supportare i singoli membri del team.
Conversazione personale
La conversazione faccia a faccia è il metodo più efficiente ed efficace per inviare informazioni ae all'interno di un team di sviluppo.
Misurare i progressi
Misurare il progresso è la chiave che aiuta a definire il progresso del progetto e dello sviluppo del software.
Mantenere un ritmo costante
Il processo Agile si concentra sullo sviluppo sostenibile. L'azienda, gli sviluppatori e gli utenti dovrebbero essere in grado di mantenere un ritmo costante con il progetto.
Monitoraggio
È obbligatorio mantenere un'attenzione regolare all'eccellenza tecnica e al buon design per migliorare la funzionalità agile.
Semplicità
Il processo agile mantiene tutto semplice e utilizza termini semplici per misurare il lavoro che non è stato completato.
Termini auto-organizzati
Un team agile dovrebbe essere auto-organizzato e dovrebbe essere indipendente con la migliore architettura; requisiti e progetti emergono da team auto-organizzati.
Rivedi il lavoro
È importante rivedere il lavoro a intervalli regolari in modo che il team possa riflettere su come procede il lavoro. La revisione tempestiva del modulo migliorerà le prestazioni.
Stand-up quotidiano
Lo stand-up quotidiano si riferisce alla riunione quotidiana sullo stato dei membri del team. Fornisce aggiornamenti relativi allo sviluppo del software. Si riferisce anche all'affrontare gli ostacoli allo sviluppo del progetto.
Lo stare in piedi quotidianamente è una pratica obbligatoria, indipendentemente da come viene stabilito un team agile, indipendentemente dalla posizione dell'ufficio.
L'elenco delle caratteristiche di uno stand-up quotidiano è il seguente:
La durata dell'incontro quotidiano in piedi dovrebbe essere di circa 15 minuti. Non dovrebbe estendersi per una durata maggiore.
Lo stand-up dovrebbe includere discussioni sull'aggiornamento dello stato.
I partecipanti a questo incontro di solito stanno con l'intenzione di finire per incontrarsi rapidamente.
Storia dell'utente
Una storia è solitamente un requisito, che è formulato in poche frasi in un linguaggio semplice e dovrebbe essere completato all'interno di un'iterazione. Una user story dovrebbe includere le seguenti caratteristiche:
Tutto il codice correlato dovrebbe avere i relativi check-in.
I casi di unit test per l'iterazione specificata.
Dovrebbero essere definiti tutti i casi di test di accettazione.
Accettazione da parte del proprietario del prodotto durante la definizione della storia.
Cos'è Scrum?
Scrum può essere considerato come un sottoinsieme della metodologia agile. È un processo leggero e include le seguenti caratteristiche:
È una struttura di processo, che include una serie di pratiche che devono essere seguite in un ordine coerente. La migliore illustrazione di Scrum è seguire iterazioni o sprint.
È un processo "leggero", il che significa che il processo è mantenuto il più piccolo possibile, per massimizzare la produzione produttiva in una data durata specificata.
Il processo Scrum è noto per il suo processo distintivo rispetto ad altre metodologie dell'approccio agile tradizionale. È suddiviso nelle seguenti tre categorie:
Roles
Artifacts
Time Boxes
I ruoli definiscono i membri del team e i loro ruoli inclusi durante il processo. Lo Scrum Team è composto dai seguenti tre ruoli:
Maestro di mischia
Proprietario del prodotto
Team
Gli artefatti di Scrum forniscono informazioni chiave di cui ogni membro dovrebbe essere a conoscenza. Le informazioni includono i dettagli del prodotto, delle attività pianificate e delle attività completate. Gli artefatti definiti nel framework Scrum sono i seguenti:
Backlog di prodotto
Backlog di sprint
Brucia il grafico
Increment
Le caselle temporali sono le storie degli utenti pianificate per ogni iterazione. Queste storie utente aiutano a descrivere le caratteristiche del prodotto che fanno parte degli artefatti di Scrum. Il backlog del prodotto è un elenco di storie degli utenti. Queste storie utente vengono assegnate in base alla priorità e inoltrate alle riunioni degli utenti per decidere quale dovrebbe essere ripresa.
Perché Scrum Master?
Scrum Master interagisce con ogni membro del team. Vediamo ora l'interazione dello Scrum Master con altri team e risorse.
Proprietario del prodotto
Lo Scrum Master interagisce con il proprietario del prodotto nei seguenti modi:
Trovare tecniche per ottenere un backlog di prodotto efficace delle storie degli utenti e gestirle.
Aiutare il team a comprendere le esigenze di elementi del backlog di prodotto chiari e concisi.
Pianificazione del prodotto con ambiente specifico.
Garantire che il proprietario del prodotto sappia come aumentare il valore del prodotto.
Facilitare gli eventi Scrum come e quando richiesto.
Scrum Team
Lo Scrum Master interagisce con il team in diversi modi:
Coaching l'organizzazione nell'adozione di Scrum.
Pianificare le implementazioni di Scrum per l'organizzazione specifica.
Aiutare i dipendenti e le parti interessate a comprendere i requisiti e le fasi di sviluppo del prodotto.
Lavorare con Scrum Master di altri team per aumentare l'efficacia dell'applicazione di Scrum del team specificato.
Organizzazione
Lo Scrum Master interagisce con l'organizzazione in diversi modi. Alcuni sono menzionati di seguito:
Il coaching e il team di mischia interagiscono con l'auto-organizzazione e includono una funzionalità di funzionalità incrociata.
Coaching dell'organizzazione e dei team in quelle aree in cui Scrum non è ancora completamente adottato o non è accettato.
Vantaggi di Scrum
Scrum aiuta clienti, membri del team e stakeholder a collaborare. Include un approccio timebox e un feedback continuo da parte del proprietario del prodotto che garantisce che il prodotto sia in condizioni di lavoro. Scrum fornisce vantaggi ai diversi ruoli del progetto.
Cliente
Gli sprint o le iterazioni sono considerati per una durata più breve e le user story sono progettate secondo priorità e vengono prese in considerazione durante la pianificazione dello sprint. Assicura che ogni consegna sprint, i requisiti dei clienti siano soddisfatti. In caso contrario, i requisiti vengono annotati, pianificati e presi per lo sprint.
Organizzazione
L'organizzazione con l'aiuto di Scrum e Scrum master può concentrarsi sugli sforzi necessari per lo sviluppo di user story riducendo così il sovraccarico di lavoro ed evitando eventuali rielaborazioni. Questo aiuta anche a mantenere una maggiore efficienza del team di sviluppo e la soddisfazione del cliente. Questo approccio aiuta anche ad aumentare il potenziale del mercato.
Responsabili del prodotto
La responsabilità principale dei responsabili del prodotto è garantire il mantenimento della qualità del prodotto. Con l'aiuto di Scrum Masters, diventa facile facilitare il lavoro, raccogliere risposte rapide e assorbire eventuali cambiamenti. I responsabili di prodotto verificano anche che il prodotto progettato sia allineato secondo i requisiti del cliente in ogni sprint.
Team di sviluppo
Con la natura time-boxed e mantenendo gli sprint per un periodo di tempo inferiore, il team di sviluppo diventa entusiasta nel vedere che il lavoro viene riflesso e consegnato correttamente. Il prodotto funzionante incrementa ogni livello dopo ogni iterazione o meglio possiamo chiamarli “sprint”. Le storie degli utenti progettate per ogni sprint diventano la priorità del cliente aggiungendo più valore all'iterazione.
Conclusione
Scrum è un framework efficiente all'interno del quale è possibile sviluppare software in team. È completamente progettato su principi agili. ScrumMaster è lì per aiutare e cooperare al team di Scrum in ogni modo possibile. Si comporta come un personal trainer che ti aiuta a rispettare il piano progettato e ad eseguire tutte le attività come da piano. L'autorità di ScrumMaster non dovrebbe mai estendersi oltre il processo. Dovrebbe essere potenzialmente in grado di gestire ogni situazione.