Definition and Analysis of Requirements


Let’s begin with one basic premise: most of your clients will be notoriously bad at helping you to define the requirements for the project. Not long ago, I had a good friend who wanted to build a website for his business. When I sat down with him, I asked the steps that would be required to complete an online transaction. Weeks later, he still couldn’t define them satisfactorily and eventually gave up on the whole idea of the website. There were so many fine points to my friend’s business that he found it impossible to lay it out in a step-by-step format.

Many times, failure to communicate the needs is not the only problem. Clients will frequently have inadequate expectations for time and budget. They will fail to realize the steps involved.

Clients are not the only problem. Consultants often fail to do an adequate “needs analysis” or communicate the needs adequately. In the end, they will not produce what the client was expecting, putting a strain on the client-consultant relationship.

You must begin with a fundamental question:

What problem does the software need to solve?

You and your clients must agree on the problem and the solution. Clients must fully understand the resources that will be needed and what they will get in the end. If the clients’ resources are limited, they must understand that finished results may not fully meet all of their expectations. It is most important that these agreements are established early in the process.

As a consultant you must fully communicate what tools you will use, what they will and won’t do, how long the project will take, what other people and resources may be needed, and what expectations the client will need to meet.

It has been my experience that putting all of this on paper is a great eye-opener. It not only forces everyone to analyze the project more carefully, but also provides a reference should there be disagreement later.

In the case of large projects, or projects with limited resources, they may need to be implemented in steps. As an example, you might first implement a database project to track inventory, then add a module to process client orders, then develop mailing lists, and so on. Teams of people might need to be hired. You will find that in large projects, most developers cannot be an expert on everything. Each person on the team should contribute a unique solution to a specific problem.

Even if you run a small business and are doing a Microsoft VBA project on your own, put your requirements on paper, analyze your resources, and study what will be required to meet your needs. You will be consultant and client all in one.

Once you have carefully defined the problem to be solved, you’ll need to study the requirements and determine the tasks that the software will perform.

Analyzing the Requirements

Needless to say, analyzing the requirements is closely entwined with defining the problem. As you study requirements, you will uncover additional problems. This is the point where you must define exactly what the software needs to do. When I teach software development, I ask my students to perform an exercise. I ask them to study the steps they take in the morning to get ready for work or school and list them. It may come out something like this:

  • Get out of bed

  • Shower

  • Have breakfast

  • Leave for work or school

Next I ask them how they would translate the steps into a computer program. In software development, this is called developing an algorithm. An algorithm consists of the steps needed to complete a given task. To develop the algorithm, you use a list of the steps, called pseudocode. This is not computer code, but steps that can be easily translated into a computer language.

In your development project, you will need to observe the steps necessary for completing a task. It helps to speak with the people doing the task and even to perform the task, when possible, yourself. You will need to have the parties involved explain what is, or isn’t, important. In some cases you may get conflicting opinions that you will need to resolve.

You will then need to decide whether the software can emulate the algorithm the client is presently using or, if it can’t, the steps that need to be changed. As stated earlier, budgetary and time requirements may also come into play.

Present your solution to everyone involved in the process. More than likely, there will not be 100 percent agreement, and you will need to make adjustments. One group of people may need the database to do report A, while another group may require the database to do report B. However, the database may require a different structure for A than for B. Sometimes a compromise may need to be established in order to make it work.

Once you have resolved any conflicts, get the parties involved to sign off on the solution before work begins. This could save a lot of conflict later on. Now that you have developed the requirements, and have all parties in agreement (or as close as you can get to agreement), you are ready to evaluate whether the requirements will work or not.




Access VBA Programming
Microsoft Access VBA Programming for the Absolute Beginner
ISBN: 1598633937
EAN: 2147483647
Year: 2006
Pages: 214
Authors: Michael Vine

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net