Naprawdę nie zamierzam atakować innych odpowiedzi, ale czy nikt inny nie pisze tutaj automatycznych testów?
Oto fajna lektura Martina Fowlera dla każdego, kto robi Scrum bez odpowiednich praktyk inżynierii oprogramowania. Robert C. Martin również dużo tu o tym mówi .
Tak więc, na moją odpowiedź ... Krótko mówiąc, wygląda to tak:
Tak, „losowy” kod refaktoryzacji jest dozwolony w Scrumie , o ile zespół zdecyduje, że należy to zrobić. (W końcu jest samoorganizujący się)
A teraz długa odpowiedź:
Oczywiste jest, że pozostawianie coraz większego technicznego długu po każdym sprincie jest receptą na katastrofę. Wkrótce wszyscy zwolnią, gdy kod będzie bałaganem; każda zmiana będzie trudniejsza do wprowadzenia, ponieważ kod jest tak splątany i nieuporządkowany, że znalezienie miejsc do zmiany zajmuje więcej czasu niż faktyczna zmiana. Jest jeszcze gorzej, jeśli musisz dokonać zmiany w dużym i nieporządnym module, o którym nic nie wiesz, niemożliwym jest uzyskanie / utrzymanie wydajności podczas dodawania / przełączania ludzi w projekcie i tak dalej.
Jeśli zespół chce utrzymać stałą prędkość, musi być w stanie utrzymać czystą bazę kodu, aby stale zwiększać oprogramowanie. Refaktoryzacja jest obowiązkową praktyką, jeśli chcesz zachować szybkość przez cały cykl życia projektu, a jeśli chcesz zmniejszyć ryzyko dodania / zmiany osób w projekcie, a jeśli chcesz mieć możliwość wprowadzania zmian w modułach, nic nie wiesz o, i tak dalej.
Jednak refaktoryzacja jest bardzo niebezpieczną czynnością. Powtarzam - to bardzo niebezpieczne działanie. To znaczy, chyba że masz wystarczającą liczbę testów, aby móc bezpiecznie i swobodnie zmieniać bazę kodu. Jeśli możesz po prostu nacisnąć przycisk, aby sprawdzić, czy nic się nie zepsuło, refaktoryzacja staje się bardzo bezpieczną czynnością; tak bezpieczne, że jest to część cyklu TDD , czyli praktyki, która pozwala przede wszystkim na stworzenie takiego zestawu testów.
Ponieważ jednak zespoły w Scrumie organizują się samoczynnie, ostatecznie zespół musi zdecydować, co należy zrobić. Mam nadzieję, że przedstawiłem ci argumenty na wypadek, gdybyś musiał kogoś przekonać. (Zwróć szczególną uwagę na linki w pierwszym akapicie i każdy inny artykuł, na który wskazują)