Our Tips on How to Estimate a Software Project Accurately and Effectively
Expanding your current websites isn't easy, but it's even more difficult to start a project from scratch. Every new project requires careful planning of its business and technical goals. As Benjamin Franklin said: “If You Fail to Plan, You Are Planning to Fail.” The right plan may save you a lot of trouble further down the project timeline. From this article, you'll learn what you should pay attention to when estimating new software projects.
Why project estimation is important?
How much does it cost to build a website? This is the question that clients usually ask. The answer will probably be “it depends”. Both the success of the entire project and the development of the most reasonable quote are the result of the work and efforts of both parties - the client and the development agency.
The purpose of preparing an offer is to present a plan for success that requires the joint effort of both parties. Software projects usually last from a minimum of a few to even a dozen or so months. It's therefore crucial for the client to be able to clearly state if the budget is realistic for them.
You should keep in mind, however, that no project quote will be 100% exact. That's why it's worth carrying out a reasonable estimation, i.e. one with the smallest possible margin of error and minimizing the risk of surprises occurring during project implementation.
What is needed to prepare an estimation?
An important issue is the materials that the customer prepared before contacting the sales team. The more information they obtain, the faster and more precise the project estimating process will be. When we mention materials, we mean:
- business plan (can be in shortened form, e.g. business or lean model canvas),
- project specification (with functional and non-functional requirements),
- project mock-ups (UX, user paths, website flow, information architecture),
- graphic designs (UI design).
Clients often aren't able to prepare the abovementioned materials on their own. Then they can work them out together with our team.
Estimating software projects without defined features
After the client completes our contact form, they'll receive an invitation to an online meeting from our specialist. The purpose of the conversation is to ask a few important questions so that our team can understand the idea behind the project and learn about its complexity. Such meetings are usually carried out on a business level, so they don't require technical knowledge.
If during a conversation we see deficiencies in any of the abovementioned materials, we most often suggest starting the collaboration with consultations and workshops. These activities are valuable because, after developing the appropriate materials with us, the client can use them freely. Workshops have two fundamental advantages. Firstly, based on our experience, the client minimizes the risk of future problems. Secondly, the client can send the received documents to other companies to compare the offers.
At Droptica, we carry out technical and design consultations. Most often, we agree upon a specific number of hours (e.g. twenty) and during this time we solve problems together. An example of such a meeting is a consultation on application performance. We are happy to advise on how to optimize your website for handling heavy traffic.
Consultations work best for smaller projects or for some small part of a problem. They give the opportunity to choose the best solution and use the knowledge of experienced developers who'll predict and eliminate the problem.
UX Workshops are for clients who don't have any website or app interface concept in mind. Our designers conduct remote, interactive sessions with clients, during which they jointly discuss user personas, basic goals and actions to happen in the project, and develop mock-ups, information architecture, and user experience.
During UX workshops, we especially require a commitment on the client's part, because without a common phase of ideation and dialogues, we won't be able to design an optimal experience for users.
After UX workshops are over, we can smoothly move on to user interface (UI) design.
These types of meetings are perfect for complex projects with dedicated functionalities. In this case, we usually require several iterations between the client and the leaders of the development team. It may be that during technical workshops we'll create a so-called proof of concept, i.e. we'll prove the technical feasibility of a given functionality. After every completed workshop, the client receives technical documentation and an estimation of the project which has already been defined more closely during the meetings.
Estimating projects with defined requirements
When we receive an inquiry with a detailed description of the project and graphic designs, our sales team, together with developers, creates a list of functionalities and estimates the time needed to perform individual tasks. The total number of hours needed to work on all functionalities is multiplied by the hourly rate of the development team. In addition, we add the rates of other, very important specialists, without whom the project wouldn't be successful. These are:
- Project manager — a person responsible for running the project, monitoring the budget and pace of the tasks performed by the development team, adjusting the activities to the client's business needs, and making strategic design decisions in consultation with the client and the development team. Typically, a project manager is assigned about 20% of the development time.
- Quality Assurance (QA) — testers. They are specialists responsible for eliminating any shortcomings and errors of the project before any part of the system is released for production (live version). A QA specialist is typically assigned to about 15% of developers' hours.
Estimating a project for existing software
If the client already has an existing project, most often after signing a non-disclosure agreement, we ask for access to the project repository and database. Our development team evaluates the project and estimates how many man-hours the specific tasks will take. Our support services also work well for ongoing projects.
Who is involved in project estimation?
From the beginning of your collaboration with Droptica, you'll be accompanied by our business developer who deals with consulting and sales at the same time. The business developer will help you from the first contact, through talks with developers, solving the problems and doubts, to negotiating the costs and signing a contract. After this last step, the project will be seamlessly transferred to the project manager and tech lead, who'll be responsible for the core work.
How to estimate a software project? Summary
Cost estimation and an appropriate plan are the result of the efforts of both parties. We are an agency that creates large, ambitious projects within a longer perspective. We can’t imagine long-term collaboration based on weak foundations. Therefore, we always invest a lot of time and effort at the early stage of talks, because we're aware that substantive assistance may bring many tangible benefits to the client.
If you have an idea for a new website or already have an ongoing project, don't hesitate to contact us.