Thursday, March 15, 2007

Why development still takes as long as ever

Have you ever wondered why despite the amazing advances in programming languages and tools that it still takes as much effort to maintain code as it did 10 years ago. I'm thinking specifically of Java here but I'm sure it applies to other languages too. There are a few reasons for this but these are my favourites.

Firstly programmers always seem to want to use the latest frameworks that come up. I guess it is because we get bored and we'd like to try something new. Therefore we are forever trying to use new frameworks. These have a learning curve so the initial development is always slow. It feels like we never master anything before moving onto the next thing.

Secondly there is so much overuse of design patterns and over engineering. Here is where agile techniques have a lot of value. They encourage the use the simplist design to achieve what you need to do.

Lastly there are the tools. I guess IDE developers have to stay in business by offering more and more features. However once you get to the 3rd version of a product, unless you are a genius or it is a very well design product it tends to get so complicated it takes an eternity to master. That is unless you have used the product since it first came out. Just take something like photoshop for example: there are a lot of features but I can't figure out how to do even the basic stuff. Once a product has got a "wizard" you know it is lost cause...

Suffering from writer's block

I thought I had more frustrations but now that I've started writing them down I realise I have already captured the main ones.