BlogCompanyHow we estimate project cost and the ultimate goals behind this process
How we estimate project cost and the ultimate goals behind this process
Lift off
At datarockets, we’re often asked to prepare a quote request on product development, so that our clients can more accurately allocate money and other resources to a project.
Detailed breakdown estimate
Among various types of approaches, we choose to provide a detailed breakdown estimate. It’s based on the given business requirements, which are usually clearly defined. Thus, our clients can find a better vision of their product’s cost through feature breakdown. Though it still involves uncertainty and the estimated number is likely to change, it can serve as an example for our clients’ consideration and preparation before taking further steps into the development part.
Below you can find a simplified example of what our detailed breakdown estimate looks like.
The file consists of three components:
Work Breakdown Structure;
Estimation;
Implementation Plan.
We not only provide estimates but also work on scope in order to launch MVP with optimal efforts.
Optimistic and pessimistic estimates
When preparing a detailed breakdown estimate, we provide both optimistic (minimum number) and pessimistic (maximum number) estimates.
An optimistic estimate describes the best case scenario when we assume or “hope” everything goes smoothly without obstacles and unexpected risks.
People are optimistic by nature and software engineers are no exception. We tend to keep in mind the best possible outcome while estimating a project. In order to avoid biased estimation, our team goes the extra mile and anticipates the estimated number more realistically by preparing a so-called pessimistic estimate.
A pessimistic estimate includes potential risks and unpredicted technical challenges we might encounter during the development process. In other words, it leaves room and flexibility for tasks that may take up different estimates due to certain conditions, including additional adjustments requested by clients. It also allows us to allocate time to research, clarification, testing and minor fixing more properly.
More importantly, it helps stakeholders estimate financial and timeline risks and align their business goals if the risk is too high.
Why project scopes often change and how it influences estimates
As clients want to be aware of the approximate delivery time and cost, the optimistic and pessimistic estimate ranges help draw this picture for them. However, any in-advance estimate provided shouldn’t be strictly considered as the final cost. Here’s why.
There is no single project developed exactly as it was originally planned. Once the development process starts and the picture becomes clear, the predetermined priorities are more likely to change. A number of features might be added or removed due to the simplification or complexification needs. Sometimes, product owners completely change their business vectors and pivot the product (and we absolutely encourage that!). Our team always leaves as much room as possible for flexibility and is well-prepared to handle pivots in a product strategy.
If you think you’ve got a flawless plan and it’s not your case, believe us, you might want to reconsider that later 🙂
An estimate helps plan out your resources and be aware of potential costs. However, functional requirements that change over time will definitely impact the previously given estimate. Thus, when a project starts and we get to understand it better, the general estimate is put aside, allowing both parties the flexibility to negotiate every feature individually. It provides the ability to make quick changes and achieve the best possible result in every single situation, keeping in mind the overall deadlines and budgets.
Continuous collaboration with a client helps adjust the estimates
Generally, an estimate is just a prediction of how long the implementation of particular features would take. This would be based on the team’s previous development experience. However, every single system is unique: from new versions of languages and frameworks to different functional requirements.
The worst experience for a client is when the development team delivers an entirely different feature from what was expected. Therefore, when starting a project, our team collaborates and communicates intensively with clients to correctly understand the project’s functional requirements and business goals.
Our team starts off by breaking down a feature into multiple deliverables. It helps to validate a feature before investing more time into it. We then gather user feedback to align it with the client’s vision.
We also discuss various options, propose simplified solutions for feature implementation or come up with completely different ideas to achieve a particular business goal. Although we can’t foresee this in the initial estimate, it can be vital for the eventual success of a project.
As the project continues, our team gradually learns more about the client’s business domain. This helps us realize that some features have been overestimated, whereas others might have been underestimated.
Communication goes both ways. Our clients have a chance to comment and express their views on how a feature should be implemented directly to our development team. At the same time, datarockers are allowed to reconsider the client’s ideas, explain how things work from the development perspective and suggest alternative solutions.
What we do with fixed-budget projects
There are projects where the budget and timeline are strictly fixed. What strategy does our team use in this case?
Set up a clear deadline with a client to indicate their expectations as well as the team size being allocated to the project;
Break down the Scope of Work into milestones and transfer them into User Stories;
Label those User Stories based on their priority levels to work on accordingly;
Release new functionality as soon as it’s ready and always have a working version at every single stage.
Many clients want to have all the features developed, but it doesn’t always happen due to the limited timeline and budget. In this situation, we start building the most crucial functionality and once we reach the deadline/budget limit, we may stop and skip some minor features.
At the estimating stage, we always propose to prioritize the features according to their importance. It often helps to understand the approximate budget and timelines for both an MVP version of the app and a full-featured one.
By applying the FFF approach, we can ensure to have a working version of the product at any time. This benefits both parties.
On the one hand, the team is given opportunities to learn further from what has already been completed. Therefore, we make sure that we are moving in the right direction and are managing the allocated resources properly. On the other hand, the client is given the flexibility to freely change the scope as we progress, if necessary.
Such an approach results in a more efficient collaboration with a client and ultimately a better product.
Wrapping up
Although neither the detailed breakdown nor FFF approach estimates provide a final number to strictly rely on, it is particularly useful to have an approximate understanding prior to the project development.
The optimistic (min) and pessimistic (max) estimates create realistic expectations and help clients take possible risks into consideration to better plan costs and resources. The approach works best with bigger projects that imply a lot of uncertainty. The FFF approach, in turn, allows developers to deliver a valuable project under tight deadlines and budgets.
Ultimately, estimation becomes valuable when it helps clients make significant decisions. Our end goal is to deliver projects that help achieve the client’s goals under a given timeline and budget. It always implies intensive negotiation on the Scope of Work, recommendations on possible features simplification and better technical implementation of their ideas. In addition, we provide information on potential risks, reasonable timelines and costs to avoid unrealistic expectations.
If you want to build the project of your dreams with us, please submit the form here, We’ve got you covered! 🙂