Ho familiarità con il concetto di debito tecnico come il costo dello sforzo (attraverso la manutenzione, il supporto, la rielaborazione, ecc.) durante la scelta di una soluzione vantaggiosa su una soluzione completa.
Ciò di cui mi sto chiedendo è che il debito tecnico è dovuto a qualsiasi scelta effettuata?
Prendi ad esempio la sicurezza di un'applicazione esistente che non ha mai avuto alcuna sicurezza in precedenza. Immagina che inizialmente il requisito sia abbastanza semplice - ci sono amministratori e non amministratori. Gli amministratori possono accedere all'area di amministrazione e i non amministratori non possono. A questo punto la squadra ha una scelta,
- implementa un semplice modello di sicurezza, ad es. un campo che indica se un utente è un amministratore o meno e limita l'accesso all'applicazione in questo campo o
- implementare un modello di sicurezza completo, ad es. ruoli, permessi e gruppi e ganci dell'applicazione associati.
I costi associati alle implementazioni sono:
- il modello semplice. veloce da implementare (5d), ma il costo dell'aggiunta e gestione di ruoli aggiuntivi, ad es. supervisore, manager ecc applicarli in tutta l'applicazione è costoso (5 giorni per ruolo)
- il modello completo. più lungo da implementare (20d), ma il costo di l'aggiunta di ruoli aggiuntivi dovrebbe essere minima e il costo dell'applicazione in tutta l'applicazione è inferiore all'opzione semplice (1d per ruolo)
Ho capito che, scegliendo il modello semplice, sto risparmiando 15d sul tempo di implementazione, ma incorro in un debito tecnico di 4d per ogni ruolo aggiuntivo.
Se avessi scelto il modello completo, avrei incorrere in ulteriori 15d di costi di implementazione, ma sto incorre in un debito tecnico?