Friday, January 4, 2013

Why developer estimates go wrong?

Ever wondered why you always fall behind schedule, and why managers keep scolding you; why is this CLIENT always angry that releases are buggy?
People even change their jobs and the same trend keeps following them; if you are too lucky you might land in a place where there is not enough work itself, thus no pressure and thus no work satisfaction.

Thing is that you are one of the responsible factors in this unfortunate situation, and I am saying you are one of the factors, because there are other factors as well, you can probably tame the other factors providing you are doing it right yourself.

Here are a few things that you normally do, and check it out yourself next time when you are doing it.

  • You estimate very close - for any piece of work, you give estimates very close, always thinking you have done so much work so far, that it'd be a piece of cake, but HONEY! its not, a piece of work will always need to be DONE, in the real CLOCK of this fucking 24 hours in a day WORLD; so stop pretending that you are a super man, and give the good time + 40% of whatever time you are thinking. 
          And at least 40% extra,although the real way of doing it is, think whatever time you are thinking, and than multiply it by 3 times, that's the real time when the real delivery will happen.

  • You kill time - yes you do, even when you are hands down on your laptop through out the day, if you are spending full day at desk, that means you are a douchebag, because honey, you are not cut out for this job, you estimate wrong, you can't stick to schedule, you work hard, and you would keep doing it forever.
           This advice is for all those who do not spend full day at desk, people who have a life, a girlfriend or a wifey, kids and friends to go out with; GUYS! you have so many things to do, so stop wasting time, and start using it; use techniques like pomodoro and use your time to max.

Facebook can be done at end of day, and trust me people love people who don't have time to waste at douchy tools like FB or twitter; RICH and Busy guys don't have time for facebook and twitter.
  • Your tools aren't good?
    • Your debugging skills suck, and that's where you waste a lot of time; so take some night hours, check out those productivity videos on Visual studio, php debugging or ROR debugging, learn debugging first even before learning to code in any language, you should have proper skills to kill the bitchy bugs.
    • Are you using notepad++ for coding?  dude, at least start using a free IDE, you are a developer, you need tools around to help you out with things, and debugging off course.
    • Learn new stuff, it always saves time - EX - if you are a web dev and still you aren't using Jquery! shame on you, better stop reading this blog and go read jquery.
Now the factors that aren't in your control

  • The Manager argues on timings - Let him argue, and you better tell him the factors like testing, debugging, re-fixing, architecture, deployment, machine setup, and BUFFER {yes you need to take it, because the manager would not), its not that manager doesn't know about buffer, its just that the bad ones would never like to give you that breathing space, so you better make it up for yourself.
  • The client argues - Hang on, why are you talking to client? your manager should be talking to client, and if he does and you do too, then its high time your manager should quit, because you are doing 80%of work.
  • Bugs get re-produced - if you have fixed a bug, than same couldn't be reproduced,trust me SAME won't but the testers will make it look like the same, it may look same but its from a diff reason, so defend yourself if you need to. I am not saying Testers are bad, but they make their livelihood on bug creation, so let them do their job and you do yours.


Recently had a chance to converse with someone with a vast experience of managing teams and projects, The discussion lead to an honest advice

"The Buffers have to be there, they need to be known to developers, project managers, clients and in a sense to every stake holder in the project".

The idea is to use that buffer to make things better, give breathing space to the team when things get too pushy, and you as a team are at leisure to deliver within or before that buffer, also the business team can cut a deal as to if they deliver before or around the buffer start date, they can get some more money.

Q. "why didn't it came to my mind ?"

"Yatha Drishti, Tatha Srishti" - It all comes from whatever big or small experiences I have been through.

Happy coding, or whatever you do....

No comments: