Purchasing Custom Software: A Buyers Guide

If you are not a programmer by profession or do not staff a team of talented developers to create bleeding-edge software applications, it might be time to start exploring custom applications. Out-of-the box software can be useful, but limiting. Even worse, you may be paying for features you will never use.

Understand Your Business and Industry Trends

If you can find off-the-shelf functionality that meets 80-100 percent of your business process needs, you should buy the software. The problem is that when most people buy functionality externally it doesn't fully meet their needs. The result is a lengthy and expensive process of customizing an existing application.

So how do you know when a custom software application is the right choice? There are several indicators.

If your business is unique, meaning no software exists to support specific functions or your enterprise has outgrown (or over utilizes) the software solutions you currently employ, it's time to get a custom project off the ground. Furthermore, if your business is an enterprise that can differentiate itself through a proprietary process or unique service, it is likely that an offthe- shelf application has not been developed to manage the business effectively. "Too often people purchase software and then spend more to make it do what they want versus starting with a custom software application," says Roy Chomko of Adage Technologies.

While custom software may not be a perfect fit for all companies, it does have the potential to help those with a true need take advantage of their strengths. "When considering software to resolve business issues you have to look at what makes your business unique and whether the software you are considering can improve on that process or service," says Chomko. "Most off-the-shelf software is built to solve simple and straightforward problems encountered by many businesses."

The advantage of developing a custom software application is that you, the buyer, get to work directly with the developer - gaining complete control of the end-product, if you're prepared. However, if you do not outline very detailed specifications you simply will not get what you hand in mind.

Time is Money

Custom software can be expensive and time consuming to create. Applications that most of us use each and every day (e.g. Microsoft Word) have a great deal of resources (time and money) invested in them. As such, it is important to realize that the dividends will be based, at least in part, on the quantity of investment you initially provide.

One reason for the seemingly high initial cost of custom software is that, when done right, the application will adhere to industry standard software development methodologies - containing ample code documentation, end-user documentation, database schema documentation, etc. "Having these measures in place ensures that the business is not beholden to one provider's intimate knowledge," says Shahnul Islam of Agility Networks. "If the developer moves out of the industry, goes out of business, has changes in personnel etc, the business can ask for help from other developers who can take the helm for fixes and enhancements without having to spend an inordinate amount of time getting up to speed with the application." In short, the key to future-proofing the investment is to standardize as much as possible.

But you are a business owner and in the end one of the primary influencing points will be cost. While price will vary greatly based on the complexity of the project, to obtain an accurate project quote simply offer the developer with as much information as possible. "A detailed requirements gathering phase leads to a more complete project scope document, and this results in a happier customer as well as happy developers," says Islam.

But not all custom software needs to be all-encompassing. Need something done yesterday? "Set realistic development goals, have both parties agree to them and stick with them," says Chomko. "If you absolutely need something done fast, remove as many features and functions as absolutely possible to make sure you meet your go-live date, leaving time for testing and review."

What to Bring to the Development Table

Most valuable to developers are insights into how the application will look and function. "What really helps are wire frame designs and page layouts," says Chomko. "Wire frames are simple diagrams (these can be completed with a tool like Visio or even a simple pencil and paper) that include the layout of the page, information you would like included on the page, and links or buttons that will be on the page. Descriptions of what will happen when the links or buttons are clicked are very helpful in understanding the 'events' that can occur on a page."

Chomko suggests another aspect vital to the early development process: the creation of a site map, representing the pages that are part of the application, created in Visio or even PowerPoint. He also suggests that if you are currently utilizing any existing solutions (a database tool like Microsoft Access) it is helpful for developers to review working copies, as it helps to determine the scope of the project.

Finally, give thought as to who will have access to the application and how. Planning for security roles early in the process is important because it affects the entire application.

Custom Software Expectations When you set out to buy a custom software solution, the specifications you outline are the baseline from which the developers start working. Create detailed specifications and you'll get a better representation of your initial ideas. Create a rough outline and you'll most likely receive a deliverable that is not exactly what you had in mind. The lesson here should be that good results require participation from both sides.

"If you care about the results, then you have to be involved through the process or empower a trustworthy employee to make sure it meets your expectations," says Chomko. "It is imperative that those interacting with developers [are] familiar with the goals and requirements of the system developers are not mind readers and need to be given exact details on how your business works."

The way to ensure that you receive the software that will work for you, your enterprise and your consumers is to understand the scope of your own project. Specifications that fit the bill typically include detailed modeling, for example, block flowcharts. When designing specifications, it's imperative to consider flexibility and scalability to accommodate for future growth and unexpected changes to the system. A great deal of care should be spent setting out specifications for the project that takes these issues into consideration as well as the design, function and security of the software application.