A Simple Guide to your Software Project Estimation

Simple Guide To Your Software Project Estimation

Hidden costs to consider before investing in the development of software systems for your business

You can’t touch software or feel it. But you know it’s there. Right beneath your digital screen. However, this invisible software has the power to make your business’s graph grow towards Y-axis or decline to X-axis.

Therefore it is crucial for you and your business to understand the nuances of your software project estimation, related costs, and software development time estimation.

A study conducted by McKinsey found that 66% of enterprise software projects have cost overruns.

Summary

In software project estimation or software costs estimation, people often overlook certain hidden costs that are involved during various stages of the lifecycle. The focus generally narrows down to the cost of software development, which is significant, — however, it is just one of the stages in the process (just like a soup or starter).

Hence let’s delve into different phases of a software project and costs involved with those phases.

Need Analysis: The Hunger

As a decision-maker, you must invest in the ‘need analysis’ phase. Let’s not forget that software systems are expected to should address a business need. Better the need identification and analysis, higher the chances of software systems implemented to address the needs.

This activity involves time and commitment from various stakeholders of the business, including target end-users of the system. Having brainstorming workshops & surveys with these stakeholders will help pinpoint the pain areas of the users/processes and define the solution approach more effectively to get software development time estimation.

The cost headers in this phase include:

  • Time of stake-holders (Project Sponsor & End Users) in brainstorming workshops and surveys.

The majority of the software implementations fail simply because Need Analysis was either not done or key stakeholders were not taken into confidence before finalizing the project scope.

Project Definition: The Menu

After need analysis, quality efforts need to be spent on clearly outlining the project definition. Project objectives should be defined in a quantifiable format so that the proposed software system’s success could be measured against them.

The term ‘quantifiable’ is critical over here. Loosely defined objectives would make your task challenging to validate the success or failure of software project estimation.

Some generic examples to refer to while formulating your project definition are “reduce production time to XX days,” “increase revenue by 20%”, “increase conversion rate to 30%”.

Needless to say that you should be reasonably aware of current benchmarks before outlining the goals in the project definition.

The cost headers to determine software project estimation in this phase include:

  • Time of stake-holders (Project Sponsor) in defining quantifiable goals for project definition.

Software Development life cycle

Requirement Detailing: The Food Plate

Requirement detailing being a significant aspect of the project lifecycle— it is essential to ensure this activity is done diligently. As a decision-maker, you want to make sure the requirements are defined in a way that it successfully achieves the goals set in project definition.

Due efforts are to be spent in validating the requirements and, if possible, verify the degree to which it will be fulfilling the desired objectives. This can be done by various artifacts that could be produced in this stage to capture the requirements effectively for software project estimation.

Examples here are User Stories, Storyboards & Mockups, Technical Proofs-of-concept to validate the feasibility of specific requirements, etc. The stakeholders also need to carefully capture the non-functional requirements related to performance, scalability, security, etc., which are vital to the success of the project.

Jumping directly into design & implementation without much emphasis— may lead to an unplanned and iterative development approach, which could make the project expensive.

The cost header in this phase includes time consumed by:

  • Stakeholders in defining functional & non-functional requirements of the project.
  • The development team in preparing artifacts like User Stories, Storyboards, Mockups, etc.
  • Stakeholders (Project Sponsor, End Users) in the validation of User Stories, Storyboards & Mockups, ensuring they’ll serve the purpose.
  • Time consumed by developers in implementing Technical PoCs

Design: The Salt

The scope of design phase of a project is often mistakenly reduced to aesthetical aspects like User Interface (UI) and User Experience (UX). In actual sense, for a software development project, the design phase has a lot to do with the technical design of the system. Key decision-making related to non-functional project requirements are to be identified and planned for during the designing stage.

Few of these design decisions may also include using third-party/ready-made components, which may further call for implementing Technical PoCs to ensure these components are capable of achieving what is expected from them.

The cost header to determine software cost estimation in this phase includes time consumed by:

  • The development team in preparing UI Designs, Technical Architecture Design, etc.
  • The development team in implementing Technical PoCs.
  • The stakeholders in reviewing the artifacts produced by development team.

basic estimation

Source: https://courses.cs.washington.edu/courses/cse403/07sp/assignments/estimationbasics.pdf

Implementation: The Preparation

The implementation phase should ideally be a mechanical job, provided previous phases are well thought and executed. That said, even in the most basic form, there should be a mechanism in a phase where the project stakeholders should be able to review the progress made and validate whether development is progressing with the right momentum and in the right direction.

Such review workshops could be conducted on a weekly, fortnightly, or monthly basis depending on size and complexity of the project. Without proper milestone-based or sprint-based progress review in place, you have a high risk of failure.

The cost headers to determine software project estimation in this phase include:

  • Time consumed by the development team in project implementation (coding, quality testing, project management, demos, bug fixing, etc.).
  • Time consumed by stakeholders in review and feedback sessions.
  • Cost of procurement & licenses related to development tools, development, testing & QA infrastructure, third party components, etc.

Read More: 5 Things to Consider while Building Software for your Organization

Go Live : The Serving

Rolling out a software system is a critical event, and you expect everything to work perfectly in the production environment. To ensure a successful launch of the software, it is essential to ensure that the system is working as expected.

Development team has done their job in coding and testing the software in development and QA environment. However, now it is responsibility of the stakeholders to perform a thorough UAT (User Acceptance Testing) of the software before moving to production.

This activity is done by the project sponsor and few selected end-users of the proposed system (preferably covering all the user-types) to use the system as if in production and validate the behavior against features identified in ‘Requirement Detailing’ stage and objectives set in the ‘Project Definition’ stage. This phase might also include activities training of end-users and IT support team to handle ‘Level 1’ support.

In parallel, the development team also ensures that the production environment is set with all the required infrastructure & deployment pre-requisites.

The cost headers in this phase include time consumed by:

  • Stakeholders in UAT activities.
  • Stakeholders in Training activities.
  • The development team in setting up production environment, smoke testing the system in a production environment, and deployment process.

Maintenance: The Dessert

Just like any other business asset, a software system also calls for a reasonable amount of ongoing maintenance.

The maintenance phase includes some of the routine tasks involving production infrastructure health-checkup and updates, back-ups, data cleaning & archival, bug fixing & patch releases, minor enhancements and improvisations, etc. these activities include efforts from stakeholders as well as software development team.

The cost headers in this phase include time consumed by:

  • Development team in setting up automated routine tasks like backups.
  • Development team in scheduled maintenance tasks like infrastructure check-up and updates.
  • Development team in bug fixing, patch releases, enhancements, deployments, etc.
  • Stakeholders in identifying, submitting of bug fixes, enhancements as well as reviewing the completed ones.

Conclusion

Decision-makers often fail in accounting for all the aspects related to software project estimation, resulting in underestimation or, worse, compromised development of the project.

It is not always possible to account for every tiny bit of costs while budgeting the project. Still, with proper due diligence and by consulting custom software development company, you can surely minimize the deviations and mitigate risks of project failure quite effectively.

Spending years (more than a decade) in this domain and helping world-leading businesses to make the right decisions for their software needs— I would be happy to consult for your business too. Just drop me your details, and I would soon say hi to discuss your needs (the Hunger).

Don't Forget to share this post!

Pratik Mistry is a rare mix of technologist and senior business head at Radixweb. His passion lies is in helping companies to grow revenues by delivering top notch software development services and build value-based partnerships. When not driving high-impact go to market strategies, Pratik loves to try new cuisines and going to the movies.