Imaginary Problems Are the Root of Bad Software

Imaginary problems are often more fun to solve than real ones. Extremely intelligent people play competitive games, construct and solve math problems, and write books that aim to answer abstract questions about the human condition, all of them for free. A mediocre programmer, however, will probably charge you a fair amount to build a simple Android app. That’s not because mediocre programmers are harder to find than geniuses, but because the former activities are all fun, while the latter can be quite boring.

Most programmers want to get paid and have fun at the same time. Of course, the definition of “fun” is different for everyone, but for many engineers, it boils down to tackling interesting and challenging problems that are within the realm of solvability.

Give a somewhat intelligent person too many boring tasks that are impossible to automate and you will eventually drive him mad. The human brain however, after billions of years of evolution, is quite talented at keeping its sanity. Much like victims of childhood hardship or abuse can find escape in fantasy books, victims of enterprise programming or freelance web development can find their escape in solving imaginary problems.

The amount of imaginary problems a software engineer can create for themselves is a function of their imagination and of the difficulty of the real problems they’re supposed to solve.

It should be noted that this issue isn’t unique to developers. Management, sales, HR, support, legal, and even accounting departments have their own unique ways of creating imaginary problems. They try to involve themselves too much in a decision, when their presence at a meeting is just a formality or wasn’t requested at all. They overemphasize a minute problem that is related to their role, or hire teams much larger than necessary to illustrate their importance.

When problems are dumb, intelligent individuals will find a way of coping.

This post is slsuperb.