Friday, July 12, 2013

Developer's evolutions

The life of a developer goes through several steps.
The complete beginner.
You learn about basic structure, loops, variable, object oriented programming and a language.

The happy hacker.
You start to feel power to do stuff, you can do whatever you can hold into your mind. If the problem can be summarized into one sentence, you'll hack some lines of code to get it done.

The curious assembler.
You know you have power, and you want to leverage what the developer's community have done for you. You learn about framework, APIs and switch languages until you find your preferred "hammer".

The astronauts architect,
You learn about design patterns architecture, good code, bad code, you start creating your own frameworks. You learn about the power of layers.
This is the worst step of your developer's life.
Your code will become so generic and layered that while theorically infinitively extensible, it is practically unusable.
But now, you can code something that don't hold entirely into your mind at once.

The pragmatic programmer
You know that for a code to be reusable, it has first to be usable.
You think about the purpose of each layer in relation to business purpose.
You clear cut certainty from the uncertainty of business actors, and code in consequence.

The worst part for your team is the astronaut part, because you have the power to say complex things does not means you have to leave things complex.