Test Intermedi (Continuous Integration, CI)

Document Details

CostEffectiveThorium1709

Uploaded by CostEffectiveThorium1709

University of Milan

Tags

continuous integration software engineering project management agile methodologies

Summary

This document describes Continuous Integration (CI), a software engineering practice focused on integrating new code into an existing codebase. It also outlines the advantages of CI in project management, such as enabling rapid feedback and automated build and release processes. Additionally, it details the concept of "Cycle" in the context of project management and its application in methodologies like Kanban and Scrum.

Full Transcript

***Continuous Integration (CI)*** **Definizione**: l\'integrazione continua è una pratica di ingegneria del software che prevede l\'integrazione continua di nuovo codice di sviluppo nella base di codice esistente. **Noto anche come**: distribuzione continua, distribuzione continua **Come viene...

***Continuous Integration (CI)*** **Definizione**: l\'integrazione continua è una pratica di ingegneria del software che prevede l\'integrazione continua di nuovo codice di sviluppo nella base di codice esistente. **Noto anche come**: distribuzione continua, distribuzione continua **Come viene utilizzato**: una volta completata una funzionalità, gli sviluppatori la testano per rilevare eventuali difetti e quindi la integrano nella base di codice esistente. Ciò garantisce che il repository del codice contenga sempre la build software funzionante più recente. In pratica, questo processo è ampiamente automatizzato tramite l\'uso di strumenti di controllo delle versioni, policy e convenzioni del team e strumenti CI specifici. **Vantaggi del Project Management**: Consente un feedback rapido, in modo che i difetti possano essere identificati e corretti rapidamente. Riduce al minimo il tempo e lo sforzo necessari per eseguire ogni integrazione. Fornisce un processo di build e rilascio automatizzato. Consente al software di essere consegnato in qualsiasi momento. ***Cycle*** **Definizione**: un ciclo si riferisce alla quantità totale di tempo necessaria affinché una singola attività o elemento di lavoro percorra il flusso di lavoro dall\'inizio del lavoro fino alla spedizione. **Come viene utilizzato**: la metodologia Kanban utilizza il tempo di ciclo come metrica chiave, anziché la velocità, come con Scrum. Man mano che i team Kanban diventano più efficienti nell\'ottimizzazione del flusso di lavoro e nella produzione di risultati, i tempi di ciclo diminuiscono e la produttività aumenta. I cicli non hanno limiti di tempo stabiliti; piuttosto, il flusso di lavoro si basa sulla consegna continua. I team Kanban con competenze condivise sperimentano tempi di ciclo più brevi. I team dovrebbero impegnarsi per tempi di ciclo più brevi e più coerenti. I tempi di ciclo possono essere applicati anche in Scrum. **Vantaggi del Project Management:** Porta a un miglioramento continuo. Aumenta la capacità di prevedere consegne future (con tempi di ciclo coerenti). Aumenta la produttività (con tempi di ciclo più brevi). ***Daily Scrum*** **Definizione**: il Daily Scrum è una breve sessione di comunicazione e controllo dello stato facilitata dallo Scrum Master in cui i team Scrum condividono i progressi, segnalano gli impedimenti e prendono impegni per l\'iterazione o lo sprint corrente. Il Daily Scrum consiste in una conversazione strettamente focalizzata e mantenuta entro un intervallo di tempo rigoroso; la riunione si tiene alla stessa ora, ogni giorno (idealmente, al mattino) e nello stesso luogo. La bacheca delle attività Scrum funge da punto focale della riunione. **Noto anche come**: Daily standup, daily meeting, daily huddle **Come viene utilizzato**: Lo Scrum Master in genere pone ai membri del team le seguenti tre domande: Cosa ho realizzato ieri? A cosa mi impegnerò o completerò oggi? Quali impedimenti o ostacoli mi impediscono di rispettare i miei impegni? Tutte le discussioni durante il Daily Scrum dovrebbero essere incentrate sulla risposta a queste tre domande. Eventuali discussioni aggiuntive derivanti da queste domande dovrebbero essere affrontate separatamente. Solo coloro che sono coinvolti nello sprint corrente dovrebbero essere presenti al Daily Scrum. **Vantaggi del Project Management:** Mantiene il flusso di lavoro in carreggiata. Aiuta a identificare i problemi prima possibile. Aumenta la responsabilità, la comunicazione e la collaborazione del team. Consente al team di vedere il \"quadro generale\" dello sprint. Stimola l\'auto-organizzazione del team e la pianificazione personale. Aiuta i membri del team ad affrontare i problemi e apportare piccole correzioni al percorso, se necessario. Fornisce interazione faccia a faccia (se in loco). ***Daily Standup*** **Definizione**: la riunione Daily Standup è una componente chiave delle metodologie Agile e funge da forum quotidiano per i team Agile per condividere i progressi, segnalare gli impedimenti e assumere impegni per l\'iterazione o lo sprint corrente. Questa breve riunione di 15 minuti si tiene solitamente ogni mattina alla stessa ora e nello stesso luogo. La riunione dovrebbe essere sufficientemente breve da consentire ai partecipanti di stare in piedi per tutta la sua durata: stare in piedi favorisce la brevità e garantisce che la riunione non si protragga oltre il lasso di tempo assegnato. **Noto anche come**: Daily Scrum, standup meeting, daily meeting, daily huddle **Come si usa**: i daily standup si tengono solitamente attorno alla bacheca fisica Scrum o Kanban del team (per i team in sede). I team rispondono a tre domande sul loro stato di lavoro seguendo queste linee: Cosa ho realizzato ieri? Cosa mi impegnerò a fare o completerò oggi? Quali impedimenti o ostacoli mi impediscono di rispettare i miei impegni? Tutte le discussioni durante il daily standup dovrebbero essere incentrate sulla risposta a queste tre domande. Eventuali discussioni aggiuntive derivanti da queste domande dovrebbero essere gestite al di fuori del daily standup. **Vantaggi del Project Management:** Mantiene il flusso di lavoro in carreggiata. Mantiene la riunione breve (grazie allo stare in piedi). Aiuta a identificare i problemi prima che sia troppo tardi. Aumenta la responsabilità, la comunicazione e la collaborazione del team. Stimola l\'auto-organizzazione del team e la pianificazione personale. Aiuta i membri del team ad affrontare i problemi e apportare piccole correzioni al percorso, se necessario. Fornisce interazione faccia a faccia (se in sede). ***Definizione di Done*** **Definizione**: la definizione di Done si riferisce a un set di criteri predeterminati che un prodotto deve soddisfare per essere considerato come fatto. Il team raggiunge un consenso su cosa definisce un\'attività come fatta e quindi pubblica una checklist di passaggi che devono essere completati prima che il prodotto possa essere considerato potenzialmente spedibile. **Noto anche come**: singolo fatto, fatto, fatto-fatto-fatto, lista fatto, checklist fatto, sashimi di prodotto, definizione di attività completa, punch list **Come viene utilizzato:** il team concorda su una lista di criteri che devono essere soddisfatti prima che un incremento di prodotto sia considerato \"fatto\", ovvero, tutta la progettazione, la codifica, i test e la documentazione sono stati completati e il codice è stato completamente integrato nel sistema. Se un\'attività non soddisfa i criteri della definizione di Done, non conta per la velocità del team. **Vantaggi del Project Management**: Migliora la probabilità di consegnare software funzionante. Limita il costo di rielaborazione una volta che una funzionalità è stata accettata come \"completata\". Riduce il rischio di incomprensioni e conflitti tra il team di sviluppo e il cliente o il proprietario del prodotto. ***Epic Stories*** **Definizione**: Epic o storie epiche sono definite come grandi storie utente che, nel loro stato attuale, sarebbero difficili da stimare o completare in una singola iterazione. Le storie epiche hanno in genere una priorità inferiore e sono in attesa di essere suddivise in componenti più piccole. **Come vengono utilizzate**: le Epic Stories sono spesso utilizzate come segnaposto per nuove idee che non sono state completamente sviluppate. Mentre le storie epiche sono comuni quando si sviluppa il backlog iniziale del prodotto, alla fine dovrebbero essere suddivise in storie utente più gestibili in cui i requisiti della storia sono definiti in modo più restrittivo. **Vantaggi del Project Management**: Utili come segnaposto per grandi requisiti. Utile per una visione d\'insieme delle storie utente. ***Estimation*** **Definizione**: la stima è il processo di assegnazione di una misura quantificabile alla quantità di carico di lavoro necessaria per completare un progetto o un\'attività, al fine di determinare la durata, lo sforzo o il costo richiesti per completare il progetto o l\'attività. **Come viene utilizzato**: il team Agile deve raggiungere un consenso su una stima dello sforzo del carico di lavoro o della durata necessaria per completare l\'attività in base alle stime individuali fornite dai membri del team. Ciò può assumere la forma di un gioco noto come Planning Poker. **Vantaggi del Project Management**: Fornisce un\'indicazione della durata complessiva, dello sforzo o del costo di un progetto software. Riduce l\'incertezza relativa a costi e durata. Fornisce una linea guida per la stima di attività o progetti. ***Fail-Fast*** **Definizione**: Fail-fast è il processo di avvio del lavoro su un\'attività o un progetto, ottenendo un feedback immediato e quindi determinando se continuare a lavorare su tale attività o adottare un approccio diverso, ovvero adattarsi. Se un progetto non funziona, è meglio determinarlo all\'inizio del processo piuttosto che aspettare che siano stati investiti troppi soldi e tempo. **Come viene utilizzato**: un team avvia un nuovo progetto o attività, ottiene un feedback all\'inizio e quindi conduce un\'analisi per determinare se il progetto sarà funzionale o avrà successo. Se un\'attività o un progetto si sta muovendo nella direzione sbagliata, i membri del team sono incoraggiati a interrompere il lavoro il prima possibile. **Vantaggi del Project Management:** Identifica rapidamente i problemi. Crea una cultura di trasparenza. Riduce sprechi di tempo, sforzi e costi. Migliora l\'efficienza nello sviluppo di prodotti software.

Use Quizgecko on...
Browser
Browser