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.