Thursday, January 13, 2011

Designing and Modelling vs Coding

This is my 2 cents wisdom on the oldest topic on IT: should you DESIGN AND MODEL everything upfront, or should you just CODE IT and refactor it as you progress in the task?

I have no doubt that IT work is like LIFE - in the biological sense of it:

a LOT of microchoices made IN ACTION, a continuous adaptation to an EVER CHANGING WORLD, but with a few important principles to guide us: ROBUSTNESS, ABILITY TO REFACTOR AND RECYCLE, AGILITY IN CHANGE, ABSOLUTE CLARITY IN INTERFACES AND CONTRACTS.

Any living creature is designed with these same principles. Some strange creatures do live without any agility (PANDAS), but often they are doomed for extinction as the environment changes. The key to the success of human as living creatures is their ADAPTABILITY.

Emotions play en enormous role in a project. Enthusiastic people achieve so much more that bored, 9-5 workers waiting only for Friday 5pm to come. And NOTHING motivates people more than SEEING ACTUAL WORKING CODE, and being able to model it and improve it.

So my motto is:
while (not (dead or retired) ) {
  analyze a little; 
  design a little; 
  code a little; 
  test a little;
  thread.sleep(8 hours);
  randomly enjoy your life outside the computer world;
}


No comments: