- Il Coach agile
- Manifesto Agile
Scrum
- Panoramica
- Sprint
- Pianificazione dello sprint
- Cerimonie
- Backlog
- Revisioni degli sprint
- Riunioni stand-up
- Scrum Master
- Retrospettive
- Scrum distribuito
- Ruoli
- Scrum-of-scrum
- Artefatti Agile Scrum
- Metriche Scrum
- Scrum di Jira Confluence
- Agile e Scrum a confronto
- Guida alla raffinazione del backlog
- Confronto tra Scrum Master e project manager
Gestione dei progetti Agile
- Panoramica
- Introduzione alla gestione dei progetti
- Flusso di lavoro
- Epic, story, temi
- Epic
- Storie utente
- Stima
- Metriche
- Diagramma di Gantt
- Confronto tra la gestione dei programmi e la gestione dei progetti
- Baseline di progetto
- Miglioramento continuo
- Principi Lean
- I 3 pilastri di Scrum
- Board Scrum
- Metodologia a cascata
- Velocity in Scrum
- Cos'è la Definition of Ready
- Lean e Agile a confronto
- Scrumban
- Metodologia Lean
- Backlog dello sprint
- Grafico burn-up
- 4 principi Kanban
- 4 metriche Kanban
- Program manager e project manager
- Esempi di diagrammi di Gantt
- Definizione di "completato"
- Backlog grooming
- Miglioramento dei processi Lean
- Riunioni di raffinamento del backlog
- Valori Scrum
- Ambito del lavoro
- Strumenti Scrum
- Strumenti
- Software di automazione dei flussi di lavoro
- Modelli
- Tracker dei task
- Automazione del flusso di lavoro
- Report sullo stato
- Grafico del flusso di lavoro
- Roadmap di progetto
- Programmazione di progetto
- Software di tracciamento
- Strumenti per la roadmap
- Roadmap tecnologica
- Software per la programmazione dei progetti
- Strumenti di gestione del backlog
- Comprendere le strategie di gestione del flusso di lavoro
- Esempi di flussi di lavoro
- Crea una roadmap del progetto
- Strumenti di Pianificazione sprint
- Demo dello sprint
- Software per la creazione di timeline dei progetti
- I migliori strumenti di gestione dei task
- Backlog di prodotto e backlog dello sprint a confronto
- I migliori strumenti di gestione dei flussi di lavoro
- Dipendenze del progetto
- Guida alla dashboard dei task
- Cadenza dello sprint
- Fast tracking
- Fibonacci story points
- Product vs. Project Management
- Deadline management
- 10 must-have skills
Gestione del prodotto
- Panoramica
- Roadmap prodotto
- Product manager
- Suggerimenti per i nuovi product manager
- Roadmap
- Suggerimenti per la presentazione delle roadmap di prodotto
- Requisiti
- Analisi del prodotto
- Sviluppo del prodotto
- Gestione remota dei prodotti
- Prodotto minimo funzionante
- Esplorazione del prodotto
- Specifiche di prodotto
- Strategia di sviluppo del prodotto
- Software per lo sviluppo del prodotto
- Processo di sviluppo di nuovi prodotti
- KPI di gestione prodotti
- Net Promoter Score (NPS)
- Critica del prodotto
- Framework di definizione delle priorità
- Caratteristiche del prodotto
- Strumenti di gestione dei prodotti
- Gestione del ciclo di vita del prodotto
- I 9 migliori software per roadmap per i team
- Checklist per un lancio di prodotto
- Strategia di prodotto
- Ingegneria di prodotto
- Product Operations
- Gestione del portfolio
- Intelligenza artificiale e gestione dei prodotti
- Gestione dei prodotti per la crescita
- Metriche di prodotto
- Rilascio del prodotto
- Richiesta di funzionalità
- Lancio del prodotto
- Pianificazione del prodotto
- Evento per il lancio di un prodotto
- Product operating model
- Product design
- Gestione dei flussi di valore
Agilità su larga scala
- Panoramica
- Gestione di un portfolio Agile
- Gestione snella del portfolio
- OKR
- Pianificazione Agile a lungo termine
- Che cos'è SAFe?
- Modello Spotify
- Introdurre l'approccio Agile nell'organizzazione con Scrum@Scale
- Triangolo di ferro Agile
- Il framework Large-Scale Scrum (LeSS)
- Utilizzo della metodologia Kata del miglioramento a sostegno dell'approccio Lean
- Whitepaper Beyond the basics (Oltre le basi)
Sviluppo software
- Panoramica
- Sviluppatore
- Development manager e Scrum Master a confronto
- Git
- Creazione di branch
- Video sulla creazione di branch Git
- Revisioni del codice
- di Git
- Debito tecnico
- Test
- Risposta agli imprevisti
- Continuous integration
- Sdlc
- Valutazione dei bug: definizione, esempi e best practice
- Distribuzione del software
- DevOps
Tutorial su Agile
- Panoramica
- Perfezionamento degli sprint in Jira e Confluence
- Come utilizzare Scrum con Jira
- Scopri come utilizzare Kanban con Jira
- Scopri come utilizzare gli epic in Jira
- Scopri come creare una board Agile in Jira
- Scopri come utilizzare gli sprint in Jira
- Impara a utilizzare le versioni con Jira
- Scopri come utilizzare i ticket con Jira
- Impara a usare i grafici burn-down con Jira
- Creazione automatica di sottotask e aggiornamento dei campi in Jira
- Come assegnare automaticamente i ticket con Jira Automation
- Come sincronizzare epic e story con Jira Automation
- Escalation automatica dei ticket scaduti in Jira
Informazioni su Agile Coach
- Tutti gli articoli
Cos'è una strategia di branch?
Sfrutta la potenza della creazione di branch nel controllo delle versioni per semplificare la collaborazione, migliorare la stabilità del codice e riuscire a "unificare" con facilità.

