An Alternative to Upfront Estimates

When starting a new venture such as a custom software application, we’d all like know how much it will cost to build. However, when building the first version of an application (MVP) it is nearly impossible to know the total cost upfront, but there is another way.


The Trouble with Upfront Estimates

When customers come to us and explain the problems they would like to solve with a custom software application, both parties need to make a number of simplifying assumptions to come up with a traditional estimate.
As a business owner, you are likely coming to a company like RoleModel because you aren’t yet an expert in world-class software systems. Without that background, it can be hard to understand why some things are easy (e.g. changing a page’s layout) and others that seem like they would be easy are more difficult (e.g. switching data source).


With custom software, there are many ways to approach solving a problem and it can be difficult in the early stages of discussion about a project to recognize what the flaws might be with the different approaches.


There will also be edge cases (things that are not part of the happy path through the system) which must be considered and estimating those can be very difficult. At times solving the edge case will be critical to the operation of the system and other times it’s a small preference, but not worth the cost to address immediately. Sometimes this means bubbling the edge case up as an error or building a new UI or workflow to address it. Another case might be leveraging external tools that can’t be fully customized, but address most of the problem rather than having to build the solution from scratch.


Allow for Learning

Regardless of the identified assumptions, made by both the client and us, we know from experience that customers will uncover and refine the business objectives for the application as they interact with initial iterations of working software. When you have first used a new version of a piece of software, you’ve probably experienced a “you know what would make this even better . . .” moment.
Even though software developers have many tools at their disposal for visualizing proposed solutions, some things can’t be simulated with wireframes or event prototypes. In order to refine the core workflows, a customer needs to interact with the application in the context it will be used to understand what is missing. This is why we work in an iterative style with short feedback loops.


But one question still remains: Is it our goal to steer a client toward the simplest and most cost-effective solution, or is it to rely on the customer’s goals to build what they believe to be a valuable solution?

Starting Small

Given this paradox, how do we navigate through this uncertainty?
Our proven approach at RoleModel is to start each project (and a new push for a project) with Planning and Exploration. During this initial phase, which could be days or weeks, we focus on identifying the areas of unknowns and biggest risks, while also focusing on delivering some spikes and functional prototypes of working software to help us and our client define the next steps in the roadmap.


We do this through User Story Mapping, Wireframes, Clickable Prototypes, Technical Spikes, and Functional Prototypes with the goal of defining a direction for the next phase of the project and building a Walking Skeleton (a rudimentary version of the system end to end). That direction may change as we learn more along the way, but serves as a basis for our collaborative decisions with our client.


With that baseline of rudimentary working software, we can better estimate new enhancements or features. It also allows us to mitigate the risk of building the wrong thing as we get feedback from the users and the Product Owner on working software along the way. In the end, this gets us to a solution that will provide value to users by leveraging our learning throughout the project.



Have a concept you’d like to pursue, but want to get a better handle on the scope of the project? Let’s talk about your project and see if a Planning and Exploration phase gives you the next step you need.