Traduco volentieri una parte di questo testo che racconta il perché durante uno scrum planning la qualità sia una variabile non negoziabile.
Perché la qualità non è negoziabile
La qualità può essere scomposta in:
- Qualità Esterna - rappresenta quella parte che viene vista e percepita direttamente dagli utenti, una interfaccia lenta e non intuitiva è un cattivo esempio di qualità esterna.
- Qualità Interna - rappresenta tutto ciò invece che solitamente non è visibile dall'utente ma, che ha un pesante impatto sulla manutenibilità del sistema. La consistenza, il test coverage, la leggibilità del codice, la possibilità di effettuare refactoring ecc...
Se analizziamo un sistema con un alta qualità interna potrebbe avere una scarsa qualità esterna.
Ma un sistema con una scarsa qualità interna avrà difficilmente un'alta qualità esterna. È infatti difficile costruire qualche cosa che abbia una presentazione piacevole partendo da delle fondamenta traballanti.
La qualità esterna può essere gestita come una funzionalità che evolve durante le release e la discussione può coinvolgere il product owner. La qualità interna, tuttavia, non può essere discussa. È responsabilità del team mantenere la qualità del sistema in tutte le sue parti e questa non è semplicemente negoziabile. Mai.
In un possibile scenario il product owner dice “OK guys, io rispetta la vostra valutazione di tempo, ma sono sicuro che potete fare un quick-fix per questo e dimezzare il tempo se vi ci mettete„
Aha! Sta provando ad usare la qualità interna come variabile. Come lo so? Perché vuole ridurre la valutazione della funzionalità senza “pagare il prezzo„. La parola quick-fix dovrebbe fare scattare l'allarme nella vostra testa.
Perché non dovremmo permettere questo?
Nella mia esperienza la scelta di sacrificare la qualità interna è quasi sempre un'idea terribile. Il tempo guadagnato è superato dal costi che ne derivano a breve e a lungo termine. Una volta che su un prodotto vengono fatte determinate scelte diventa molto difficile cambiare direzione e riportare la qualità all'interno.
La discussione quindi con il product owner può essere spostata su altri aspetti come “Se vuole avere questa funzionalità in anticipo possiamo fare delle semplificazioni sulla funzionalità? Possiamo modificare le priorità di altre funzionalità per concentrarci su questa?„
Una volta che il product owner ha imparato che la qualità interna non è negoziabile è naturalmente spinto a negoziare su altre variabili che gli competono maggiormente come funzionalità e priorità.