Thursday, 20 January 2011

Cargo Cult Complexity -> Magical Framework Madness

An observation I have made from my long and ultimately successful journey through the development industry is that very few people make quality software. In fact hardly anyone does.

The main reason is the Complexity of the task at hand. Complexity is the double edged sword that makes the development industry what it is, and if you can tame this wild beast great rewards may come your way. If a developer can reorder seemingly infinite chaos into straight forward patterns you can reach the upper echelons of this mystical and misunderstood art. However if you are not a master of this art then it seems you must scour google to find a high preist who has created a miracle framework to solve your problems before all hope is lost.

Unfortunately even if a developers pattern matching skills are high there is no guarantee that these skills will translate into business value. Many developers just look for a magical pattern they have read about, add a couple frameworks and a tool or two from 'Top of the pops' and start churning code, the actual requirements are secondary.

This is not to say the majority of developers are not clever well educated people, in fact most of them are.
The problem is many of these same developers live in a parallel world of frameworks, acronyms and methodologies. They have lost touch of the real requirements of business and spend most of their time trying to shoehorn fancy generic frameworks, tools and methodologies into their ideal solution. They care little for what is really needed, instead they concentrate on building something that will allow them to stand up amongst their peers and say we used X,Y, and Z. Aren't we clever.

This is cargo cult software development in full flight.

The amount of applications that are simply not fit for purpose because  "God has deemed we must use this  framework otherwise we will be shunned from society" is astounding. Developers naively believe the framework will solve any issue no matter how complex or bizarre. They also cast non believers into the cold, labelling them as 'out of touch' thus banishing them from all discussions.

When the juggernaut of "Slow performance and high resource use" arrives the stunned masses once again search the framework tomes to find hidden answers. They must not think for themselves; the framework knows all.

As you read these words, you are probably thinking to yourself:

"I know what he's talking about ... but I'm not one of these developers".

Its interesting how developers never think that they themselves are the culprits. I put it to you reader that you are guilty as charged.

However this is your chance to break away from the crowd and think for yourself.
A real opportunity to overcome the flawed belief that the framework somehow has a magical unlimited power. Freedom is at hand, a new horizon awaits.

You don't need to jump straight into a crazy 'not invented here' policy, but you need to know why you are actually using a particular tool or framework. Is it to help you succeed? Or is it simply because you are a card carrying member of the "cargo cult that is software development".

Think about it...