Click to Print

At Your Service

You can't custom-order an outside software developer, but you can still find what you need.
October 1, 2000
URL: http://www.entrepreneur.com/article/32502

Need to track customers' orders on your Web site? Or create a customized internal billing system? Unless you're technically inclined, trying to develop custom applications for your business is like ordering dinner in a foreign country-but with more risk. It's one thing to waste money on a meal you didn't realize you asked for; it's another thing altogether when your company makes the mistake of pouring thousands of dollars into a project that doesn't pan out.

No matter what software development project you want, you can make it succeed even if a technical person isn't on staff. Here are some tips for working with outside developers:

In your first consultation with any developer-include people familiar with your current applications and those who will be using the customized software. Current users can offer additional insight into your software needs, while new users may be better able to explain the specifics of the desired functionality.

This should not be the only meeting you have. Just handing over a list of needs and expecting the developer to determine what comes next could be disastrous. Provide a lot of input in terms of developing the on-screen displays and the actions users should be able to take on each screen. Although awkward interfaces may work fine technically, they can result in dissatisfied users. To get the best results, you and others on your staff should constantly play an integral part in the development process.

Regardless of the method you choose, make sure to ask potential developers what they think will be the trickiest issues to resolve. Even if you don't understand everything they talk about, you can definitely get a sense of how well-thought-out the recommendations are by the developer's ability to explain his or her position.

Find out how the software will grow with you. In this ever-changing age of technology, you don't need software that can't change with the times.

Compare the services offered by different developers and try to get the most for your money. But look beyond their skills; expand your focus and consider the overall software development package. You might not realize where the saving graces will actually lie. For example, one developer might offer to provide several prototypes for you along the way and then use your feedback to make necessary changes before the code is locked down. In the unfortunate event that you need a major redesign on the software, such a provision can save you from potentially draining costs.

Still, a successful project requires more than just great programming. Whether you work with a freelancer or a team of people, you should seek out developers who can create a formal specification-that's a document that details the functionality from a functional and technical perspective. Also look around for developers who "comment code" well-that's tech talk for adding notes that describe what the code does. It's money well spent to ensure that others can extend your application in the future.

Despite the many hours spent poring over your needs and the desired results, it's almost a given that changes or minor adjustments will have to be made to the application after installation. Will the developer be able to handle those adjustments after he or she gets your initial feedback? And how will that factor into the price? Don't be caught by surprise at the tail end of this arduous process by a series of "extras"-get answers about costs in the beginning.

The other side of testing is fixing mistakes, or debugging. Will your developer be able to assist with this after the software is installed? Some firms bundle implementation and training into the software development package, so this might just be part of the deal. If it's not, make sure you have a trouble-shooting plan in place before your developer heads for the door. Going one step further, ask your designer what skills are needed to tackle these issues in case you end up scrambling to hire someone specifically to fix the bugs.

It's particularly critical to establish ownership of the software when discussing a software development agreement. You might be surprised to know that ownership of the intellectual property is not an automatic inclusion in the transfer of the software from the developer to the client. Depending on your needs and wants, you could negotiate to be the sole owner, to merely have a license to use the software or any number of options in between.

Software Developer Lingo

Application (app): a synonym for software program or software

Architecture: refers to the design of software or hardware, or to how the software and hardware work together to perform tasks. The architecture of a software program maps out the complete functionality of the application.

CAD (computer-aided design): CAD programs have replaced the drafting board as mission control for industries in need of multifunctional modeling and design systems.

CBT (computer-based training): software that allows users to create multimedia applications. Authors can combine text, audio and other elements to create a training manual, interactive resume or any number of other programs.

Client/server: This type of software enables your computer to communicate with a centralized server. Client/server software is critical if a company wants all employees to have access to information without loading that information onto every computer in the office.

GroupWare: software that allows users to share ideas, exchange information or work on the same project from different locations

License: A license is often what you actually pay for when you buy software. You aren't buying the software, but rather the license that gives you the right to use it on one computer (though some licensing agreements vary depending on the situation).

MiddleWare: refers to programs that connect two separate applications. MiddleWare is often used as the glue between database and Web-based applications-sometimes referred to as plumbing.

System requirements: a general term used to describe the capabilities a computer must have in order to successfully run a particular program. Most system-requirement information includes the minimum needs for memory (hard drive and RAM) and processor speed, what type of operating system the program can run on, and whether a CD-ROM drive or Internet access is required.

User interface (UI): User interfaces are what you see when you use a program, such as taskbars, pulldowns, scroll bars and so on.


Mie-Yun Lee is the founder and editorial director of BuyerZone.com, the Internet purchasing hub for small businesses. Doreen Vianzon contributed to this article.