In the end all of their impressive designs are doing nothing but making more work for themselves and everyone around them. It’s as if their work is only designed for getting them their next job, rather than keeping them in their current one.

Given a particular frame of mind, though, this is perfect.

These complicated designs are about keeping their current jobs. They are making more work for themselves and those around them, and that is entirely the point. They aren't looking to their next job, they are looking to assure there will always be a next task. If they didn't create complexity that need to be constantly coralled, they might run the risk of the project being declared complete; yes, a risk.

The problem is their frame of mind about their professon. If the project is completed, one of two things will come true:

1. They will be moved to a new project.

2. They will be dismissed from the company, and have to find a new company and a new project to join.

So the second is really just a degenerate case of the first. They will be on a new project. There are a few reasons people would honestly be scared of this.

They might assume that there is a small number of projects left, and they are all near-fully staffed. If they lose this current project, it may be the last project they ever find themselves on, because no one needs anything built anymore.

If they find a project, they can't coast. With their current project, they are applying design and refactoring patterns they already learned to a system they already understand. A new project means they'll be faced with an unfamiliar architecture and code, and their usual ways of looking busy aren't going to work until they learn the new system well enough. It means they have to start thinking about what they are doing and start working hard again, and there are a lot of programmers -- and people in general -- who are really averse to being forced out of a routine process they can perform without thinking.

A new project also means they might end up under competent leadership, who can tell when they are coasting, and will call them on it. This means, even if they learned the system well enough to know where to start blindly refactoring to patterns, they wouldn't get away with it, because the people supervising them would know they are just wasting time. Again, a lot of people won't like this.

Finally, a new project means someone might expose themselves as completely incompetent and faking it well the whole time. They picked up enough bits and pieces to sound intelligent to those who don't know how or what to judge, but just for the project they were on. The specialized jargon is now irrelevant, and the general understanding of concepts isn't there.

Even in my short journey so far as a developer, I have run into multiple examples of each of these, and they annoy me to no end. The ivory tower systems Zed is railing on about are just a symptom. The cause is people terrified of being forced into unfamiliar territory, and the risks involved.

The other part of the problem is that the people who judge the programmers are not listening to the masters -- as much as we have masters-- even when the masters kick the experts' ass. Perhaps this is part of our profession needing to grow up, but right now programmers are judged in most places by people who would be audience members at a martial arts tournament. They have no idea about the technical skill of what they are seeing, and so they can only judge things on aesthetics. To them, the experts look talented, because they are doing a tremendous amount of moving around, acting threatening, and expending energy; the masters look lazy and unskilled by comparison. It almost looks like the master has to be cheating when the expert gets slammed to the mat. I wonder if the audience to a master programmer might perceive the same thing.

A question which I am still uncertain of: is this reliance primarily on the aesthetic instinctual, or is it learned behavior? It seems to be responsible for a number of extremely poor judgments made, even in very recent history, and I think it is worth asking if such a reliance is inevitable. I'm not dismissing aesthetics entirely, just wondering why we seem to have it weighted wrong.