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:
- 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.
- 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.
- 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".
- 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.
- 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.
|