About my estimation skills
2 days later...
People suck at estimating. It's how our brain works. Go ahead and read "Thinking Fast and Slow" if you want to learn more about why.
But regardless of the this-is-how-the-brain-works-and-there-is-nothing-I-can-do-about-it excuse I learned 2 things that drastically improved my estimations.
Understanding the question
Now go back and read the question the client asks. Did they ask for "What's the world record time in which you can do that?" No, they didn't. They simply want to know how long it takes. Do they want you to do it faster? Sure, don't you want to?
Let's compare it to ordering a pizza. You're told it will take 10 minutes before it's ready. You're hungry, so you would rather have it in 5 minutes. How would you feel if the pizza arrives after 20 minutes. Would you be happy? I know I wouldn't. Now let's go back to when you ordered that pizza. What if the waiter told you it would take 20 minutes? And it arrived on time?
The lesson I learned here is that it's not about how fast you can do it. It's about being reliable. Can you deliver what you promise. They key is that you can manage their expectations.
Oh, and a bonus tip. Never ever feel pressured to give a low estimations. It's not a competition among your peers to give to lowest estimation. If it is at your company, please leave that company. You don't deserve that. Think about it. Tools like planning poker are there to improve the quality of estimations, not to lower them.
Understanding the work
"Fix that bug". Sound simple, right? Let's break that down to some of the steps you need to take:
- Carefully read the description. And fingers crossed that everything is in there.
- Pull in the latest master, create branch, rebuild, launch, ...
- Try and reproduce the bug on you local machine. Crossing even more fingers that you local data is good enough.
- Tinkle with the code and actually fix the bug.
- Clean up and write an maybe even write a test for it
- Commit, push and create the Pull Request.
- Follow up on the PR, maybe even processing some review comments.
Doesn't sound that simple anymore, eh?
Let go back to the pizza. I like pizza. Making a pizza sounds relatively simple. But is it?
- Carefully read the recipe. And fingers crossed that the dough and other ingredients are there.
- Gather the ingredients.
- Roll out the dough.
- Actually make the pizza.
- Put it in the oven.
- Clean your tabletop.
- Follow up the pizza in the oven.
When you're just starting of you'll probably only think of number 4. That's what I used to do. After a lot of failed estimations I learned that there's always more stuff to be done than what we consider the actual work.
How to make better estimations?
If there's one thing you can takeaway it's this:
Improving your estimation skills will not only make your client happy, but will save you a lot of painful discussions.