Are you currently in the project discovery phase and considering working with an external software development provider? Then, you're in the right place. Taking a deliberate approach to your discovery phase activities can better position you to get an accurate cost estimate for your project.
Rising economic uncertainty is squeezing IT budgets ever tighter. The result? Companies embarking on new software development projects need more accurate project estimations than ever. Highly precise software development estimations mean greater control over your finances and a greater chance of success.
However, accurate project estimation isn't always easy. It requires some work upfront to ensure everything goes smoothly and you get the most value from your discussions with outsourcing vendors.
That's what we're going to be diving into today. We'll discuss project evaluation steps, what difficulties arise in project evaluation, what information the vendor needs to give an accurate estimate, and what factors affect project cost.
Why Exact Project Estimation Is Challenging
Let's go back in time. Up until 2011, if you were embarking on a new software development project, you probably used the Waterfall methodology in your project planning. Waterfall demands that all software project specifications are defined upfront, which is very helpful for the project estimation process.
However, today, most software development teams are using Agile methodologies like Kanban, Scrum, Extreme Programming, Lean Development, Feature-Driven Development, and Crystal. Agile's philosophy is rooted in flexible product development, emphasizing the value of iterating quickly and regularly to satisfy customers. It allows companies to become more adaptive, optimize processes, and avoid overburdening the development team. In Agile, the main success criteria is a working product.
Agile's focus on productivity has led to many gains, which is why most companies today prefer Agile over traditional project development methodologies. But this comes at a cost. Namely, Agile complicates things from a planning perspective.
Beyond the nature of Agile, other factors make project estimation challenging. For example, finding a competent and experienced estimator can be a challenge. Ideally, you want to work with a senior developer who has experience with failed estimations and failed projects and knows how to avoid these risks in the future. You also want them to have a solid understanding of sales, estimating, planning, and delivery processes of the project as a whole.
Moreover, even the most experienced developers can make mistakes. Cognitive distortions (habitual ways of thinking that are often inaccurate and negatively biased) play a considerable role here. We tend to be overly optimistic or overly confident in our own abilities, and this bleeds into evaluating tasks. Studies have shown that developers, on average, underestimate project estimates by around 30%.
Errors in estimating probabilities also make it difficult to estimate project costs and timescales accurately. For instance, the actual time it takes to complete a task is a random variable. As a result, actual vs. predicted labor costs often don't align. When negotiating with the developer, you can combat this issue by defining what you mean by optimistic, realistic, and pessimistic task completion.
And critically, you shouldn't give any hints, expectations, or benchmarks before getting the numbers since this can significantly distort the result.
How To Prepare for a Briefing With an IT Vendor To Get a Neat Project Estimate
A complete, well-thought-out brief is critical to saving time and money. Or in other words, a comprehensive project discovery phase is the key to success. When clients know precisely what they want, outsourced developers are much better equipped to deliver a high-quality product.
A project brief is a short description of key elements of your project. When the development provider gives the client a project brief document, it will be a list of questions about specific project tasks. This way, the client can answer these questions to allow the developers to come up with a final estimate and define the terms of performance. Thanks to the brief, the outsourced development team knows what the client expects to see.
Now, let's look at the project brief document in more detail. What information should you provide that will help your IT vendor deliver results? This is what a successful project brief looks like with Active Bridge.
Block 1: A General Description of the Future IT Project
Contact information: This is compulsory. We need to know who to contact about clarifying details or making adjustments. Typically this means a phone number and email address for the key decision makers. This might be the department head or other knowledgeable and high-ranking employee.
Business area and competitors: A short story about the company will help us form a picture of the company's goals and operations as a whole. We need to understand what your business consists of, what tasks it solves, and what the final product is.
Goal: This is the purpose of the product. For example, what do you need the site for? How long will you use it? Is your goal to increase sales through a new software stream? Or do you have a working product that isn't performing well? The answer to these questions helps us prioritize and determine whether we're working with an ecommerce project, cloud software, or SaaS platform.
Users: Who will use the product, on what devices, and what can be done with this IT system? We need to understand who we are creating for and how people will use it. A portrait of the representative of the target audience will help us determine which tools to use and help us make a list of individual tasks to achieve the project goal.
Similar projects and analogous products: What do you like about similar software products? And what don't you like? We ask our clients to give examples of the most successful (from their perspective) sites in their category. This can help guide our work. If you have difficulty coming up with an answer, we give examples and ask you to note what you like and don't like about a particular web resource.
Content, Wireframes, and other materials for the site: If you have a selection of photos, videos, and other content you would like to share with your audience, we can incorporate this into the design.
Block 2: Options for Cooperation
Assumed Areas of Responsibility and Format of Work on the Project
There are three types of contracts: Fixed price, Time and Material, and Dedicated team. Each has its advantages and disadvantages, so which one you choose will depend on the nature and needs of your project. Let's take a look at these more closely.
In this model, the customer pays a predetermined price for a well-defined scope of work which is agreed upon between the two parties. Projects in this category typically have rigid requirements and predictable time frames. Here are some advantages of this model:
- Clarity and precision. All requirements are specified ahead of time, and time frames are known in advance.
- A good option for small and short-duration projects with no expected changes.
- Cost control. The outsourcing company must stay within the cost limits.
The main disadvantages of this model are its inflexibility and the lack of control over the development process once work begins. And changes to requirements can lead to a re-evaluation of the contract.
Time and Materials
In this model, the company pays the outsourcing provider for the time and effort spent on the development. There are no strict time limits, and the project concludes when the client is happy with the results. You can think of it as a "Pay-as-you-go) model. The project team will keep track of billable hours and invoice the customer monthly. Here are some advantages of the Time and Materials model:
- It's flexible. The customer can change the project scope, team size, or requirements on the go.
- You only pay for the results actually delivered (work that resulted in features and milestones), not time spent drinking coffee.
- It's well suited to Agile/Scrum methodologies.
- It's well suited for projects with varying requirements that may change due to fluctuating business needs or market situations.
The main disadvantage of this model is that it can be difficult to accurately estimate the project's total cost before you start.
This model compensates for the lack of in-house IT expertise with a dedicated outsourcing team. The outsourcing provider works with the company to find a dedicated team that meets the project's requirements. It's often called the best of both the previous models and is very popular for mid-term and long-term projects. Some advantages of this model include:
- Economic efficiency. It's more cost-effective than assembling a team independently.
- Access to highly skilled professionals.
- A fast workflow. Dedicated teams are more flexible and can adapt to changes in business requirements.
The main disadvantage of this model is that success depends greatly on the quality of the team.
How Involved Is the Customer's Team in the Development Process?
There are two primary options here:
- Staff Augmentation: Here, the client has already defined the skills, hours, and rates they require. They might have their own in-house team but need some dedicated specialists to help the project succeed. Typically, as a rule, the customer provides their own product manager.
- Project-based with Defined Requirements: In this scenario, the client doesn't have a dedicated in-house development team but has a clear idea of the product. The vendor recruits and manages the team.
Block 3: Implementation of the future IT system
You can answer several other questions to enhance your brief and ensure you and your outsourcing provider have a clear, mutual understanding of the project.
- Preferences for architecture, stack, frameworks, database management system, etc.
- Is there a brand book for design development?
- What statistics/analytics are expected to be collected? Are there plans to connect external analytics systems?
- Are load and automated testing required?
- What are the requirements for code style, standards, and certification?
The Stages of Project Estimation
So, you're done with the discovery phase activities and are ready to jump head first into project estimation. Arriving at the final estimate in software development projects involves taking several steps. Let's look into these.
Here's the core process here. First, a business will contact the outsourcing provider to express its interest in embarking on a software development project. Someone in the IT provider's company, usually a project startup specialist, records the information in its CRM and arranges a call with the client to clarify the details and discuss the project's needs and goals. The provider will then appoint a technical expert, the evaluation moderator, to clarify the technical details.
There are several key questions the provider wants to answer at this stage:
- Questions surrounding development scope. For example, which work steps do we need to evaluate (and prospectively perform?), and which will the client handle?
- Which areas of development need to be included in the estimation?
- What's the customer's preferred stack?
- What other critical details need to go into the evaluation?
For example, the client might have a vague idea of the design or be happy for it to form naturally (for it to design itself, essentially). In this scenario, the estimate should include time for the customer to accept the design and check it's consistent with the system's functionality.
Presale often refers to the whole assessment stage and the person responsible for it. The moderator creates a chat room or channel where all necessary experts can come together and hash out the details.
In the appraisal chat, we (the outsourcing provider) conduct all correspondence and discussion of the appraisal, record agreements and assumptions, and the implementation options. Here, we also discuss stack options and the advantages and disadvantages of different implementation approaches. Lastly, we discuss the possibility of using ready-made frameworks and out-of-the-box solutions and any other work that may come under the scope.
On average, a detailed assessment takes 3-5 business days.
A detailed assessment takes, on average, 3-5 business days. During this time, we determine the possible limitations and risks, the technology stack, the team composition, the approximate timeline, and the cost. Following that, we move on to discuss the assessment. Depending on our observations during this stage, there can be various refinements. There are multiple reasons for this, such as:
- The client's requirements have changed. For example, they might have initiated discussion with only a basic outline but now have much more detailed requirements, specifications, and layouts.
- The need to implement the product step by step, starting from the MVP, was identified, considering the budget or deadlines.
- Sometimes it is necessary to change the technology stack if the client reports new business tasks or infrastructure features.
Using the preliminary assessment, the startup specialist prepares a commercial proposal (CP), sends it to the client, and, together with the expert group, represents the proposal in the client's office or remotely.
If the client likes what they see and is happy to go ahead (a positive decision is made), they're ready to move on to the next stage - discussing the contract and terms of cooperation.
Under our company's rules, the preliminary estimate is valid for 3-4 months. However, the vision of the project, the level of expertise needed, and the planned technologies may change within this time frame. If this happens and the client wants to go ahead with the project three months+ later, we re-evaluate the project with the presale team before signing.
What Does the Project Estimate Template Look Like?
The estimation aims not only to find the labor costs but also to describe the scopes and risks and present them correctly to all the project stakeholders.
With this in mind, the ‘Project Estimation’ document should contain at minimum:
- Scope: Scope is the total amount of work needed to achieve the project's goal. It's a detailed outline that includes all related project activities, resources, timelines, deliverables, and boundaries. The tasks of all specialists are included in the scope, including developers, testers, and designers.
- Assumptions and risks: Assumptions are ideas that are accepted to be true without certainty. Risks are uncertain events that may or may not occur during the project but can impact the project's success. For example, if a critical player takes an urgent leave of absence. Risks can be internal or external.
- Budget. The budget includes all costs associated with the project, including payments to performers, purchase of devices, licenses, management, and additional and unnecessary costs.
The Sections of Project Estimation Document
The project estimation document is well structured and includes multiple distinct sections. Here are the ones you need to know.
This section should include:
- Project description
- Project architecture
- UI/UX templates
- Development (highlights features to be implemented)
- Integration of frameworks and libraries
This section includes the estimate and space to later record the actual hours for business requirements, functional specifications, detailed design, code, unit testing, system testing, user acceptance testing, project manager, project control office, and project management office (PMO).
Assumptions and Risks
External risks are connected to the project environment. Their origin can be contractors, customers, the environment, or legal considerations. For example, if a new law comes into effect that changes the conditions for working with online cash registers, the application's payment process will have to change.
Internal risks are related to problems within the company, the way the company works, and the project team. For example, someone may fall ill and drop out, or the company may introduce a new technology that will take extra time to learn.
What things need to be factored into the budget? Let's take a look.
- Cost Estimates: The baseline, minimum, and maximum project estimates, as well as the risk contingency.
- Phase Activity Estimation: Here, break down the standardized work effort metric, phase team size, computed work effort hours, the average hourly cost of each resource, and the estimated cost of each phase.
- Roles: List the required participants, including their hourly rate and the resource count allocation per project phase.
- Schedule: The estimated start and end dates, length of each work day, and project duration in weeks.
Factors That Significantly Affect the Cost of Development
Various factors influence the cost estimation of an IT project, and it's essential to have a good understanding of these during the planning process. Here are the most significant ones you need to be aware of.
The Complexity of the IT Product
Complexity dramatically impacts the cost of a software product. Here, complexity typically refers to the complexity of the product logic. It can also mean technological complexity. This is where the software is complicated and needs to be developed without using traditional technologies. Lastly, design complexity refers to complications arising from must-have design elements like customizable fonts, icons, images, etc.
Here's the bottom line. The more complex an application is, the more challenging it will be to develop, test, and deploy.
Software deployment platforms can also have a significant impact on software development costs. To make things more complicated, different publishing platforms have varying numbers of devices on which the product will be deployed. This means the costs you invest in each platform will also differ.
Data integration and migration requirements also impact software development costs. Currently, most applications have integration features to connect to third-party systems. These features include cards, ERP/CRM, payment gateway, and more. Unfortunately, these aren't always easy to develop and often have their own complications. As a result, software development costs can increase.
The cost of software development is also affected by the number of people working on your project, their skills, and their expertise. Naturally, the time and effort of each project manager, developer, UI / UX designer, and other contributors cost money.
You should now have a solid understanding of everything involved in agile project estimation. Do you have an upcoming software project you want some help with? Active Bridge has a dedicated and experienced team of experts ready to help with any software project. Get in touch today to get started.