Microsoft Office 2000/Visual Basic Programmer's Guide   

What Do Your Customers Need?

What your customers want and what your customers need aren't always the same thing. Customers may say that they want a particular type of solution because that's what they're familiar with, or because they've seen the technology and think it's cool. As the developer, part of your job is to figure out what solution will best fit your customers' needs, and present persuasive evidence to your customers. That said, keep in mind that in the end, the solution your customers want takes priority over the solution that you want to build. If you can't understand why your customers want a particular solution, it may be that you simply don't understand their needs well enough.

To figure out what your customers need, look at your customers' existing solutions, if there are any, and their business process. For example, if your customers want to create a database to track accounting information that to date has been managed on paper, review the paper system carefully so that you can model the solution on the existing system. Of course, in the process of modeling the existing system, you may find ways to enhance the system within the solution and make your customers' business process more efficient.

Next, find out who will be using the application, and how they will use it. Interview as many people as you can who have used the existing system, or who will use your solution once it has been created. If you're dealing with only one person to create an application that will be used by several people, it's possible that you're getting only a narrow perspective on what the solution needs to do.

Who will use the solution and how they will use it can make a big difference in your design. For example, a database in which multiple users may be entering data simultaneously across a network requires a different design than a database that's managed by one or two people who enter data and then generate reports for other users. The first solution may require record-locking management, full-fledged security, and a means of distributing the front end across a corporate network. The second solution can probably get by with no locking management, minimal security, and a common network share for those using it.

A detailed understanding of your customers' data and business process is crucial to creating a well-designed solution. Spend some time analyzing their data and asking questions about it. Again, it's quite possible that the current solution does not store the data in the most efficient manner. Rather than duplicating this inefficiency, you'll want to improve it if possible — with your customers' agreement, of course!