Comme je suis devenu un meilleur développeur, je trouve qu'une grande partie de mes compétences en conception provient plus de l'intuition que de l'analyse mécanique. C'est bien. Cela me permet de lire le code et de le ressentir plus rapidement. Cela me permet de traduire des conceptions entre langues et abstractions beaucoup plus facilement. Et cela me permet de faire les choses plus rapidement.
L'inconvénient est que j'ai du mal à expliquer aux coéquipiers (et pire, à la direction) pourquoi un design particulier est avantageux; en particulier les coéquipiers qui sont en retard sur les meilleures pratiques. "Cette conception est plus testable!" ou "Vous devriez privilégier la composition plutôt que l'héritage." aller directement au-dessus de leurs têtes, et conduire dans le trou du lapin de moi en essayant d'indiquer tout le monde à la dernière décennie d'avancées en génie logiciel.
Je m'améliorerai bien sûr avec la pratique, mais en attendant, cela implique beaucoup de temps perdu et / ou une mauvaise conception (ce qui entraînera du temps perdu à le réparer plus tard). Comment puis-je mieux expliquer pourquoi un certain design est supérieur, lorsque les avantages ne sont pas complètement évidents pour le public?