It almost qualifies as a law of nature: As a business grows, so does the complexity of its computing needs. Working with old software applications that were cutting edge a few years ago say that DOS-based inventory management program or green screen database today will probably make a company less productive and therefore less profitable. For many businesses, the answer to this conundrum is to jettison their tried-and-true off-the-shelf applications and switch to custom-built software.
Be warned however, if you've never developed custom applications before, you're likely to find it complex, frustrating, and most of all, expensive. "There's no limit to how much custom software can cost," cautions Jim Townsend, president of Information Strategies, a Washington, D.C., custom developer.
It can be done, however. We interviewed a number of small businesses who have entered this world of custom code and the developers who helped them there. We mined them for their tips and tricks to make the transition as smooth as possible. Here are their suggestions.
Signals for the Switch
Because switching from off-the-shelf software to custom applications isn't easy, it's best to wait until it's absolutely necessary. Bend over backwards to make off-the-shelf software work, our experts say. But when do you know when that time to go custom comes around?
Start by looking ahead at how custom applications will improve your business, or by reacting to the failings of your current software. Townsend clearly prefers the former, more proactive approach. In particular, he says that one key is how a company interacts with customers.
"Go custom if it allows you to innovate with your customers," he says. "For instance, a Web interface that customers can use to check on orders can give you a competitive edge. That adds value, and adding value is the key."
Another way to know is if the solution will provide better support for mission-critical business practices than the current software. "Say you want to automate your supply chain and there's no off-the-shelf solution," Townsend says. "By creating a custom application, you can reduce the inventory you carry, provide better customer service, and differentiate yourself from your competitors." Then, he says, it's worth the hassle to create custom software.
According to Maureen Wolff-Reid, president of Sharon Merrill Associates, a Boston investor relations agency, another trigger is when an application becomes unwieldy. "Managing our database stopped being efficient. We had to go into every database and update the same information every time the information changed," she recalls. "It definitely took time."
Take this case one step further. What about when end users in an organization are tweaking the application with no centralized control? "We had our database on FileMaker, and the thing that was great about it also became a liability," says Kimberly Fox, president of Upstart Communications, an Emeryville, Calif., public relations firm. "FileMaker is so user-friendly that people taught themselves how to change it." As a result, the company contact database, which is central to the public relations business, became a potpourri of changes made by individuals. That, in turn, led to instability.
"The robustness of the database became mediocre," says Reuven Travin, Upstart's vice president of information systems. "Once a week, we'd have to restore a corrupted file. It got to the point where it just wasn't behaving."
One other major indicator it's time to go custom: People aren't getting the information they need on a timely basis to make sound business decisions. "If people in management, sales, and marketing aren't getting the information they need to make key decisions, then you have a problem," says Mark Wotell, president of Coconut Code, a Deerfield Beach, Fla., custom software developer for the hospitality industry. "For instance, you may need raw sales data, since sales drives everything." In many businesses, you must get your hands on that data quickly. Outmoded systems will slow you down.
Who to call?
So you've decided it's time for custom software, but who will create it? Feeling fancy? Hire a programming staff. That's what Fox and Upstart Communications did.
Fox says she first tried hiring somebody from outside, but that didn't work. "For somebody outside to do it right, they have to live in your skin," she says. "They really have to understand your business practices and your culture. It cost about $40,000 before we realized that it wasn't going to work the way we wanted. We were lucky that Reuven could handle it. He understands our business process."
Fox acknowledged, however, that many small businesses can't afford to hire a full-time employee to create custom applications. She and our other experts agreed that, if you do decide to hire an outside consultant to create your custom applications, act like you are hiring an employee.
"Rely on references," urges Townsend. "Particularly give credence to references from your friends and colleagues. It's good if somebody has good word of mouth."
There are no rules to accurately estimate how much creating custom software will cost. Our experts agree on one thing, however: It will be more expensive than you expect.
Townsend notes that there are three types of outside contractors you can hire. The first is the independent contractor who typically charges $50 to $75 an hour. "These guys can typically do something meaningful for $5,000 to $10,000," although your mileage may vary, he says.
At the other extreme are the large consulting firms like Arthur Andersen. "We're talking about multi-millions of dollars they'll spend a million dollars just to do an analysis," Townsend notes. As a result, this solution rarely is appropriate for small businesses.
The middle ground is small development firms that typically charge between $100 and $150 an hour. The costs from these vendors can range from $10,000 for small projects to well into six figures. Some firms won't get involved with a project unless it is worth a certain amount of money. You should know this from the beginning of your conversations so you don't waste time discussing a project the vendor won't build.
Be prepared to go over budget if plans change in mid-stream or if you aren't specific about what you want the application to do, our experts note. "We got bids between $10,000 and $60,000," recalls Maureen Wolff-Reid. "After we selected the person, her bid initially came in at the $12,000 range. But we kept adding to the project."
Before deciding on who can best do the job, look at certifications. Many development firms, and individuals within those firms, receive vendor certification for a specific type of work, such as creating custom applications based on the Microsoft BackOffice platform.
Also, look at their past work whenever possible. That, of course, is easiest when the application is on the Web, but still ask prospective vendors to see their portfolio.
In addition, Townsend urges you to know the precise person in an outside firm who will be doing the work. "It doesn't do any good if an outside company has some brainiac PhD if that person isn't going to actually work on your project," he says. Some firms will trot out their best people during the sales process, but you may never see them during the project, a practice Townsend refers to as "bait-and-switch." "Make sure they specify who will be doing the work and interview those people. Success boils down to specific individuals," Townsend says.
Like Fox, Wolff-Reid advises finding somebody who is knowledgeable about your business. "Because our person came from the financial services industry, she knew precisely what we wanted to do," Wolff-Reid says. "The others didn't have a good understanding."
Wotell also says that it's tempting for many small businesses to use somebody they know but, often, that temptation should be resisted. "You need a big enough firm that there is redundancy," he notes. "Your brother-in-law might be able to create the application, but what if he's on a fishing trip when it blows up in your face?"
Information Strategies' Jim Townsend describes the process this way: "It's like a home remodeling project and you decide you want to rig it so that, when you start the shower in the morning, the coffee automatically starts brewing. That would be cool, but it's not really necessary, and it has some serious cost implications." Put differently, you will lose control of the project and the cost unless you are very specific about what you need. And, once you're specific, you must stick to your plan. If you don't do your research in advance, you'll end up in a Catch-22 situation, our experts agree.
"You must tell the software developer how the application should work, but many small businesses aren't sure how it should work," says Townsend. "The developer can only do what you tell them to do, so the danger is that they will give you exactly what you asked for."
It's essential to keep expectations reasonable. To do that, talk with businesses and information professionals who have developed similar applications, but who don't have a stake in the project.
Another important way to manage the process is to break it down into phases. "That way, if you're unhappy with how it is turning out, you can turn the contractor loose and let somebody else do it," says Townsend.
Wolff-Reid says that another way to control the project is to limit the number of people involved. "We had a task force with six people and they funneled information to the consultant," she says. "They were responsible for managing the project and testing. It gave us a lot of ideas, and they were able to test it before we rolled it out to the rest of the staff."
If you have the time, they have the code
Many businesses underestimate the time it takes to create custom applications. "The customer has to be deeply involved in the process, and it can eat up a lot of time," says Townsend. "You can't give the developer orders and walk away."
"We didn't realize was how much time it would require from us," says Wolff-Reid. "It was much more than we ever anticipated." That was particularly true while transitioning from the old system to the new. "We would give her five databases at a time to transition into the new system, and, while she was doing that, those databases couldn't change." As a result, all information added during that time had to be stored separately, then added manually.
Giving the project enough time at the front end will prevent problems later on. The experts agreed that it is less expensive and time consuming to front-load the process than fixing an ill-conceived application later. The best way to do that is to transmit complete instructions to the developer. Townsend says this means writing specific requirements for the applications, a document that can easily be 100 pages just for the basics, he says. The document must contain input from many people in your organization.
"You have to touch every group of users in the organization and pick their brains so that the software reflects your business process," says Townsend. "Think about what reports you want, how you want it to look, and lots more."
Instead of delivering a finished product, you'll want the developer to provide a prototype so you can see how it works. "You need to test the prototype to see if it really is what you wanted. After that, as you get close to actual release, you have to do user acceptance testing to make sure the users are satisfied," says Townsend.
Yet another time-consuming process is creating user documentation. The bottom line is that developing custom software takes longer than you expect. "It took us a full twelve months, which was about six months longer than we expected," says Wolff-Reid.
One more thing: Don't forget about training and maintenance after the application is finished. Wolff-Reid, for instance, says her firm pays $6,000 a year to keep theirs up to date.
Is it worth all the expense and trouble to create custom software? The answer is yes, particularly if it gives you a competitive leg up. "If you do something that successfully differentiates you, you've added to your business' value," Townsend says.
"In the long run, we got a lot for our money," says Fox. "The question is whether we have a technical infrastructure that supports our strategic business goals. Now, we do."