Per me è abbastanza vero. C'è una quantità di tempo richiesta da un'attività prima della sua chiamata completa. Se si spendeva meno del tempo assegnato, allora tende ad essere troppo poco ingegnerizzato, se si spendeva di più sarebbe stato sovradimensionato. È una matematica molto complicata trovare la soglia esatta. Quindi un manager in realtà non può quasi mai sapere se era sovradimensionato o meno.
Riguardo all'ingegneria, credo che un manager possa dare l'aspettativa su cosa si può fare su un tecnico. Assegnerei priorità molto alta a coprire quasi ogni singola riga di codice con i casi di test. Ciò significa che per ogni riga di codice scritta lo sviluppatore deve dedicare 4-10 volte tanto tempo a scrivere solo casi di test. Questo alla fine aumenterà la qualità del prodotto. Se hai degli sviluppatori davvero bravi, supereranno l'ingegnere nonostante questo.
Inoltre, non considero che un po 'di ingegneria è una perdita di tempo
- Uno sviluppatore che sovra ingegneri svolge spesso il compito con molto interesse.
- Dà un po 'di soddisfazione allo sviluppatore, quindi è probabile che rimanga più a lungo con la società
- Uno sviluppatore a lungo termine deve imparare ad allineare la sua ingegneria eccessiva con quella del business (poiché a nessuno piace scrivere un codice che nessuno vuole usare).
- Il codice più elaborato rispetto a un codice ingegnerizzato è migliore di un codice settimanale che richiede una visita al dipartimento bug fix ogni settimana.
- L'ingegnerizzazione sovente consente spesso agli sviluppatori di esprimere i loro concetti appena appresi, quindi fondamentalmente insegnerà all'intero team ciò che ha appreso attraverso il codice.
- Consentire agli sviluppatori di sovrastare gli ingegneri ti dà il vero potere di chiedere loro di sviluppare rapidamente alcune cose. Considereranno questa una richiesta seria.
Alla fine si riduce a ciò che sta facendo la tua azienda. Se un'azienda utilizza il proprio codice, non è un problema di questo tipo, ma se si tratta di un'azienda che sta sviluppando per conto di altri a $ / ora, allora si potrebbe voler impostare le proprie priorità con la società pagatrice.
Modifica: La mia idea di sovra-ingegneria sembra essere che lo sviluppatore impieghi più tempo con il codice di quanto effettivamente necessario dopo averlo completato nel modo più semplice possibile che crede possa essere fatto.