Creo que probablemente sea diseño, es decir, el enfoque de pensar en lo que vas a hacer antes de hacerlo.
A demasiados codificadores inexpertos (recuerden cuando comenzaron) les gusta saltar y poner algo en marcha, luego agregue un poco más y anuncie un poco más y agregue un poco más. Este enfoque puede funcionar si ha planeado hacerlo de esa manera (después de todo, cada bit se puede probar a medida que avanza), pero la mayoría de los codificadores inexpertos solo se centran en la parte que están escribiendo ... por lo que todas las adiciones tienden a ser pirateadas en la parte superior. ¡Y todos hemos visto código que ha evolucionado así!
La organización es lo siguiente, a menudo están demasiado centrados en el código que han escrito para recordar cómo lo hicieron y lo que se requería. Entonces se olvidan de agrupar o documentar una dependencia que se requiere. También tienden a poner las cosas donde caen, tuve que criticar a un junior la semana pasada que revisó su código en el directorio raíz, incluidos 3 wsdls, 2 de los cuales eran el mismo archivo y un conjunto de archivos de terceros que cometió en un subdirectorio y el directorio raíz. El código no estaba formateado para ningún estándar que se pudiera imaginar, y había varias funciones que estaban presentes pero que nunca se llamaron.
Obviamente lo hizo funcionar, pero no estaba ordenado, y eso significaba que la instalación y el mantenimiento habrían sido problemáticos.