How to Evaluate Software Development Estimates

John Horner
June 30, 2020
15 min read
custom software code

Whether this is your first time developing a software solution or a core part of your job, you will learn very quickly that custom software development is not a commodity. 

Software development is about choices, trade-offs, innovation, and foresight. A team of engineers may work with similar tools as another development team, but they will build completely different solutions based on the decisions related to these trade-offs, and their own experience, knowledge, and skills. One solution may be better to build “quick and cheap” to demonstrate a proof of concept; whereas, another solution may need to evolve and scale for years to come.

The first step in finding a vendor that you can trust in developing a software solution that will help you realize your vision is understanding the factors that affect your project’s cost, quality, supportability, and scalability. In your search, you will likely find that software development project estimates can vary greatly depending on a wide range of these factors. 

John Horner explains why software project estimates vary and how to get the maximum value out of your solution.

If you are evaluating multiple estimates, we will explain why project estimates vary and how you can use this pricing to select a solution and vendor that is perfect for your specific project needs. 

What Are the Factors that Result in Software Development Estimate Variations? 

software developers

As you review proposals from software development companies, you will see differences that affect how they estimate their proposed solution. The following are factors that may explain why you are seeing a range of estimates:

Development Rates

The adage, you get what you pay for, certainly applies to custom software development. There is a concept in software known as 10x engineering where “rockstar” programmers are at least ten times more productive than average or mediocre programmers. They not only write code significantly faster, but they also write better code because they are talented, focused, and are always learning new skills to better themselves. These are the people you want to work on your project when you value quality. 

View Our Software Service Catalog

Development rates can differ significantly from one company to another based on the type of company and the quality and speed of their work. There are four general options you can consider when searching for vendors:

  • Overseas (Offshore and Nearshore) developers usually charge a much lower rate per hour. But the lower development rate could come at a price as their skill level, productivity, and quality of work often are too low for business-critical software projects. If you are investing in throw-away proof-of-concept work, this may be an option. However, if you are looking for developers to build a system that will affect your business’s day-to-day operations, low-cost developers are not the answer. Far too many large projects developed by low-cost developers never get past 80-90% completion and have to be started over from scratch. 
  • Freelance developers and small development companies may be able to take on non-business-critical development projects. We would caution against choosing them for larger and more complex projects, especially those requiring long-term support or need to evolve and advance over time. After the initial development project is done, you may find that a freelance developer or smaller development company will move on, and you are forced to look elsewhere to find support or help to advance your system. Individuals and small companies also may not have the breadth of resources to provide a high level of project management, quality assurance, or ongoing support needed for business-critical systems. 
  • Large software development companies will often have more rigorous processes and skilled employees (remember those 10x programmers) that ensure high-quality systems. If you need a critical business system or developing a new product, larger software development companies provide rapid and high-quality development, deployment, adoption, and ongoing support of your system. They will have multiple team members devoted to development, system architecture, business analysis, project management, and quality assurance. They can also provide consultation based on their experience to add even more value to your project.
  • If you already have or are considering hiring In-House Developers, the overall hourly rate may be lower; however, there are many other considerations you will need to take into account, including recruiting, training, management, employee retention, and redundancy. You also need to ensure that your team possesses expertise in project management, business analysis, and quality assurance. And most importantly, you want to make sure you have the right number of developers to maintain optimal levels of productivity when your development needs spike and in times when development needs are low. There is often an inherent trade-off whereby you may have too few developers to develop at your desired pace, or have too many and you make decisions to work on items that might not have a viable return on investment to provide them with work.

Major Unknowns

With custom software development, every project is unique. Despite the level of planning and documentation you perform up-front, any significant project will have unknowns and ambiguities that will affect your project’s cost and timeframe.

The process of estimating the anticipated size and effort of the work can vary based on how unique the need is and the constraints and risks involved. Companies may have different methodologies to estimate the unknowns. 

Some companies may disregard the unknowns and the details necessary for project success. In doing so, they only estimate what is written down so their estimate doesn’t appear too high in comparison to others. These are often partial estimates as they may not support critical needs or include activities necessary for a successful project, like system refinement, system adoption support, and quality issues. 

