In the previous posts I have discussed the process of software development so that we can get a good handle on what we are estimating. I have discussed the cone of uncertainty so we can know how accurate our estimates should be. And I have talked about four different estimation techniques: Expert Judgement, Count, Function Point Analysis, Story Points, and Decomposition.
So, you may ask, which estimation technique is the best? And my answer would be, as in so many things, “it depends”. If you are very early in the project, and have team members with a lot of experience in the environment and good historical knowledge of projects in the domain, Expert Judgement will be a good choice. If the project will have components that are easily identifiable early in the process, then Count is good. If you are doing a pure Agile project and your schedule can be a little more fluid, then Story Points will work for you. If a detailed design has been completed, Decomposition is good. My favorite estimation technique, though, is Function Point Analysis, which can be executed at any stage in the project. But you must have a counter with experience in the technique.
The best plan, though, is to become very familiar with all of these techniques. You can then have these tools in your back pocket that can be pulled out and used on any project, depending on the unique nature and needs of the individual project.
For more information on the subject, I highly recommend reading the book Software Estimation: Demystifying the Black Art by Steve McConnell. This book does a good job of going into detail on each of these techniques and several more.
Thanks for joining me as I worked though this series. This is a topic I’m passionate about. I hope that reviewing these techniques has helped you out in your own projects.