Faccio parte di un gruppo di sviluppo con 5 team, per un totale di circa 40 sviluppatori. Stiamo seguendo la metodologia Scrum, con sprint di 3 settimane. Abbiamo una configurazione di integrazione continua (Jenkins), con una pipeline di costruzione che richiede diverse ore (a causa di numerosi test automatizzati). Fondamentalmente, il processo di sviluppo funziona bene.
Tuttavia, osserviamo che dopo alcuni giorni in un nuovo sprint, la nostra build diventa spesso instabile e rimane traballante finché la fine dello "sprint" non finisce. L'effetto negativo di questo è che i passi di costruzione in fondo alla pipeline, in particolare UI / Webtest, sono non eseguiti per diversi giorni (perché attivati solo su una build "verde"). Di conseguenza, i bug introdotti di recente vengono rilevati solo molto tardi nello sprint.
- Ogni commit viene verificato rispetto a un set di test di base. Una volta verificato, il cambiamento viene inviato al master dopo una revisione del codice (Gerrit)
- Test di unità di base eseguiti ogni 30 minuti, durata inferiore a 10 minuti
- Test di integrazione eseguiti ogni 2 ore, durata 1 ora
- UI- / Webtest vengono eseguiti su test di integrazione riusciti, durata diverse ore
A seconda di chi è responsabile della stabilità della build durante lo sprint (tale responsabilità viene passata per sprint), potrebbero esserci "fermate di commit" intermedie e ad-hoc per riportare la build stabile.
Quindi, vogliamo:
- I nostri team di sviluppo per lo sviluppo e il commit delle modifiche durante lo sprint senza impedimenti
- Il nostro processo di build da abbandonare se un passo di costruzione fallisce, poiché i risultati di costruzione successivi hanno poco significato
- Il nostro processo di compilazione per fornire agli sviluppatori feedback di qualità in modo tempestivo
Dato (2), i punti (1) e (3) sembrano contraddirsi l'un l'altro. Qualcuno ha una buona pratica come affrontare questo?
( Al momento stiamo allentando il punto (2) e stiamo consentendo la continuazione della build anche in caso di mancati passaggi di costruzione. Non ho ancora ricevuto alcun feedback su come ciò influenza la nostra qualità )
Grazie, Simon