2 ms·
I have over 20 years web dev under my belt and I have the same experience: apparently over-complicated code, build/CI processes, deployment processes. Inscrutab
by gregjor 4y ago
I have over 20 years web dev under my belt and I have the same experience: apparently over-complicated code, build/CI processes, deployment processes. Inscrutable tests that take a long time to run, layers of abstraction that seem hard to justify.
Every once in a while I conclude that the code or infrastructure defies my abilities to understand it. But most of the time I conclude the developers just made it all too complex. That can happen because complexity got equated to skill or prowess, or it can happen organically over time. A lot of the time new people come into the team, and rather than take the time to understand what works and adapt to it they declare it "unmaintainable" or "shit" or "not modern best practice" and write a parallel system to their liking, or add layers to hide the parts they don't like, turning a small mess into a bigger mess.
Programmers tend to learn a few languages and tools and stick with those, even when their tools start to impose limitations or add more complexity than necessary.
Brian Kernighan said "Controlling complexity is the essence of computer programming." The best way to control complexity is not to introduce it in the first place, and to eliminate it when you run into it.