When it comes to estimating effort, be pessimistic

This is the first post in the WorkTip series that I am starting on Enlist q. I have been working full-time as a developer for about 4 years now and have learnt so much that can only be learnt through experience. I have been lucky enough to be surrounded by some great minds and mentors who have not only taught me how to code but also how to adapt to the business environment. I realize that not everyone is as fortunate and that’s precisely why I would like to share what I have learnt with you! Stay tuned!

For several months after I started work, I was shielded from clients. My manager prioritized the work and assigned it to me. I would then attempt to finish the task and fail (this is when I was still learning q, kdb, linux…pretty much everything). My manager would help me out and with his assistance, I will finish the task and pass it back to him. Done. It was a simple process.

Then, I started to get better and more independent. I could be trusted with completing tasks on my own. I wasn’t just finishing up the code part of the task but also documenting, tracking status and testing. Then, my manager changed. My new manager had technical knowledge but not as much which meant that he relied on me to estimate the effort before telling clients when to expect the code change in production. Before I knew it, I was estimating!

The famous and widely used drug for treating ED? cialis price in india is the most obvious answer. The drug must only be taken under the supervision of cheap prices for viagra a medical professional. This increased blood flow helps men maintain quality viagra doctor free of erection and can also prevent premature ejaculations. Hydromax pump by Bathmate comes with 50 new levitra properien features and advanced technology. This is where things get tricky. When it comes to development, it not only consists of making code changes but all the components of software development life cycle that can be easily overlooked as well. For example, you have to first make the code change, test it, test it more, document it, update task tracker, do code reviews, deploy to UAT, deploy to PROD, test again and then finally, close the task. The first few tasks I estimated effort for didn’t meet their deadlines. I would tell clients that the change would be deployed in the next release only to disappoint them later. This creates a bad reputation for you because now you are the guy who doesn’t deliver. Trust me, you don’t want to be THAT guy!

How do you avoid being THAT guy, you ask? The answer is simple. Be a little pessimistic. Expect things to go wrong. In my experience, almost nothing has gone as smoothly as I had wished. If, on rare occasion, it does go smoothly, you will see me raise an eyebrow and check twice. The truth is we don’t live in an ideal world and things go wrong all the time. Maybe your task is dependent on some other developer who won’t be delivering on time. Maybe your code needs the latest version of some software to be deployed on all your machines which won’t be happening for a week. Maybe you will fall sick. Anything can happen and you need to give your estimates some cushioning. If you think it will take 8 days, tell your client 10 days. If you think 3 days, say 4 days. Never underestimate! Never say 2 days when you know it will take 3 days!

Estimating work required for a task and communicating with clients is an art that you will only master with experience. You will make mistakes and disappoint people at first but soon you will learn exactly how much time you need to get a task done and how much time you need to add to that for any unexpected issues.

Remember, clients will always be happy if you complete early but disappointed and frustrated if you pass the deadline.

Leave a comment

Your email address will not be published. Required fields are marked *