di Dan Radigan
di Dan Radigan
L'approccio Agile ha avuto un impatto enorme su di me sia a livello professionale che a livello personale perché ho imparato che le migliori esperienze sono agili, sia nel codice che nella vita. I miei interessi includono la tecnologia, la fotografia e il motociclismo.
Inizia con il modello DevOps gratuito
Affidati a questo modello personalizzabile per sviluppare, distribuire e gestire le applicazioni con un approccio aperto agli strumenti.
Quasi tutti i sistemi di controllo delle versioni oggi supportano i branch, le linee di lavoro indipendenti che derivano da un'unica base di codice centrale.
Una strategia di branch è costituita da linee guida che aiutano gli sviluppatori a organizzare, scrivere, unire e distribuire il codice utilizzando un sistema di controllo della versione. Il branch principale, spesso indicato come mainline, default o trunk, è la base da cui gli sviluppatori possono creare i propri branch e lavorarci in maniera indipendente.
Comprendere le varie strategie di branch disponibili è fondamentale per ottimizzare la collaborazione e garantire la qualità del codice nei progetti di sviluppo software.
I vantaggi di una strategia di branch
La creazione di branch consente ai team di sviluppatori di collaborare facilmente all'interno di una base del codice centrale. Quando uno sviluppatore crea un branch, il sistema di controllo delle versioni crea in quel momento una copia la base del codice. Le modifiche apportate al branch non influiscono sugli altri sviluppatori del team. Si tratta di un aspetto positivo, ovviamente, perché le funzioni in fase di sviluppo possono creare instabilità, con conseguenze che sarebbero dirompenti se tutto il lavoro avvenisse sulla riga di codice principale. Non è necessario, tuttavia, che i branch siano isolati. Gli sviluppatori possono utilizzare facilmente le modifiche di altri sviluppatori per collaborare alle funzioni e garantire che il loro branch privato non si discosti troppo da quello principale.
Suggerimento
Tre strategie di creazione di branch per i team Agile
I modelli di creazione di branch spesso differiscono tra i team e sono oggetto di un intenso dibattito nella comunità software. Un tema importante è la quantità di lavoro che dovrebbe rimanere in un branch prima di essere nuovamente sottoposta a merge nel branch principale.
Creazione di branch di rilascio
La creazione di branch di rilascio si riferisce all'idea che un rilascio sia interamente contenuto all'interno di un branch. Ciò significa che, alla fine del ciclo di sviluppo, il responsabile dei rilasci creerà un branch dal branch principale (ad esempio, "Branch di sviluppo 1.1"). Tutte le modifiche per il rilascio 1.1 devono essere applicate due volte: una volta al branch 1.1 e poi alla riga di codice principale. Lavorare con due branch costituisce lavoro aggiuntivo per il team ed è facile dimenticare di eseguire il merge di entrambi i branch. I branch di rilascio possono essere ingombranti e difficili da gestire poiché molte persone lavorano sullo stesso branch. Tutti conosciamo il dolore di dover eseguire il merge di numerose modifiche diverse su un unico branch. Se è necessario creare un branch di rilascio, crealo il più vicino possibile al rilascio effettivo.
ATTENZIONE:
La creazione di branch di rilascio è un aspetto importante del supporto delle varie versioni software disponibili sul mercato. Un singolo prodotto può avere diversi branch di rilascio (ad esempio, 1.1, 1.2, 2.0) per supportare lo sviluppo. Tieni presente che le modifiche alle versioni precedenti (ad esempio 1.1) potrebbero dover essere unite ai branch di rilascio successivi (ad esempio 1.2, 2.0). Dai un'occhiata al nostro webinar qui sotto per maggiori informazioni sulla gestione dei branch di rilascio con Git.
Creazione di branch di funzioni
I branch di funzione sono spesso associati ai flag delle funzioni, ovvero "interruttori" che abilitano o disabilitano una funzione all'interno del prodotto. Questo semplifica la distribuzione del codice nel branch principale e controllano lo stato di attivazione della funzione, facilitando la distribuzione iniziale del codice molto prima che la funzione sia visibile agli utenti finali.
Suggerimento
Creazione di branch di task
In Atlassian utilizziamo un flusso di lavoro di branch per task. Ogni organizzazione ha un modo naturale di suddividere il lavoro in singoli task all'interno di uno strumento di monitoraggio dei ticket, come Jira. I ticket diventano, quindi, il punto di contatto centrale del team per quel lavoro. La creazione di branch dei task, nota anche come creazione di branch dei ticket, collega direttamente tali ticket con il codice sorgente. Ogni ticket viene implementato sul suo branch con l'identificatore ticket incluso nel nome del branch. Capire quale codice implementa i singoli ticket è semplice: basta cercare l'identificatore ticket nel nome del branch. Con questo livello di trasparenza, puoi applicare facilmente modifiche specifiche al branch principale o a qualsiasi branch di rilascio legacy a esecuzione prolungata.
Poiché l'approccio Agile è incentrato sulle user story, i branch dei task si abbinano bene allo sviluppo Agile. Ogni user story (o correzione di bug) risiede all'interno del relativo branch; in questo modo, è facile vedere quali ticket sono in corso e quali sono pronti per il rilascio.
Sfide legate alla creazione di branch
Tutti conosciamo il dolore di avere cercato di integrare più branch in un'unica soluzione ragionevole. In passato, il merge era un'operazione molto complessa a causa dei sistemi centralizzati di controllo delle versioni, come Subversion. I sistemi di controllo delle versioni più recenti, invece, come Git e Mercurial adottano un approccio diverso per tenere traccia delle versioni dei file che risiedono su branch diversi.
I branch sono in genere di breve durata, pertanto sono più facili da sottoporre a merge e più flessibili in tutta la base di codice. Tra la capacità di eseguire frequentemente e automaticamente il merge di branch come parte della continuous integration e il fatto che i branch di breve durata contengono semplicemente una minore quantità di modifiche, i "merge infernali" diventano un ricordo del passato per i team che utilizzano Git e Mercurial.
È questo che rende così fantastica la creazione di branch dei task!
In conclusione...
Un sistema di controllo delle versioni può influire limitatamente sul risultato di un merge. Anche i test automatizzati e la continuous integration sono fondamentali. La maggior parte dei server di continuous integration può eseguire automaticamente test sui nuovi branch, riducendo notevolmente il numero di "sorprese" dell'upstream del merge finale e contribuendo a mantenere la stabilità della riga di codice principale.
- Il Coach agile
- Manifesto Agile
Scrum
- Panoramica
- Sprint
- Pianificazione dello sprint
- Cerimonie
- Backlog
- Revisioni degli sprint
- Riunioni stand-up
- Scrum Master
- Retrospettive
- Scrum distribuito
- Ruoli
- Scrum-of-scrum
- Artefatti Agile Scrum
- Metriche Scrum
- Scrum di Jira Confluence
- Agile e Scrum a confronto
- Guida alla raffinazione del backlog
- Confronto tra Scrum Master e project manager
Gestione dei progetti Agile
- Panoramica
- Introduzione alla gestione dei progetti
- Flusso di lavoro
- Epic, story, temi
- Epic
- Storie utente
- Stima
- Metriche
- Diagramma di Gantt
- Confronto tra la gestione dei programmi e la gestione dei progetti
- Baseline di progetto
- Miglioramento continuo
- Principi Lean
- I 3 pilastri di Scrum
- Board Scrum
- Metodologia a cascata
- Velocity in Scrum
- Cos'è la Definition of Ready
- Lean e Agile a confronto
- Scrumban
- Metodologia Lean
- Backlog dello sprint
- Grafico burn-up
- 4 principi Kanban
- 4 metriche Kanban
- Program manager e project manager
- Esempi di diagrammi di Gantt
- Definizione di "completato"
- Backlog grooming
- Miglioramento dei processi Lean
- Riunioni di raffinamento del backlog
- Valori Scrum
- Ambito del lavoro
- Strumenti Scrum
- Strumenti
- Software di automazione dei flussi di lavoro
- Modelli
- Tracker dei task
- Automazione del flusso di lavoro
- Report sullo stato
- Grafico del flusso di lavoro
- Roadmap di progetto
- Programmazione di progetto
- Software di tracciamento
- Strumenti per la roadmap
- Roadmap tecnologica
- Software per la programmazione dei progetti
- Strumenti di gestione del backlog
- Comprendere le strategie di gestione del flusso di lavoro
- Esempi di flussi di lavoro
- Crea una roadmap del progetto
- Strumenti di Pianificazione sprint
- Demo dello sprint
- Software per la creazione di timeline dei progetti
- I migliori strumenti di gestione dei task
- Backlog di prodotto e backlog dello sprint a confronto
- I migliori strumenti di gestione dei flussi di lavoro
- Dipendenze del progetto
- Guida alla dashboard dei task
- Cadenza dello sprint
- Fast tracking
- Fibonacci story points
- Product vs. Project Management
- Deadline management
- 10 must-have skills
Gestione del prodotto
- Panoramica
- Roadmap prodotto
- Product manager
- Suggerimenti per i nuovi product manager
- Roadmap
- Suggerimenti per la presentazione delle roadmap di prodotto
- Requisiti
- Analisi del prodotto
- Sviluppo del prodotto
- Gestione remota dei prodotti
- Prodotto minimo funzionante
- Esplorazione del prodotto
- Specifiche di prodotto
- Strategia di sviluppo del prodotto
- Software per lo sviluppo del prodotto
- Processo di sviluppo di nuovi prodotti
- KPI di gestione prodotti
- Net Promoter Score (NPS)
- Critica del prodotto
- Framework di definizione delle priorità
- Caratteristiche del prodotto
- Strumenti di gestione dei prodotti
- Gestione del ciclo di vita del prodotto
- I 9 migliori software per roadmap per i team
- Checklist per un lancio di prodotto
- Strategia di prodotto
- Ingegneria di prodotto
- Product Operations
- Gestione del portfolio
- Intelligenza artificiale e gestione dei prodotti
- Gestione dei prodotti per la crescita
- Metriche di prodotto
- Rilascio del prodotto
- Richiesta di funzionalità
- Lancio del prodotto
- Pianificazione del prodotto
- Evento per il lancio di un prodotto
- Product operating model
- Product design
- Gestione dei flussi di valore
Agilità su larga scala
- Panoramica
- Gestione di un portfolio Agile
- Gestione snella del portfolio
- OKR
- Pianificazione Agile a lungo termine
- Che cos'è SAFe?
- Modello Spotify
- Introdurre l'approccio Agile nell'organizzazione con Scrum@Scale
- Triangolo di ferro Agile
- Il framework Large-Scale Scrum (LeSS)
- Utilizzo della metodologia Kata del miglioramento a sostegno dell'approccio Lean
- Whitepaper Beyond the basics (Oltre le basi)
Sviluppo software
- Panoramica
- Sviluppatore
- Development manager e Scrum Master a confronto
- Git
- Creazione di branch
- Video sulla creazione di branch Git
- Revisioni del codice
- di Git
- Debito tecnico
- Test
- Risposta agli imprevisti
- Continuous integration
- Sdlc
- Valutazione dei bug: definizione, esempi e best practice
- Distribuzione del software
- DevOps
Tutorial su Agile
- Panoramica
- Perfezionamento degli sprint in Jira e Confluence
- Come utilizzare Scrum con Jira
- Scopri come utilizzare Kanban con Jira
- Scopri come utilizzare gli epic in Jira
- Scopri come creare una board Agile in Jira
- Scopri come utilizzare gli sprint in Jira
- Impara a utilizzare le versioni con Jira
- Scopri come utilizzare i ticket con Jira
- Impara a usare i grafici burn-down con Jira
- Creazione automatica di sottotask e aggiornamento dei campi in Jira
- Come assegnare automaticamente i ticket con Jira Automation
- Come sincronizzare epic e story con Jira Automation
- Escalation automatica dei ticket scaduti in Jira
Informazioni su Agile Coach
- Tutti gli articoli
Cos'è una strategia di branch?
Sfrutta la potenza della creazione di branch nel controllo delle versioni per semplificare la collaborazione, migliorare la stabilità del codice e riuscire a "unificare" con facilità.

