Secondo lo sviluppo canonico di , qual è la quantità appropriata di apprendimento che un ingegnere dovrebbe impegnarsi prima di implementare una soluzione a un problema?
Se un ingegnere sa di essere troppo ignorante di un determinato argomento (ad esempio, compressione) per iniziare a implementare, va e apprende ciò che ritiene ha bisogno di sapere e quindi implementa una soluzione.
Chiaramente una comprensione più profonda di tale argomento potrebbe portare a un'implementazione migliore, ma a costo di agilità. Il rovescio della medaglia se un ingegnere impara troppo poco su un argomento, c'è il pericolo che realizzerà un'implementazione significativamente insufficiente / rotta che influisce negativamente sui clienti nell'immediato o nel prossimo futuro. In alcuni casi, non è richiesta molta ricerca, e in alcuni casi gli sviluppatori si trovano di fronte a un argomento, anche se lo sviluppatore senior non conosce quasi nulla, quindi la risposta a questa domanda include un elemento di scalabilità per soddisfare entrambe le situazioni.
Verso quale fine di questa scala, se esiste, i principi guida dell'agile conducono un ingegnere? Oppure agile lasciare questo come una scala mobile, in cui la risposta potrebbe essere diversa in ogni situazione?
In altre parole, sto cercando di capire non quando / come avviene la ricerca di sviluppo agile, ma inoltre come stimare una "buona" quantità di tempo da dedicare all'apprendimento di un argomento nella ricerca fase prima di passare alla realizzazione di una soluzione.