Agile project cost estimation, or how we estimate at Globaldev

11 Jul 2019
Agile project cost estimation, or how we estimate at Globaldev
Cost estimation in software engineering is the process of predicting the resources (money, time, and people) necessary to finish a project within the defined scope.

Accurate software development cost estimation helps everyone involved in the project:

  • Project owners can decide whether to take on the project.
  • The development team can know what they are supposed to do and when.
  • Everyone is on the same page.

Agile vs waterfall: Software development methodologies

Before estimating any project, we decide on the development methodology/decide which development methodology is right for your project. There are two most popular and diverse methodologies for developing software: waterfall, also known as the traditional model, and agile. In the table below, we compare agile and waterfall based on use cases, constants and variables, strengths and weaknesses, and more.

table

The waterfall methodology is a sequential design process, meaning each phase is started and completed before moving on to the next. Once a phase is completed, developers can’t go back to a previous step. 

As there isn’t any room for error or change, waterfall stresses meticulous documentation so everyone involved knows exactly what to expect. However, if the initial plan is faulty in any way, software engineers then lack the ability to adapt and instead have to start over, which often leads to budget overruns. With agile project management, developers don’t build the whole project at once. They develop it feature by feature. This allows for project modifications in order to achieve desired results.

With agile project management, planning consists of three main building blocks: scope (requirements), resources (software development budget), and time. With waterfall, the scope is fixed which makes budgeting and forecasting easier. The agile development, on the other hand, is value-driven, meaning that developers aim at maximizing value. Budget and schedule here depend directly on user feedback and your business decisions.

agile_project_cost_estimation_or_how_we_estimate_image_2

Source: atlassian.com

Approaches to estimating projects of these methodologies are quite different. How? Let’s explain using a real-world example of two similar projects by the Federal Bureau of Investigation (FBI) that were developed with two different methodologies and resulted in vastly different outcomes. 

Case study: FBI's Sentinel project

Prior to 2000, the FBI was using a paper-based file and record system as well as an automated case support system to manage all of their records. In the interest of upgrading their system, they approached Congress and requested funding. Congress approved $340 million for the FBI to build a criminal management system which was later known as Virtual Case File (VCF). This system was supposed to centralize data at the FBI and make it easier for agents to maintain and find information. Yet in 2005, the project was officially abandoned after $170 million had been spent on it. 

Randolph Hite, director of IT architecture and system issues at the Government Accountability Office (GAO), says that VCF “was a classic case of not getting the requirements sufficiently defined in terms of completeness and correctness from the beginning. And so it required a continuous redefinition of requirements that had a cascading effect on what had already been designed and produced.” 

Using the same technology, the FBI started to develop a new solution called Sentinel in 2006. Just as with VCF, the Sentinel team initially went with a waterfall approach. The FBI’s original plan divided the development project into four phases, entailed estimated expenditures of $451 million, and set a deadline of December 2009. 

However, by August 2010, the Sentinel project was only halfway through and the expenditures had already reached $405 million. This was the moment they decided to shift from waterfall to agile. By adopting an agile methodology, the FBI managed to complete the remaining two phases for $30 million within a year. Ched Fulgham ― the FBI’s chief information officer ― says that “agile development turned out to be the right way to complete it.” 

agile_project_cost_estimation_or_how_we_estimate_image_1

Source: guru99.com

Having complete requirements for super complex projects such as VCF or Sentinel is next to impossible. Thanks to agile, the FBI broke down work into smaller, manageable, bite-sized pieces and regularly ensured the chosen direction was right. They managed to deliver the intended results, get the solution to market faster, and save time, money, and effort.

The 5-step process of cost estimation in project management at Globaldev

No matter what software development approach you choose, you’ll want to know how much time it takes to build your project. Estimates enable you to:

  • Manage team workload
  • Create a release plan
  • Schedule marketing activities
  • Measure your team’s productivity  

There are lots of different estimation techniques for calculating the cost of software development. At Globaldev, we believe it’s reasonable to apply several project estimation techniques to produce more accurate estimates. 