Other companies will incorporate a buffer in the estimate to account for ambiguities based on their experience with similar projects. That estimate could still be 20%-30% lower or higher than actual cost based on the requirements discovered after development starts as well as the effort and size of the work required to resolve any potential ambiguities. 

If aspects of your software development project are unknown and of particularly high risk to the budget, it may be valuable to perform proof of concept or analysis work to mitigate these risks.

Partial Estimates

Yes, every software development estimate will be different, but all estimates should incorporate core components so both parties understand what’s involved to complete the project. Software development estimates should be more than just a quote. 

In addition to defining the system’s features and functionality, it should provide a detailed description of the activities that will be performed to ensure the project is successful. In other words, it should be a well-developed and comprehensive proposal.

Partial estimates are standard in the software industry. You should be mindful of the critical activities that need to be included so that you are confident the scope of work for your software project is accurate. Below are some common items that may be missing from your software proposal:

  • System refinement: Making minor changes and updates throughout a project based on your feedback that is typically at a level deeper than the documented requirements, user stories, and success criteria.
  • System adoption support: These activities include end-to-end walkthroughs, training, and pre- and post-implementation support. System adoption support should budget for what can become a long list of small functional, layout, and other minor updates and changes. These changes are typically identified by the initial users of your system and are necessary to accomplish your project’s goals.
  • Quality issues: It is important to understand how system bugs and errors are defined and whether they are covered under the cost of your project or whether you will need to pay to have them addressed. What is the definition of a quality issue? Are there performance and speed standards? What browsers or devices are supported? How are quality issues prioritized and how quickly are they resolved? You should understand how these items will be handled.
  • Project Management: Are project management services a part of the scope of your project? As project management is critical for communications, planning, and organization, be sure that any project management services are clearly defined in the estimate. 

If your estimate does not include these things, it is not complete, so you are putting yourself at risk for a higher bill, delays, quality issues, or worse. Custom software development estimates are not standardized, but they should provide a thorough explanation of the system being developed and the process to complete the project. As you compare estimates, keep these components in mind. 

What Should You Do Before Requesting Estimates?

business brainstorming meeting

You don’t want a lot of unknowns or partial estimates. You can help yourself by conveying your project’s essential needs to software developers so they can understand your vision. Remember, you are the one that knows your company best. You must be your best advocate to identify your business needs and vision. 

Understand Your Business Needs

You are going to need to do a little homework before you start speaking with vendors. Ask yourself the questions below to get started. 

  • Why are you investing in custom software?
  • Is this a business-critical system?
  • How crucial is your timeline?
  • How important is quality?
  • Will this system require long-term support?
  • Will this system need to scale over time to support different needs, processes, or usage scenarios?

Based on your answers to these questions, you should refine your list of potential vendors based on the type and size of the software development companies.

Document Your Vision & Requirements

In addition to understanding your business needs, you must clearly identify and document the core vision and requirements that your software must address. Consider these methods to gain a better understanding of your needs:

  • If you have someone in-house, like an IT manager with Business Analysis skills, task them with writing out the business needs, the requirements the software must accomplish, as well as the overall vision for the system.  
  • If you don’t have those skills in-house, consider utilizing a software consultant proficient in software technology to help understand the core needs of your business quickly. The consultant should also possess expertise in software requirements and business analysis. Your investment in these consulting services could pay off tenfold not only in software development vendor selection but also in the project’s overall success.
  • Another option is to ask a trusted third-party source (like an IT or Business Technology Consultant ) who you already work with to seek a referral for a company that can help you define your business needs and requirements.

Budgeting for a software development project can be difficult because systems are intangible before they are built. However, you should have an idea of not only how much you want to spend but also the core and essential features needed to meet your goals and bring the most value to your organization. You can and should certainly have a wishlist for Version 2.0 of the software, but understand what you cannot live without from the start.

If you need help determining the features, we prepared a post on how to write good requirements to identify your software’s features.

