Sunday, August 06, 2006

The complexity cult in "software engineering"

I've written before about the affliction of some programming "gurus" that leads them to believe that design complexity is a sign of "cleverness", when, in reality, it leads to maintainability problems.

There are certainly programmers 1 who develop brilliant frameworks that seriously reduce the burdens of application developers. But I get the feeling that they are far rarer than the wannabes who create complexity because it's part of their job descriptions, at the behest of clueless cargo-cultist buzzword-oriented managers, or because their inflated egos deny them the ability to realise their own limitations. A few years of experience and knowing some design patterns does not a "software architect" make.

Most developers that produce business systems would probably do better if they came to terms with their mediocrity, and focused all their efforts on adding value to their customers using ready-made tools and frameworks produced by others wherever possible 2.

Footnotes

1. You could call them "software architects", if you like pretentious and fairly inaccurate metaphorical titles
2. ie almost all of the time. This doesn't mean that design should be thrown out, merely that re-inventing the wheel for the sake of intellectual masturbation should be shunned.