Mentre conosco un mondo perfetto in cui una domanda greenfield è stata esaminata fin dal primo giorno con i migliori BRD e uno sviluppo competente conducono costantemente un codice revisionato dai loro sottoposti per evitarlo, ho intenzione di chiedere perché tutti sappiamo e abbiamo sono stati tutti parte di molti scenari in cui questo non è il caso ... e questo succede ...
Il problema che mi imbatto in sempre con i concerti di consulenza è che troverai dieci metodi praticamente tutti che fanno la stessa cosa, e con alcuni refactoring, potrebbe essere molto più efficiente. Tuttavia, non sembra impedire agli sviluppatori di creare nuovi metodi quando ce n'è uno già scritto, o per lo più scritto da usare.
Il problema non riguarda sempre lo / gli sviluppatore / i. Se si tratta di un'applicazione di grandi dimensioni, e anche in uno scenario di architettura orientata ai servizi, potresti avere centinaia di servizi e devi duplicare lì perché l'altro sviluppatore doveva realizzare qualcosa, era un buon programmatore nel creare una classe riutilizzabile / metodo, ma non sapevo che un altro buon piccolo sviluppatore ha già creato quel metodo.
Quindi la mia domanda a voi tutti è, che cosa avete trovato per essere il modo migliore per evitare i metodi duplicati? Documentazione, comunicazione, refactoring automatizzato? Ma ancora più importante, come indurre altri sviluppatori a entrare in un progetto di applicazione esistente con tutti i metodi e i servizi disponibili?