As developers, we are doers, we are the kind of people that like to act instead of wasting time. This is good, this is really good, I’ve met a lot of people that liked to talk and do nothing. But I’ve also met people that failed because I did not think twice.
And when I say that I’ve met people like that is because I am one of them. I cannot finish counting the times that something went wrong just because I didn’t plan it in advance. The great point about thinking is that it is cheap. I’m going to list the different steps that are behind implementing something:
- Think it.
- Draw/write it in paper or notepad.
- Design/model it.
- Create the code.
Which step’s results do you think is easy to modify? Every step is harder to undo than the previous one. Sometimes, you skip them because you are in a hurry or you (think you) understand it perfectly. I’m not saying you should accomplish (or skip) all of them, just that you should realize what is behind the process. That will make the difference between taking the wrong option and controlling everything around development.
If you constantly skip to point 4, you will face times when you are fighting against the code, programming by coincidence instead of doing it based on your knowledge about the logic you are trying to implement.
Ideas are always greater in our heads than in reality and that’s why it’s important to write them down, give them a second thought before going any further. Before start patching something that was born dead.