di Dan Radigan
di Dan Radigan
L'approccio Agile ha avuto un impatto enorme su di me sia a livello professionale che a livello personale perché ho imparato che le migliori esperienze sono agili, sia nel codice che nella vita. I miei interessi includono la tecnologia, la fotografia e il motociclismo.
Inizia con il modello DevOps gratuito
Affidati a questo modello personalizzabile per sviluppare, distribuire e gestire le applicazioni con un approccio aperto agli strumenti.
Quasi tutti i sistemi di controllo delle versioni oggi supportano i branch, le linee di lavoro indipendenti che derivano da un'unica base di codice centrale.
Una strategia di branch è costituita da linee guida che aiutano gli sviluppatori a organizzare, scrivere, unire e distribuire il codice utilizzando un sistema di controllo della versione. Il branch principale, spesso indicato come mainline, default o trunk, è la base da cui gli sviluppatori possono creare i propri branch e lavorarci in maniera indipendente.
Comprendere le varie strategie di branch disponibili è fondamentale per ottimizzare la collaborazione e garantire la qualità del codice nei progetti di sviluppo software.
I vantaggi di una strategia di branch
La creazione di branch consente ai team di sviluppatori di collaborare facilmente all'interno di una base del codice centrale. Quando uno sviluppatore crea un branch, il sistema di controllo delle versioni crea in quel momento una copia la base del codice. Le modifiche apportate al branch non influiscono sugli altri sviluppatori del team. Si tratta di un aspetto positivo, ovviamente, perché le funzioni in fase di sviluppo possono creare instabilità, con conseguenze che sarebbero dirompenti se tutto il lavoro avvenisse sulla riga di codice principale. Non è necessario, tuttavia, che i branch siano isolati. Gli sviluppatori possono utilizzare facilmente le modifiche di altri sviluppatori per collaborare alle funzioni e garantire che il loro branch privato non si discosti troppo da quello principale.
Suggerimento
Tre strategie di creazione di branch per i team Agile
I modelli di creazione di branch spesso differiscono tra i team e sono oggetto di un intenso dibattito nella comunità software. Un tema importante è la quantità di lavoro che dovrebbe rimanere in un branch prima di essere nuovamente sottoposta a merge nel branch principale.
Creazione di branch di rilascio
La creazione di branch di rilascio si riferisce all'idea che un rilascio sia interamente contenuto all'interno di un branch. Ciò significa che, alla fine del ciclo di sviluppo, il responsabile dei rilasci creerà un branch dal branch principale (ad esempio, "Branch di sviluppo 1.1"). Tutte le modifiche per il rilascio 1.1 devono essere applicate due volte: una volta al branch 1.1 e poi alla riga di codice principale. Lavorare con due branch costituisce lavoro aggiuntivo per il team ed è facile dimenticare di eseguire il merge di entrambi i branch. I branch di rilascio possono essere ingombranti e difficili da gestire poiché molte persone lavorano sullo stesso branch. Tutti conosciamo il dolore di dover eseguire il merge di numerose modifiche diverse su un unico branch. Se è necessario creare un branch di rilascio, crealo il più vicino possibile al rilascio effettivo.
ATTENZIONE:
La creazione di branch di rilascio è un aspetto importante del supporto delle varie versioni software disponibili sul mercato. Un singolo prodotto può avere diversi branch di rilascio (ad esempio, 1.1, 1.2, 2.0) per supportare lo sviluppo. Tieni presente che le modifiche alle versioni precedenti (ad esempio 1.1) potrebbero dover essere unite ai branch di rilascio successivi (ad esempio 1.2, 2.0). Dai un'occhiata al nostro webinar qui sotto per maggiori informazioni sulla gestione dei branch di rilascio con Git.
Creazione di branch di funzioni
I branch di funzione sono spesso associati ai flag delle funzioni, ovvero "interruttori" che abilitano o disabilitano una funzione all'interno del prodotto. Questo semplifica la distribuzione del codice nel branch principale e controllano lo stato di attivazione della funzione, facilitando la distribuzione iniziale del codice molto prima che la funzione sia visibile agli utenti finali.
Suggerimento
Creazione di branch di task
In Atlassian utilizziamo un flusso di lavoro di branch per task. Ogni organizzazione ha un modo naturale di suddividere il lavoro in singoli task all'interno di uno strumento di monitoraggio dei ticket, come Jira. I ticket diventano, quindi, il punto di contatto centrale del team per quel lavoro. La creazione di branch dei task, nota anche come creazione di branch dei ticket, collega direttamente tali ticket con il codice sorgente. Ogni ticket viene implementato sul suo branch con l'identificatore ticket incluso nel nome del branch. Capire quale codice implementa i singoli ticket è semplice: basta cercare l'identificatore ticket nel nome del branch. Con questo livello di trasparenza, puoi applicare facilmente modifiche specifiche al branch principale o a qualsiasi branch di rilascio legacy a esecuzione prolungata.
Poiché l'approccio Agile è incentrato sulle user story, i branch dei task si abbinano bene allo sviluppo Agile. Ogni user story (o correzione di bug) risiede all'interno del relativo branch; in questo modo, è facile vedere quali ticket sono in corso e quali sono pronti per il rilascio.
Sfide legate alla creazione di branch
Tutti conosciamo il dolore di avere cercato di integrare più branch in un'unica soluzione ragionevole. In passato, il merge era un'operazione molto complessa a causa dei sistemi centralizzati di controllo delle versioni, come Subversion. I sistemi di controllo delle versioni più recenti, invece, come Git e Mercurial adottano un approccio diverso per tenere traccia delle versioni dei file che risiedono su branch diversi.
I branch sono in genere di breve durata, pertanto sono più facili da sottoporre a merge e più flessibili in tutta la base di codice. Tra la capacità di eseguire frequentemente e automaticamente il merge di branch come parte della continuous integration e il fatto che i branch di breve durata contengono semplicemente una minore quantità di modifiche, i "merge infernali" diventano un ricordo del passato per i team che utilizzano Git e Mercurial.
È questo che rende così fantastica la creazione di branch dei task!
In conclusione...
Un sistema di controllo delle versioni può influire limitatamente sul risultato di un merge. Anche i test automatizzati e la continuous integration sono fondamentali. La maggior parte dei server di continuous integration può eseguire automaticamente test sui nuovi branch, riducendo notevolmente il numero di "sorprese" dell'upstream del merge finale e contribuendo a mantenere la stabilità della riga di codice principale.
Recommended for you
Modelli
Modelli Jira già pronti
Sfoglia la nostra raccolta di modelli Jira personalizzati per vari team, reparti e flussi di lavoro.
Guida al prodotto
Un'introduzione completa a Jira
Usa questa guida dettagliata per scoprire le funzionalità essenziali e le best practice che ti aiutano a massimizzare la produttività.
Guida di Git
Comprendere le nozioni di base di Git
Questa guida relativa a Git può essere utilizzata da tutti, dai principianti agli utenti più esperti, per imparare le basi attraverso utili tutorial e suggerimenti.