Davvero non intendo attaccare altre risposte, ma nessun altro sta scrivendo test automatici qui?
Ecco una lettura divertente di Martin Fowler per chiunque stia facendo Scrum senza adeguate pratiche di ingegneria del software. Anche Robert C. Martin dice molto su questo qui .
Quindi, alla mia risposta ... In breve, va così:
Sì, il codice di refactoring "a caso" è consentito in Scrum , a condizione che il team decida che dovrebbe essere fatto. (Dopotutto, si auto-organizza)
E ora per la lunga risposta:
È evidente che lasciare un debito sempre più tecnico dopo ogni Sprint è una ricetta per il disastro. Presto tutti rallenteranno man mano che il codice diventa più disordinato; ogni modifica sarà più difficile da apportare perché il codice è così complicato e disordinato che ci vuole più tempo per trovare i punti da cambiare che per apportare la modifica effettiva. È ancora peggio se si deve apportare una modifica in un modulo grande e disordinato di cui non si sa nulla, diventa impossibile ottenere / mantenere la produttività quando si aggiungono / cambiano persone nel progetto e così via.
Se una squadra vuole mantenere costante la sua velocità, deve essere in grado di mantenere pulita la base di codice per incrementare continuamente il software. Il refactoring è una pratica obbligatoria se si desidera mantenere la velocità per tutto il ciclo di vita del progetto e se si desidera mitigare il rischio di aggiungere / cambiare persone nel progetto e se si desidera essere in grado di apportare modifiche ai moduli, non si sa nulla circa e così via.
Tuttavia, il refactoring è un'attività molto pericolosa. Ripeto: è un'attività molto pericolosa . Cioè, a meno che non si disponga di una copertura di prova sufficiente per poter cambiare in modo sicuro e libero la base di codice. Se puoi semplicemente premere un pulsante per verificare se non si è rotto nulla, il refactoring diventa un'attività molto sicura; così sicuro, infatti, che fa parte del ciclo di TDD , che è la pratica che ti consente di creare una tale suite di test in primo luogo.
Ma, poiché i team di Scrum si autoorganizzano, alla fine il tuo team deve decidere qual è la cosa giusta da fare. Spero di averti dato alcuni argomenti nel caso tu debba convincere qualcuno. (Prestare particolare attenzione ai collegamenti nel primo paragrafo e ogni altro articolo a cui fanno riferimento)