Penso che probabilmente sia il design, ovvero l'approccio di pensare a cosa farai prima di farlo.
Troppi programmatori inesperti (ricorda quando hai iniziato per la prima volta) amano saltare e ottenere qualcosa, quindi aggiungere un po 'di più e aggiungere un po' di più e aggiungere un po 'di più. Questo approccio può funzionare se hai pianificato di farlo in quel modo (ogni bit può essere testato come fai tu dopo tutto), ma molti coder inesperti si concentrano solo sulla parte che stanno scrivendo .. quindi tutte le aggiunte tendono ad essere violate in cima. E abbiamo visto tutti codice che si è evoluto in questo modo!
L'organizzazione è la prossima cosa, spesso sono troppo concentrati sul codice che hanno scritto per ricordare come l'hanno fatto e cosa è stato richiesto. Quindi dimenticano di raggruppare o documentare una dipendenza richiesta. Tendono anche a mettere le cose dove cadono, ho dovuto criticare un giovane la scorsa settimana che ha controllato il suo codice nella directory radice includendo 3 wsdls, 2 dei quali erano lo stesso file, e un set di dll di terze parti che ha commesso in una sottodirectory e la directory root. Il codice non è stato formattato in base a nessuno degli standard che potevi immaginare, e c'erano diverse funzioni presenti ma mai chiamate.
Ovviamente l'ha fatto funzionare ma non era ordinato, e questo significava che l'installazione e la manutenzione sarebbero state problematiche.