The Art of Guesstimating: Just a Budgetary Estimate Please?
This is the most common question I get when discussing system needs with new clients.
It’s obvious, I guess. If you want to have a house built, you are definitely going to want to know the cost before starting out. Half a house isn’t much good if you run out of money along the way.
Similarly, if you are about to embark on a new business idea that involves software development, you’ll need to know just how far you can stretch your capital starting with an MVP.
Cost estimation is not an exact science, but we can isolate the factors that will influence costs and make an educated guess from there, and yes it always involves spreadsheets.
Why Can’t This Be Simple?
1. Project Scope: The Grand Vision
Project scope refers to the features and functionality that the software will include.
The more complex and extensive the application, the more time and resources needed.
2. Project Timeline: The Race Against Time
You’ve heard it before, time is money. A shorter timeline might seem like a good idea (who doesn’t want their shiny new software yesterday?). In some cases, more developers can be added to a project but only to a point. Just as you can’t make a baby in less than nine months by adding more women, most projects cannot simply be shortened by throwing developers at it (the mythical man month is one factor).
3. Development Methodology: Choose Your Own Adventure
Waterfall, Agile, Scrumban, Water-Scrum-Fall – no, these aren’t exotic vacation destinations. They’re development methodologies and come with their own advantages and disadvantages and, of course, costs.
4. Team Size and Expertise: The Human Element
Developers – those mystical beings who turn caffeine and pizza into code. The size and expertise of your team can make or break your budget. And those highly skilled experts? – yes, they cost.
5. Technology Requirements: The Shiny Object Syndrome
In the tech world, new technologies pop up faster than memes on the internet. Development such as blockchain or artificial intelligence can require specialised expertise and resources, resulting in higher costs. Always ask the question, do we need the new shiny toys or will the old tried and tested technologies be a good enough fit for your project?
Estimation Methods: Your Toolkit for Educated Guesswork
Let’s explore some of the estimation methods.
1. Expert Judgment: The Oracle Approach
This method involves consulting with seasoned professionals who have experience in similar projects. It’s a useful method when you have little historical data, the project is complex and requires specialised skills.
2. Bottom-Up Estimation: The Jigsaw Puzzle Technique
Imagine breaking your project into tiny pieces, estimating the cost of each piece, then putting it all back together. It’s time-consuming but provides a detailed breakdown of the costs and can be pretty accurate.
3. Top-Down Estimation: Taking short cuts
This method uses historical data from similar projects to estimate the costs. It’s fairly quick, but not as accurate as bottom-up estimation.
4. Analogous Estimation: The “It Worked for Them” Approach
This involves looking at similar projects however with less historical data and assuming that it’ll probably cost us something in the same ballpark. Also, not that accurate.
5. Three-Point Estimation: The Goldilocks Method
This involves estimating the best-case, worst-case, and most likely scenarios. Useful when there is a high degree of uncertainty but not very accurate.
6. Parametric Estimation: The Math Nerd’s Dream
This method uses statistical data and project parameters to estimate costs.
Team size, project scope, complexity and timeline are all thrown in to the blender (Excel) and can produce impressive results.
7. Reserve Analysis: The “Just in Case” Fund
This involves reserving a percentage of the budget for unexpected costs. It’s like having a secret stash of chocolate for emergencies – you hope you won’t need it, but you’re glad it’s there when you do.
So Which Method to Use?
1. Project Complexity: Is your project a simple to-do list app or the next AI overlord? The more complex the project, the more detailed your estimation method should be.
2. Historical Data: Do you have a treasure trove of past project data, or are you flying blind? Your access to historical information will influence your choice of method.
3. Tight project timelines? Look at using top-down or analogous methods with a sprinkle of reserve.
4. Project Budget: If the budget is constrained then it’s important to have the most accurate estimate. However, that will have its own cost as you delve into the more time-consuming bottom-up or/and three-point method.
Tips for Estimation Success:
1. Define Project Scope Clearly: everyone should agree on what’s in and out of scope up front, avoiding arguments and budget overruns later.
2. Consider All Factors: Don’t forget to account for things like team vacations, illness – life in general and the possibility of a developer going off to be a professional gambler. Yes, it’s happened and is a lasting KRS story.
3. Use Multiple Estimation Methods: If you have the time and budget, use more than one method – it might save you from a costly mistake.
4. Learn from the past, lest you be doomed to repeat it. Historical data is gold when it comes to estimation.
5. Get all the stakeholders involved. Their input and buy-in is essential to managing the scope and budget.
The Wrap
Cost estimation for software development is part science, part art and part experience.
At KRS we prefer using a combination of estimation methods, considering all relevant factors, and involving as many players as possible in the process.
One of the biggest dangers is not unpacking the full scope of the project.
Event storming can help tremendously with unpacking information that may be hidden in the dark recesses of a business.