Non intendo davvero attaccare altre risposte, ma nessun altro sta scrivendo test automatici qui?
Qui è una lettura divertente di Martin Fowler per chiunque stia facendo Scrum senza le corrette pratiche di ingegneria del software. Robert C. Martin dice anche molto su questo qui .
Quindi, alla mia risposta ... In breve, va così:
Sì, il codice di refactoring "randomly" è consentito in Scrum , a condizione che il team decida che è necessario farlo. (Dopotutto, è auto-organizzante)
E ora per la risposta lunga:
È evidente che lasciare sempre più debito tecnico dopo ogni Sprint è una ricetta per il disastro. Presto, tutti rallenteranno mentre il codice diventa più disordinato; ogni cambiamento sarà più difficile da realizzare perché il codice è così aggrovigliato e disordinato da richiedere più tempo per trovare i punti da cambiare piuttosto che per apportare il cambiamento effettivo. Diventa ancora peggio se devi apportare un cambiamento in un modulo grande e disordinato di cui non sai nulla, diventa impossibile guadagnare / mantenere la produttività quando aggiungi / cambia le persone nel progetto, e così via.
Se una squadra vuole mantenere la sua velocità costante, deve essere in grado di mantenere pulito il codice base al fine di incrementare continuamente il software. Il refactoring è una pratica obbligatoria se vuoi mantenere la tua velocità durante tutto il ciclo di vita del progetto e se vuoi ridurre il rischio di aggiungere / cambiare le persone nel progetto e se vuoi essere in grado di apportare modifiche nei moduli di cui non si sa nulla 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 sufficiente per poter modificare in modo sicuro e sicuro il codice base. Se riesci a premere un pulsante per controllare 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 permette di creare una tale suite di test in primo luogo.
Tuttavia, poiché i team di Scrum si stanno auto-organizzando, alla fine la tua squadra deve decidere qual è la cosa giusta da fare. Spero di avervi dato degli argomenti nel caso in cui dovete convincere qualcuno. (Prestare particolare attenzione ai collegamenti nel primo paragrafo e ogni altro articolo a cui si riferiscono)