Da quando sono diventato uno sviluppatore migliore, trovo che gran parte delle mie capacità progettuali derivano più dall'intuizione che dall'analisi meccanica. È grandioso Mi permette di leggere il codice e avere un'idea per esso più veloce. Mi consente di tradurre i disegni tra lingue e astrazioni molto più facilmente. E mi permette di fare le cose più velocemente.
Il rovescio della medaglia è che trovo più difficile spiegare ai compagni di squadra (e, peggio, al management) perché un particolare progetto è vantaggioso; in particolare i compagni di squadra che sono in ritardo rispetto alle migliori pratiche. "Questo design è più testabile!" oppure "Dovresti favorire la composizione sull'eredità". andare dritto sopra le loro teste, e portare nella mia tana del coniglio cercando di indovinare tutti nell'ultimo decennio di progressi nell'ingegneria del software.
Ci riuscirò meglio con la pratica, ovviamente, ma nel frattempo richiede molto tempo sprecato e / o cattiva progettazione (che porterà a perdere tempo a risolverlo in seguito). Come posso spiegare meglio perché un determinato design è superiore, quando i benefici non sono del tutto ovvi per il pubblico?