About Me

I am a computer programmer. I do programming professionally and for a laugh.

Technical stuff on programming, java, DSLs, etc...

Monday 6 June 2011

What is your favourite programming practice

People talk about programming methodologies, processes, test driven development, extreme programming etc. Most of them quite religiously. Youth these days are born into this stuff.

But we still see very poor code. Test driven, agile developed rubbish.

Why?

A lot of people miss the essence of a good program:- a good abstraction.

At times of OO there was more focus on getting a good abstraction. Trying to come up with the correct objects used to lead to better abstractions. People talked about crc cards, design reviews...

Then the design stuff got a bit out of hand with uml days. We started to have architects that only design and slave programmers that only program. Then came agile programming to remove useless upfront design. But somewhere along the line, focus on good abstraction is lost.

If programming is like climbing a mountain, a good abstraction is a path around the mountain, gradually increasing the altitude. A bad abstraction is attacking the mountain head on. You can 'force program' to completion, but what you end up with will be very hard to understand and maintain.

If your code is not flowing, if you are inventing additional, after thought mechanisms to keep it under control, may be it is time to take a step back and revisit your abstractions.

No comments:

Post a Comment

Followers