Great Code and Average Programmers

time to read 3 min | 480 words

In the comments to this post, Hildo had this to say:

The problem with this is that the code written by excellent programmers like Eric will not always be understandable by coders in the lowr 50% of the bell curve. The code will be concise and well-designed, but as a result not like like the typical “write it all out” code that typical programmers churn out.

This matters because the code will have to maintained and enhanced by such programmers for the remainder of its life, which is likely to be far longer and far more costly than the development time.

I see this all the time at work ($VERYBIGCOMPANY). Programs that need to survive for a long time (5-10 years) are on purpose given to large groups of mediocre programmers, so the code will be at their level and can be maintained by them. Short-term high-priority projects are given to really great programmers, but if theu survive longer than expected, they often have to be rewritten from scratch 2-3 years down the road when requirements have changed fundamentally and the original developer is working on another important project.

This approach sucks. I do not doubt that it happens, but it has happened from the wrong reason. It sounds like the "really great programmers" are hackers, in the deregatory sense of the word. There is no way a good project would be replace in a 2-3 years just to get it to a more maintainable level for medicore programmers. By definition, this is not a good project.

I talked with a company that rejected just about everything I had to offer. The reasoning was that what we offered wasn't something that the average (or slightly less than that) programmer would know, and they were afraid of their stuff would not be able to maintain that. In the end, it got to the point where we did the math. Using smarter tools and working with higher level of abstraction would allow to deliver a higher quality system within a shorter period of time. Considerring that they were bringing new programmers to the company every couple of months at most, the cost of training would be negligible.

I could make them see the numbers, I couldn't get it through. "It is not the way we work".

Well, you work stupid.