Doing an Apples to Apples Comparison of Custom Software Development Estimates

team discussing software results

So let’s say you did all the legwork to define your needs and determine your requirements. You have received several high-quality estimates that you feel may help your business. Now you have to choose one. Unlike comparing apples to apples, when comparing software proposals, the deciding factor typically should not be the cost!  

Most often, it is best to base your decision on your ability to partner with your software vendor. You should seek a software company that makes good collaborative decisions, can quickly understand your business and software needs, and make you feel confident they will add value to the process.

The stakes are higher than most projects given the financial investment and potential, so finding a software partner that understands what you want and can deliver is extremely important.

Tips for Finding the Right Software Development Company

Emphasize good communication: Software development projects are complex. You should receive regular status updates to know where the project stands and the progress made. When interviewing vendors, learn more about their communications processes to ensure you have a team that will keep you updated and part of the process. Some questions to consider: 

  • Will you have access to a project management portal?  
  • Who will be your point of contact?  
  • What if that person gets sick or takes an extended leave? 
  • How frequently will you receive project updates? 
  • What is the process for handling project delays? 
  • How does the design team make decisions? 
  • How are clarifications and changes in the scope handled?  
  • Are all changes to the budget proactively communicated? 
  • Do they require formal approval?

Look for a team that will put your company first: Creating a cool new technology can be a motivating factor for developers, but the ultimate goal should be to help your business achieve its objectives. Make sure any team you speak to has a clear understanding of what you want and is genuinely interested in your challenges and how to solve them. As you are interviewing potential vendors, assess their ability to understand your business’s nuances and evaluate their interest in your project. Are they asking meaningful questions? Are they providing good recommendations?

Review case studies and the company profile: You want to choose a development team that gets your business and has the skills and experience to build the proposed solution. The easiest way to do that is to perform research on the company. Take some time to look at the company’s website, read up on case studies like this one, and check reviews to get a better picture of the company and its accomplishments.

Ask references detailed questions: Any reputable software development company will be able to provide references to their past work. A referral can provide invaluable information, so use them to your advantage. Ask them specific questions about the scope of their project, their relationship to the vendor, any project outcomes, continued challenges, and other key information that will give you insight on what it will be like to work with this particular vendor. 

Turning Your Vision to Reality

Even after all of the efforts to document your vision and needs, evaluate proposals, and select a vendor, most complex software projects should still go through a more detailed Vision to Reality, Discovery, or Envisioning process. During this stage, additional development team members are often brought into the project. It is expected that the vision, value, and significant requirements for all the major areas of your project are clarified and understood by the team.  

There should be multiple meetings, subject area analysis, and exchange of documents, like wireframes and user stories, to reach a point where the vendor can develop a proposed project plan based on the defined objectives and required features. You must be an active participant in this process to ensure you are involved in the trade-off discussions and critical decisions that affect your vision, budget, and timeline. 

Throughout your project, you will likely have many smaller needs, constraints, and requirements discovered after development starts. This is fine and should be expected. Remember, you are doing something that has never been done before. But this discovery phase should help both sides understand what is needed to achieve any desired outcomes and deliver value to your company.

It is important that as you work with your project team, you continue to have supreme confidence that the full team you are working with will accomplish your goals. While many companies charge to perform this technical discovery and Vision to Reality work, you must have a mechanism to terminate a contract if your team is not living up to your expectations.

Final Thought about Custom Software Estimates

The estimation and proposal process is a major part of a custom software development project. You must be a partner in that process and identify the solutions you believe will bring value to your organization. Keep these things in mind as you compare estimates, and you should find a development team you trust to build something special and help you accomplish more!

Meet John Horner


John Horner has over 20 years of experience in the software industry. He holds a Master’s Degree from the University of Pennsylvania and has served as an adjunct professor at Drexel University and Temple University. Today, he helps customers understand the root of their business challenges and provides consultation on how to accomplish goals and create new opportunities.

Discover and Do More With Business Technology!

Get monthly business technology tips directly to your inbox.

Related Posts

Let's Build Something Great Together

Contact Us