When a company hires a development team, both parties sign a contract. Nevertheless, the work on the project begins long before that. The client and the performer should have the same opinion about the released version. That is why they discuss all the details in advance.
There are many ways to run the preparation phase. At Softensy, we give the client a rough estimate right away. After that, we move on to a detailed plan. In this post, I want to show how to estimate a software project based on a live example.
Step 1. Rough Estimate
The accuracy of a rough estimate varies from 30 to 50%: the more inputs, the more accurate the assessment. To better understand how it works, let’s look at a simple example. When you ask how much the car costs, you’ll get a price range from a few hundred to several thousand. If you narrow search to Mercedes, you will get a more precise figure. Indicating S-class, you get an even more accurate amount.
Software development cost estimation works the same way. The managers may take the price from
- similar projects
- given parameters
- expert judgment
Our client contacted us with a general project idea. They wanted the app to weigh a person’s capacity to pay based on their banking data. The app goal was to help business partners save time and make deals faster.
In the past, we worked on a personal budgeting app. Among other things, it let the user evaluate their chances of taking a loan. Based on that project, we gave the customer a rough estimate. However, a new app had a key difference. It was assumed that the user could get not only their score but also the score of the partner.
We did not work with such functionality earlier. After a rough estimate, we proceeded to the next phase of the project evaluation.
Step 2. Discovery phase
The discovery phase is a data collection period. At this stage, we set up essential elements of the future app. The goal is to dive deeper into the project details and prepare a solid basis for further development.
For that, managers interview stakeholders and study documentation. First of all, they are trying to figure out the following:
- how the client sees the result
- which tools, if any, the client has today
- what the team should know to achieve the desired effect
At Softensy, we carry out three types of analysis:
- business analysis
- functional analysis
- technical analysis
Business analysis helps learn the processes within the company and identify the client’s needs. At this point, we explore the client’s environment and draw up an initial feature list.
Functional analysis specifies the features that we set up earlier. During this phase, we define MVP and create a visual prototype of future software. Together with the stakeholders, we hold the midline review.
Technical analysis aims to choose the means of project implementation. Here, we define technology stack, supported devices, browsers, operating systems, and so on.
Document cover sheet
At the end of the discover phase, we supply the client with:
- Technical specification
- Detailed feature-list breakdown
- Defined scope of work
- Clickable prototype
Our client did not have source code or specs and wanted us to run a full development cycle. To sketch the future app, we appointed a business analyst, UX designer, and technical architect. Based on clients’ demands, they made a preliminary list of options:
- Account creation
- Identity proof (via bank ID)
- Confirm ability to pay (share your credit score, income verification, risk level)
- Request ability to pay (view partner’s credit score, income verification, risk level)
- Tips for score improvement
- Push notifications
- Customer support
Here’s how our initial wireframe looked like:
We agreed to produce a web-based solution, accessible via the browser. Besides, we approved the development of native apps for Android and iOS.
Our tech experts suggested the following technology stack:
- Backend: Spring / Java
- Frontend (Web): React
- iOS: Swift
- Android: Kotlin
- Server: AWS
The client said they needed two days to study our drafts. In two days, we set up a remote meeting, agreed on the details, and made minor changes. Having a complete picture of the future project, we began to calculate software development costs.
Step 3. Detailed Estimate
In a detailed estimate, we describe a full scope of work and give an accuracy of 100%. We appoint team members and explain their duties. To calculate project costing, we use staff-hours. A staff-hour is a workload performed by one team member during one hour of continuous work. It is essential to understand that this term consists of two equal parts – man and hour.
By man, I mean a specialist – a developer, designer, QA – of a particular qualification. If you are going to hire a junior developer, you can pay less, but most likely, they will work longer and less efficiently than the senior.
By hour, I mean the hour of ongoing work. So, if the feature was delivered in two days, but done within 4 hours, then the actual cost of the work is 4 hours.
To avoid downtime, we organize an efficient workflow and set realistic deadlines. The development process goes under Agile technology. It means that we review a work plan at the beginning of each sprint.
We estimated the cost of software development and sent it to the client. In our paper, we proposed the following team list:
- Web developers – 3 (backend – 2, frontend – 1)
- Android developer – 1
- iOS developer – 1
- Project manager – 1
- Business analyst – 1
- Quality assurance – 1
- DevOps – 1
- UI/UX designer – 1
Also, we divided the process into six sprints. Each sprint was to last two weeks and cover particular tasks. We took into account the costs of UI/UX and testing. Besides, we indicated how many hours a project manager and DevOps will need to organize work. In the end, we summed up all the points and provided the total amount. Below is an example of a detailed estimate from Softensy.
Step 4. Software development contract
If the client is satisfied with our plan, we sign a contract and begin to work. In the software development agreement, we describe the developer’s duties, delivery terms, and payment scheme. We also indicate that the client will hold all intellectual property rights in the software.
As a rule, we get to work immediately after signing the contract. Note that all projects are developed only by our in-house team. That has many benefits:
- refined internal processes
- high professional skills
- tighter cooperation
Working with the in-house team is less risky. However, realistically it has one drawback. The developers with the necessary skill-set may be busy with an ongoing project. In this case, we postpone the start of development but not more than for a month. During this time, our team intends to allocate resources for project implementation.
Over the project duration, the client interacts with the team via the project manager. Besides, we arrange regular meetings via Skype or Zoom.
Usually, there are two types of meetings
- Weekly calls to discuss the development process
- Once-in-two-weeks calls to show the results of the current sprint
Apart from that, we provide the client with access to our project management tool Jira. In such a way, they track the whole development process and individual tasks.
We started working on the application the day after signing the contract. As indicated in the detailed software development costing, the team consisted of 10 people. At regular meetings, we reported on the work done, clarified the tasks of the next sprint, and made some changes if necessary. The application was finished on time. Both parties remained satisfied with the cooperation.
Estimating software projects at Softensy
We have developed the above scheme of estimation based on our experience and believe that it is the most effective. Of course, each project is unique. Some clients order the apps from scratch; others need to redo the existing functionality. Regardless of the scope of work, we draw up an effective plan in advance. Proper preparation helps avoid mistakes and enables a smart use of time. If you want to start a new project or redesign the existing one, please contact our managers. We do a rough estimate for free.