To explain how we estimate, let’s use an example. Say you have an idea for an Instagram-like app similar to one of our past projects, Yontent. The Yontent app connects brands with bloggers who want to create paid product reviews. You contact Globaldev to request our services and an estimate for this project. Here’s how we’ll approach this.

#1 Develop your UX strategy and write a requirements document

At Globaldev, this phase (which we call product discovery) is the cornerstone of project estimation. We believe it's impossible to provide accurate estimates without clear requirements. You may not have your requirements ready for the entire project, but you should have them ready for at least a sprint.

At the outset, we’ll hold quite a lot of meetings with you. The goal of these meetings is simple: to grasp the idea of the project and discuss the design, functional, and technical specifications. We also analyze your existing materials and fine-tune them if needed. Based on the information received, we’ll create wireframes to visualize:

  • The app’s navigation structure
  • Layout: Page hierarchy and the placement of elements on screens
  • Content placement within the design
  • Functionality: How your product works and how it interacts with users

Once you approve the UX concept, we’ll proceed to creating requirements. Fully outlined requirements serve as the basis for calculating your software development costs and development hours. 

#2 Bottom-up estimation: decomposing requirements

For more precise estimates, we use a bottom-up technique. This means we break large tasks into smaller parts and define the time necessary to complete each of them. Then we sum up the estimates for all these parts to get the total estimate.

Public domain tasks estimate

Source: public domain

#3 Analogous estimation

Alongside the bottom-up technique, we estimate features by analogy. For your project, we take previous similar projects and use their cost and time data to estimate the cost and time for your project. At Globaldev, we believe that real time obtained in similar previous projects is the best indicator for predicting the time required for a future project; it’s much better than estimating from scratch. 

Given our ten-year experience on the software development market, we’ll know what potential problems can arise, how to work with different development tools, and how to create the business logic for your project. Thanks to our internal practices and software development standards, we won’t spend time examining these things but instead can use what we’ve done on previous projects. Accordingly, the estimate will be lower. 

agile_project_cost_estimation_or_how_we_estimate_at_steelkiwi_image_4

Source: globaldev.tech

#4 Expert judgment

It sometimes happens that our new projects require functionality we’ve never developed before. Say you have an idea to integrate voice search into your application. As we’ve never done this before, we turn to our experts and count on their expertise to estimate this feature.

agile_project_cost_estimation_or_how_we_estimate_at_steelkiwi_image_5

Source: globaldev.tech

Though every company has subject matter specialists, it’s impossible to have expertise in all things. In case we lack in-house expertise, we hire external consultants. By doing so, we fill a skills gap, keep up to date with the industry, and provide accurate estimates.

#5 Finalization

Lastly, our management team reviews the estimates made by developers and experts and decides on a precise number. We create a spreadsheet file, draw up final estimates, and send this document to you. If you decide to include new features or make some modifications, we re-estimate.

What does an estimation document for software project look like?

At Globaldev, we create an Excel file that comprises data on all costs, time, and human resources for the project. This file will include different tabs according to the services provided and a Summary tab where we sum up the approximate total hours. 

estimate

Source: globaldev.tech

The Summary tab includes the amount of time for development, bug fixing, architecture planning, and risks (challenges). It also outlines the number of sprints, developers, and meetings for each department (backend, frontend, iOS, Android, design, QA, and DevOps).

A tab for development services includes functionality, descriptions, risks, and hours. Like Yontent, your application will need registration and login functionality. In this case, your backend estimate tab will contain the following information: 

  • Functionality and components: All necessary functionality broken into small parts. Take the social login feature as an example. We would break it into smaller tasks: the social authentication mechanism and authentication credentials, Google+ authentication, Facebook authentication, and Twitter authentication.
  • Description: Notes on features (if required). In the case of resetting a password via an email link, we would specify what the password reset flow looks like: request ➝ confirm ➝ new password ➝ success.
  • Risks: Challenges that may occur while implementing a feature.
  • Hours: The number of hours required to complete each task.
agile_project_cost_estimation_or_how_we_estimate_at_steelkiwi_image_7

Source: globaldev.tech

We hope this guide has given you insights into what estimating techniques for agile projects are used by Globaldev. If you want a free consultation with our team or want to get a rough estimate for your project, get in touch with our sales representatives.