Tips for collecting Customer Requirements
 
  May 2003 - Pragmatic Software Newsletters 
 
 
Increase Productivity by 50% by Collecting Solid Requirements
In this month's newsletter, we discuss tips for collecting Customer Requirements.  According to a study conducted (by Vosburge et al. 1984), productivity of software development can be improved by 50% when customers have a "high" level of participation in specifying the requirements.   This newsletter will aid you in collecting solid customer requirements and documenting those requirements to maximize team productivity.

 

Newsletter Sponsored by Software Planner

This newsletter is sponsored by Software Planner: http://www.SoftwarePlanner.com

Software Planner is a project collaboration tool that allows you to manage all phases of your software development. In the initial stages of the project, it allows you to post functional specifications and post project related documents (like meeting minutes, client proposals, etc.). As the project progresses, it allows you to post baseline documents (like detailed designs and project plans). As development proceeds, it allows your project managers and developers to track project deliverables.

The developers can update the percentage complete for all items assigned to them. Once testing begins, it allows your testers to create test cases and track software defects. Developers are automatically alerted, by email, as defects are assigned to them. Team members are alerted as new documents are uploaded or re-uploaded (like project plan updates, etc.). And each person has the ability to control the email alerts they wish to receive. Use the discussion forums to communicate all issues with clients and project team members. Keep your appointments and to do list on-line and updated at all times. Try Software Planner FREE for 2 weeks.

 

Tips for collecting Customer Requirements

Often customer requirements are stated vaguely and other times requirements are not documented at all.  When this happens, customers view the requirements broadly, while developers view the requirements very narrowly. 

For example, a vague customer requirement may be to create a logon page for your application.  The developer may be thinking that the end user will enter their email address and password, have this information authenticated, then allow the end user to log on to the system.   The customer, on the other hand, may be thinking:

  • The logon process will authenticate the end user
  • The logon process will allow the end user to change their password
  • The logon process will allow the end user to store their login information for future visits
  • The logon process will allow the end user to send an email to the security administrator asking for security clearance to certain areas

As you can see, the effort for creating a simple logon page (entering of email address and password and authenticating it) is much less than the effort for creating the bells and whistles the client envisions.  Unless the exact requirements are documented and agreed upon, the project can slip due to the additional effort the client envisioned.

Below are the keys to successfully collecting customer requirements:

  1. Make the requirement very specific - Be sure to include a narrative that explains the requirement in detail.  Be specific about how each feature will work. 
  2. Create a Prototype - Create a prototype for the feature to ensure that your developers and your customer agree on the features and the presentation of the feature.  You can quickly create a prototype using Front Page or any other HTML editor.  If there are buttons on the page, explain in detail what will happen as the buttons are clicked.  Attach a "screen shot" of your feature to your documentation of the customer requirement.
  3. Specify "outside requirements" for the Feature - In the example of the Logon page, you may have "outside requirements".  One example is security requirements (passwords must be changed every X number of days, must be a mix of alphanumeric, numeric, etc.).   Another example is data conversion requirements (you may need to write conversion scripts that convert all users from your Windows 2000 domain to users for your system).  Another example is performance and response time requirements (when a person clicks Logon, they must be logged in within 5 seconds).  These are few examples, you must evaluate all "outside requirements".
  4. Document each Customer Requirement - It is wise to create a template that you use to define all your customer requirements.  The template will jog your memory to ask specific questions as you define the requirements.  As you collect your requirements, document them based on the template.  This allows you to print your assumptions and discuss them with your client.  If you would like a template for customer requirements, go to http://www.pragmaticsw.com/Pragmatic/Templates/FunctionalSpec.rtf.
  5. Get Developer and Customer Signoff - Have your developer and customer sign the customer requirements document so that you can later refer back to it, showing that both parties agree to the requirement.

As you can see, collecting solid customer requirements can ensure that your projects are delivered on-time and on-budget, allowing your client to document that you delivered exactly what was agreed upon.  If you would like a template for creating customer requirments, go to http://www.pragmaticsw.com/Pragmatic/Templates/FunctionalSpec.rtf.


 

Pragmatic Software Co., Inc.
383 Inverness Parkway
Suite 280
Englewood, CO 80112

 

Phone: 303.768.7480
Fax: 303.768.7481
Web site:
http://www.pragmaticsw.com
E-mail:
info@pragmaticsw.com