3 ms·
I think a related, contributing problem is an inability to create and describe abstractions. Time and again, I see projects where the developer(s) is/are unabl
by Roboprog 10y ago
I think a related, contributing problem is an inability to create and describe abstractions.
Time and again, I see projects where the developer(s) is/are unable to do anything beyond one line after another of calls into low level library primitives, or maybe filling up a bunch of directories named after design patterns which plug into a framework.
Beyond that, though, and there seems to be a widespread inability to recognize repetition and then refactor it out, or to make layers to separate domain/business logic from low level details.
Also, the fairy tale of "self documenting code" is widespread, vs say "literate programming", and even if many of your in-house staff made their own libraries, the interfaces would be hard to understand. It's amazing how the act of trying to document an interface forces you to keep it clean and orthogonal.
Mixing developers with different "styles" (inline vs abstraction) is going to be frustrating for both extremes.
I tend to agree with the author in his opinion, but much like "The Big Ball of Mud", you need to understand the forces that cause these patterns to emerge.