Never Under-estimate the estimation process
Estimation is the fine art of guessing when the environment is ambiguous. It is nothing different from shooting an arrow with blindfolded eyes. But, we can use some common sense to shoot as close to the target as possible. Sounds easy, right? But the problem is, common sense is not as common as you think. And so, estimation is never as accurate as anyone would want it to be. The more we avoid under-estimating the estimation process, the better our prediction will be.
In workplaces, we will have to come up with an estimation of timelines and we will have to remain committed to the timelines. A generous estimate will not be accepted by the management whereas a tight estimate will force developers to work overtime and face burnouts. Hence, a just right estimate is the ream estimate which we all would want. However, this just right estimate won't come without previous estimation errors and learning from previous mistakes. Over time, our estimation skills improve.
Below are a few tips which will help you improve your overall accuracy.
Tip 1: Use your numbers instead of words:
Stick to your spreadsheet. This sounds too basic. But, oftentimes, people tend to avoid the spreadsheet thinking that it's over complicating a simple situation. They prefer to talk in the air. But, unless we "do" the math, our estimations keeps moving away from reality. Also, spreadsheets gives a clearer picture of how we came up with a number, and helps us tweak and play around with the numbers.
Tip 2: Make way for a leeway:
Oftentimes, there are so many unexpected hurdles which tend to come in a project. From scope creep to integration issues, anything is possible. While we do classify some of these as known risks and plan for mitigation accordingly, there is still a possibility of something unexpected to crop up. Especially, when the team or technology or process is new. Hence, it is always advisable to include a buffer - as a leeway in case something went unpredictably wrong.
Tip 3: Plan for unplanned vacations:
Employees are human beings with a life outside of work. When life happens, work cannot happen. A good manager must take this into account. While we know that a task will take X number of hours and a person can work for Y hours per day, we should realize that it does not always translate to delivering in X/Y days. The delivery date will almost always be greater than X/Y days because unplanned time-offs are inevitable.
Tip 4: Granulate the tasks:
An activity contains "n" number of tasks. Make this "n" as indivisible as possible. Treat each task as independent. Common sense might suggest, there are n tasks, assume each task will take m hours, and that the activity will be complete in n*m hours. This is a trap. Some tasks may take above m and some below m and the time per task may even average out to m hours. But, when you assign the tasks to individuals, the person getting the 'above m' task might not be happy about it. Hence, consider the complexity of individual sub-tasks and estimate accordingly.
Tip 5: Use efficiency effectively:
All 5 fingers aren't the same. Likewise, not all developers are the same. They have different productivity indices. In your spreadsheet, have a quantifiable value for developer efficiency or member productivity and factor it into your project estimation. Keep modifying this factor based on most recent numbers(delivery results).
Sometimes, we will be under time pressure and will not have reliable data to begin with. In cases where we need an approximate estimate or a guesstimate, the following tips will be helpful.
Tip 6: Rely on the known devils:
What can we do when we are asked how far is the moon or how tall is the building? We can use the data which we know as a reliable starting point. For example, in this case, we know how tall we are, and how tall a tree is compared to us, and how tall a building is compared to a tree, and so on.. Identifying just one known or a sure parameter helps us get a better sense of things. By reading things down and beginning with the reliable known devils, we can estimate the unknowns more accurately.
Tip 7: Expert's opinion matters:
In real-life scenarios, when we are tasked with estimating a task, we will be clueless about it. But, there might be the experienced and experts who will have better idea of the task. Listening to them gives a great idea of how long it might take. Based on their inputs, combined with internal knowledge of our team's abilities, we can come up with a better estimate when the situations are super ambiguous.
Tip 8: History to the rescue:
Imagine you are a manager in the middle of a meeting. You are asked to give an estimated timeline and commitment on the spot. What would you do? Of course, you will rely on historical data from your previous experience. A similar activity previously done took X hours, and so this activity might take almost X hours is a great way to come up with ball park numbers for estimates. This is like a realtor gauging the value of a home based on comparable homes in the neighborhood.
As you can see, the estimation process is not too complicated but when it is overlooked, it is a sure-shot recipe for a failure. Your developer's well-being, your team's morale, your unit's attrition rate etc. are dependent on numbers you come up with. Make it count!