Its March. You need to deliver a fuckin awesome all-knowing, all-seeing application to your super ambitious client. The client has found you good enough to do this work for him. All is well, your manager is happy to take on this project, things move on. Oh but, did I mention that the delivery needs to be in 2nd week of May. Blistering Barnacles!!!!! Thundering Typhoooons, Maniacs, Ectoplasmsss…
In such cases, Agile, Waterfall, and other superman techniques are thrown out of the window, aren’t they? I do not give a crocodile’s ass for the manager or his boss or his boss. I am talking to the developer. Mate, the worst thing you could do in such case is to hastily start coding and get ready to deliver it and impress your boss, and may be get a free coupon to McDonald’s I(Not sure where I am going with this, but stay with me.) Although this is the thing you would be asked to do by your bosses. No specifications (specs), no clear requirements, no beer, just start the damn coding phase. A not so warm welcome to Outsourcing.
You the developer, do not have much control on these happenings. But there is one thing which can save your soul and make you a better human being. Write your own specifications. They can be rudimentary, as long as you know what you are writing in it, the purpose is served. Your specs can be just simple English statements like -
- Get all folders in the directory for given path.
- If folder with name Sucker exists, fork new thread.
- New thread will run background.
Your code then should follow this spec, and let me tell you, that really works. Jumping right into the editor might have worked for you before, but you can consider it as a coincidence. Writing such specs before coding might not get you the free coupon, but surely it will improve your code and make you feel better! Please do not go to your boss and explain him how important specs are for this project, let me say he is too smart to understand these things.
This is how I work and I can tell from my experience (its not that long experience really), I feel really good about massaging my fingers with some nice specs before slapping the keyboard with my crappy code.