Usi questo o un flusso di lavoro di ramificazione git simile?
Usiamo un flusso di lavoro simile sul lavoro, ma un po 'meno complicato. È tuttavia fortemente ispirato da questo flusso di lavoro, poiché ho letto questo articolo molte volte. Ho anche il pdf del modello di ramificazione stampato a colori accanto alla mia scrivania :)
Consideri questo un approccio produttivo?
Produttivo. Come si definisce la produttività? Bene, nella mia mente è molto importante avere un'alta qualità, almeno per cercare di ottenere sempre una migliore qualità. Migliorare costantemente il processo, ecc. Se è possibile produrre un codice di qualità, la produttività ne trarrà beneficio. Quindi la domanda è davvero: questo migliora la qualità del software? E la mia risposta è sicuramente sì.
Ciò che amo di più con questo tipo di modello di ramificazione è che introduce i rami in diversi livelli di qualità. Più a destra nella foto, maggiore stabilità e maggiore qualità. Il ramo principale è santo e tutti i suoi impegni dovrebbero essere considerati versioni stabili del software. Più a sinistra vai, più sperimentale e minore è la stabilità che ottieni.
Non appena si verificano nuove funzionalità e correzioni di bug, è possibile trasferirle gradualmente da sinistra a destra e quindi spostarsi nel codice con alta qualità esattamente quando si sa che il codice soddisfa i requisiti di qualità richiesti dal codice. Beh, almeno in teoria, dal momento che non puoi testare tutto al 100% e sapere con certezza che il codice non contiene alcun bug, perché avrà sempre bug. Ma ti consente di mantenere un'alta fiducia.
Niente fa più schifo come programmatore, che lavorare in un sistema in cui nessuno ha fiducia nel codice, perché sanno che fa schifo e che contiene un sacco di bug.
Vedi qualche difetto con questo approccio? Qualche potenziale svantaggio?
È importante riflettere sul proprio modello di diramazione in modo che si adatti bene alle esigenze della propria organizzazione. Solo perché questo modello funziona bene per alcune persone, non significa necessariamente che sia ottimale o desiderabile per un altro.
Ci sono sempre compromessi e anche in questo caso. Un compromesso è il numero di filiali rispetto alla complessità. Introducendo molti tipi diversi di rami, si aumenta la complessità del flusso di lavoro. Ad esempio, potrebbe essere semplicemente sbagliato forzare sempre le persone a creare un nuovo ramo di funzionalità, quando stanno cercando di correggere un semplice bug modificando un paio di righe di codice.
Sappiamo tutti che i bug sono più o meno complicati da risolvere. Quindi, quando viene scoperto un bug insignificante, potresti voler ridurre la complessità e l'amministrazione per sbarazzarti del sovraccarico extra e lasciare che le persone si impegnino direttamente ad esempio nel master o nello sviluppo del ramo. Ma poiché la natura delle tue correzioni diventa più complicata, vale la pena quel sovraccarico in più per creare nuovi rami per loro. Soprattutto se non si è sicuri delle dimensioni e della lunghezza o se si desidera migliorare la collaborazione tra l'utente e gli altri sviluppatori.
Se hai un approccio migliore, ti dispiacerebbe condividere o fornire un collegamento a un articolo o una discussione al riguardo?
Questo è senza dubbio un buon approccio e potrebbe adattarsi alla maggior parte dei casi poiché la maggior parte di noi ha processi di sviluppo simili, ma potrebbe non essere adatta a tutti. Vi esorto caldamente a riflettere su come gestire il codice in questo momento e provare a creare un modello di diramazione che si adatti a quello che già avete.
Il punto più importante è iniziare con git e il resto seguirà naturalmente. Inizia in modo semplice e migliora gradualmente! Essere creativo!
Saluti