How to provide ballpark estimates without trapping your team into unrealistic deadlines
Few things fill an engineering team with?trepidation?more than a request for a “ballpark estimate”.
The request usually comes from management in this form: “Hey, if we had to build a new e-commerce experience for selling furniture (in addition to our current clothing line), roughly how many engineers and how many weeks/months will you need?”
At this stage, not much more information is available because the business is probably trying to decide whether the project is feasible based on the engineering team’s answer. Based on the ballpark estimate, the business will very likely create a plan that at some level, makes a delivery commitment to clients, customers or investors.
This is where trouble starts for the engineering team: on one hand, the business needs to make some level of commitment to external parties before more resources can be committed to the project. On the other hand, only once resources are committed and the team delves deeper into the requirement will the full extent of the project become clear. Unfortunately, by this time, the “ballpark” qualifier is often dropped, and the team finds itself committed to a deadline that is based on partial information.
There are many approaches to avoid this predicament: insisting on up-front analysis before providing any estimate, creating a risk mitigation plan to handle the uncertainties, or adding ample risk buffers to the estimates. Different approaches work for different types of organisations. Here, we will look at an approach that is based on a) defining clear scope boundaries b) eliminating uncertainties using well-documented assumptions and c) creating a clear, shared understanding between the engineering team and stakeholders.
Let us use an example.
The request:?We need to build a new web-based e-commerce product for selling furniture. Leverage our existing e-commerce product, which sells clothing. How many engineers are required, and how long will the project take, roughly?
As an engineering manager, your first responsibility is to gather as much information as possible within the available time. For this example, let us say the client needs a yes/no answer within three days, so you and your team have two days to come up with an estimate.
Feel free to tell your internal stakeholder (maybe a product manager, account manager, business analyst or even a founder) that?the accuracy of your estimate will be directly proportional to how much information can be made available to you and your team.?If necessary, request to suspend all other work for next two days. Schedule a series of long (say, 1–2 hours) meetings with the stakeholder to understand exactly what the requirement entails. Then, prepare a list of questions for the meeting(s).
Here are some questions:
Notice that to come up with a list of effective questions like above, you need:
If you lack this experience, it is important that you enlist the help of someone in your organisation who does have this experience, for the purpose of compiling the list of questions.
Take detailed notes during your sessions with stakeholders. You will be using these notes to document and echo back your understanding to the stakeholders. The best way to ensure that you have understood their intent clearly is for you to echo their expectations back to them in written form.
Obviously, you will not get answers to all your questions during these meetings. Rather than leaving those questions open (an uncertainty), what you can do is to make reasonable assumptions and include them in your document.
Not all requirements will be of equal time priority. This is where the concept of?phases?comes in. When you understand the relative importance of requirements for stakeholders, you will be able to break down the work into several phases (rather than one large project) that you can estimate separately.
领英推荐
This is what the outcome of the series of meetings may look like. As the engineering manager, it is you who should write and share it with the stakeholders for agreement.
Phase 1: furniture e-commerce site MVP
In scope
Out of scope
Assumptions
Architecture
Team requirement
Estimate
Note that the “out of scope” and “assumptions” sections are the most important. They are usually the sources of the most uncertainty.
In all, these 25+ bullet points are what you will send your stakeholders, and if they agree, will constitute your contract with them. If anything here changes (e.g. something out-of-scope needs to be accommodated, an assumption is found to be untrue), then you are allowed to revise your estimate.
Project Delivery Expert | Strategic Team Builder | Pet Lover
1 年End of the day it will mostly depend on the person who provides the estimate, their knowledge about the domain, understanding of the customer requirements, assumptions made, experience of using the technology of choice and the assumption made about the skills and experience of dream team to build the solution.
iOS Mobile App Developer | UI/UX Enthusiast
1 年Only in software engineering, the phrase "ballpark figure" changes its meaning over time ?? Glad to see the newsletter back by the way.
Software Engineering Manager | Building High-Performing Teams | Driving Innovation
1 年The more organised the development process is the more accurate the estimation would be. Really useful info. Thanks!!
Driven by humility
1 年What is your thought of relating the ball park estimate to a tshirt size (not SPs since they still confuse the shit out of folks)? Might save precious few hours of estimating.