We will take a closer look at three main problems:
- What does the pricing process look like?
- Why isn’t it in line with the final cost of the project?
- What are the possible pain relievers?
Software development budget: the reason for this difference
Regardless if you already have experience in working with a software house or it will be your first time, you may have certain assumptions or expectations regarding how the process of software product development should look like. Predictable, according to plan, within a budget and schedule – those would be the elements of a perfect process. But what does it look like in reality?
McKinsey reports in Delivering large scale IT projects on time, on budget, and on value:
“On average, large IT projects run 45 percent over budget and 7 percent over time, while delivering 56 percent less value than predicted”.
Today we will show you why most of the actual software development costs differ from assumed budgets and pricing. We will also explain what is the reason for this difference, and most importantly, what can be done to minimize the gap and increase the predictability of the software development process.
But first, let’s have a look at the pricing process at Inwedo.
Setting the price of a software development project, step by step
Agata Solnica, Key Account Manager at Inwedo, breaks down the pricing process into 5 steps.
Understanding each other
First, we arrange a short meeting with you, the customer. Two important things happen here: we learn about your needs and you will hear about the process, how we work, and what to expect.
We have distilled four main points of what you may expect during your first meeting with a software development team:
#1 PRODUCT DESCRIPTION → Be prepared to answer questions like: do you have a functional brief for the software house describing project assumptions and goals? Do you have a product specification?
This information is important both for planning and securing resources as well as for cost estimation.
#2 TECHNOLOGY & TOOLS → the software house will want to determine what competencies and skill-sets this project will require.
#3 CO-OPERATION → what will be the best form? Consultancy, support or perhaps signing an agreement for full responsibility for preparing the project?
#4 SECURITY → does the project require special measures, e.g. with securing user data?
Good to know:
to help you plan how much time you will need to devote to this project, we shall determine the scope of your involvement during the pricing stage. Sometimes we might have extra questions, will need to fill out blanks in a brief or prepare a few user stories. But don’t worry, if this is your first time and you are not sure of how to prepare all this, we will gladly help.
Actually, we don’t expect the project Founder to prepare a brief alone. You can count on us, an experienced software house, to ask the right questions
It’s time for some code review
There are various scenarios when our cooperation starts. For example, you may need us to continue work on a partly finished product, moving it from another software house. But before we go ahead with any recommendations or pricing, we will need to make a code review. Why? It will help us assess if introducing any changes in the project or its further development will be possible and how long it will take, which directly translates into how much it costs.
Choosing the best solution for your software development project
So we have the project specification or general description. Now we are ready to analyze the information about the project and we figure out the best path to go forward. How do we do it?
- Discovery workshops: if the project or idea requires further clarification or we simply need to know more details about the scope of work, final users, criteria of success, or technology – we often recommend discovery workshops. They create a perfect frame for us to sit down together and go through all the important aspects of the project. We present the results of the workshops in the form of a report, which will also include the time resources required for completing the project. This project specification will allow us to start development later.
- Technology: depending on the project, your preferences, or based on our experience, we will make a recommendation regarding the best technology for the project.
- Time estimation: once we know enough about the functionalities and scope of work, it is time to involve the technical team to prepare a preliminary project estimation. How do we do it to be as precise as possible? Each project is always analyzed by a minimum of two developers, thanks to which we have different perspectives on time estimation. Sometimes we may have additional questions. We will gather them together into one list and consult with our customers via phone, meeting, or email.
Building the team
Now that we have a time estimation we will decide about the shape and size of the team. Our teams are always composed of people whose roles and competencies complement each other.
The next step will be to decide about the process – how will we work? We need to determine two important parameters:
- Will we work in two week or monthly sprints? Depending on the complexity of the scope of work sometimes we might allow for a time buffer.
- Starting date.
Good to know:
Do we have a deadline? Will this project be accounted for by stakeholders who can withhold financing? What is the preferred time frame for the project?
You may say this is the last stage of collecting all the information. The offer will summarise all the elements we mentioned earlier and provide you with a picture of the project, how time-consuming it is, and the estimated budget.
Good to know:
We highly recommend considering some less obvious points. For example: What is the source of financing of this project -internal or external? Can the budget change? What is its maximum level? Do we have a budget for implementing the application?
The last element of our offer will be determining the next steps that are necessary to start the project. For example:
- organizing discovery workshops to describe the Minimal Viable Product (MVP – a minimum version of a product that allows collecting feedback), user needs and criteria of success,
- information or documents necessary to complete before the project’s kickoff.
We as a software house always try to assist our customers in the pricing process, but there are a few areas in which you can help us.
What can Founders do to help software houses prepare a fair cost estimation?
According to Agata, there are four basic areas:
- Determining needs & the scope of activity for the productAs we already mentioned, without knowing what you want we cannot estimate how to build a product and estimate how much it will cost. But no worries, we will be happy to lend you a helping hand and go together through the process of creating a product specification.
- PrioritiesWhat are your priorities? We will help you order the needs you need the project to fill from “must-have” to “good-to-have”.
- Product context All additional information about your product is always very valuable for us. Starting with your vision, what inspired you to create this product in the first place, but also the challenges you are currently facing. All this information will help us better understand your position, so we can offer solutions that address real needs.
- TimePlease book time for the initial phase of our cooperation and let us know how we can fit into your schedule to make the best of your availability.
As we hope you see, the pricing process, to be accurate, needs to take into consideration quite a bit of information. It’s quite a complex process with many variables and requires a joint effort to do it well. We hope that now you better understand why as a software house we have to get into so many details, why we will ask so many questions, and in turn how you can prepare for the process.
In the second part, we will explain why despite all this effort there still can be a discrepancy between estimated and actual costs of software development and most importantly – what can be done to minimize this.
In the meantime, we invite you to read: