Posts

The Custom Software Question: To Build or To Buy?

If you’re like most businesses, you use software on a daily basis for critical functions: managing projects, sending invoices or tracking inventory. The plan for most businesses is to buy a mass market, shrink-wrapped off the shelf (OTS) application, like Quickbooks or NetSuite. And that is a huge mistake. Often OTS solutions only meet 30% of your business’ needs. When the functions are vital to your business and deal with core processes, it is important to use a solution that you are in control of. As software is essential for your business, consider the distinct advantages that custom software has over an OTS solution: Custom software is:

  • A customized glove fit for your business’ specific needs: Before the building begins, the software company sits down with you to understand your processes and then develops the software specifically to your day-to-day functions. In OTS solutions, it is the other way around: you are forced to conform your processes to the software. With a custom solution, you monitor and control the entire process.
  • A solution that comes with local, personalized support: Do you currently have 1 or 2 technical software staff members that support your custom software solution? If one of those team members were to leave, how would your current custom software system be maintained? You’re currently completely dependent on their knowledge of your system. When working with a professional, reputable software company, you have access to an entire team of developers who understand your system and are ready to help.
  • A lower cost than other options: You may be under the impression that custom software is costly. However, on a per-user basis, or when calculating the ROI of the custom software, it turns out to be much more cost-effective than limited OTS solutions. Additionally, once you have hired a company to develop the software for you, you reduce the need to pay for costly individual licensing.

The bottom line? It’s better for your business to create a custom software application, rather than continue to have frustrations, high costs and limitations with your current system.

What methods are used to estimate custom software?

There are two primary methods to estimate and propose custom software projects that we hear about. Those methods are:

  • Fixed cost – The development team may attempt to estimate the time and costs related to creating a software application. The estimates are normally generated using a requirements specification document, which defines what to create in the software application. They may also add some type of fudge factor to the estimate to give them more time in the estimate to complete the project within the estimate. If the time and costs go over the estimates, then the developers cannot charge the customer more than was proposed with the fixed cost estimate.
  • Time and Materials – There may be an attempt to estimate the time and costs of the software project. There may be a written requirements document to use for the estimating. Most often though, the developers will work until the application is complete, and then bill the customer for the time and costs spent.

The Fixed Cost method of estimating and proposing a project can be a good method to use, only if the estimate is relatively accurate, and doesn’t have an excessive fudge factor. If the estimate isn’t accurate then there can be serious trouble in the project. What often happens is that the developers go over their costs and time in the project, and realize they can’t charge more for the project than their additional work, or the customer won’t let them charge more for the project because it was defined as Fixed Cost. Sometimes quality and schedule in the project will suffer significantly. The developers don’t want to continue working on the project essentially for free. But the customer wants the project done. Then the developers will continue work, but the project will become a much lower priority project, because they want to work on paying projects to keep the doors open.

All-in-all it can turn out to be a very tough situation.

Some software development companies can make fixed cost projects work, but there are many more that can’t.

Time and Materials projects are also tough. They can sometimes not work out well because there is little to no clear definition of what software will be created, how it will work, when it will be done, and how much it will cost. The project’s features, cost, and schedule can creep continuously until the customer gets frustrated, cancels the project, and reluctantly pays the costs for time spent on the project.

We have found that what works best is a slight modification of the fixed cost project. That works when:

  • The project plan and software’s requirements are very well defined
  • There are clauses in the project’s contract that requires the customer to pay for changes to the applications features if they requests changes that aren’t in the original requirements specification documents, and
  • When the developers working on the project are experienced and and successful at accurately estimating projects.

We use this last method. We make sure the requirements are well defined, no matter what type of project it is. Our contracts always have the clause which states that if the customer changes the requirements it is a Change Order, and our developers are very good at estimating projects.