New Page 3

Klariti Home Page

Download Templates Online

About Us Free Tools Tips Templates Affiliates Site Map

MS Word template

Project Management Primer #10 - Requirements Specification – How to define project goals

Project Initiation KitRequirements specification involves refining the project goals so you can decide what must be achieved to satisfy the 'customer'.

Requirements specification takes place before the formal commencement of a project to help identify and select the right for a solution and technology.

Note: Also known as a feasibility study or project analysis.

More typically however some requirements are thrown together (maybe in a proposal) and the real requirements specification occurs only after the project has started.

Functional Requirements

Quality Management Kit - The Quality Management Kit includes a suite of templates used to assure and control the quality of deliverables within a project. The quality process helps you to implement Quality Assurance and Quality Control measures and the Quality Review Form will enable you to review the overall progress of your project. By using the Deliverables Register, you will be able to monitor and control the current quality of your project deliverables, thereby ensuring that they meet the quality targets set out in the Quality Plan.Functional requirements are the obvious day-to-day requirements which end-users and stakeholders will have for the product. They revolve around the functionality that must be present in the project for it to be of use to them.

A functional requirement typically states as “the system X must perform function Y”. This is known as an ‘assertion’. An assertion asserts or affirms a necessary or desirable behavior for the system or product in the eyes of a stakeholder.

Without clear assertions requirements are nothing more than vague discussions which have a regrettable tendency to clutter up your desk and your mind.

Compare the two following, contrasting, functional requirements:

• Financial system must produce a detailed customer invoice

• Producing an invoice for customers is important. Invoices should contain all the pertinent information necessary to enable a customer to supply payment for goods.

The first is a functional requirement stated as an assertion. It indicates that the financial system is responsible for producing a detailed customer invoice which contains all the information.

While it could be more specific, the reader is left in no doubt as to what the financial system must do in order to be a successful financial system.

The second could be the introduction for a chapter in an accounting book. Although it states that invoices are important it gives no indication of whom or what is responsible for producing them. It then rambles on about what goes in an invoice which everyone already knows anyway. Such a statement does not belong in a requirements specification.

The second ‘requirement’ compounds the problem by looking solid but really being vague and ambiguous. What does pertinent information mean? To enable a customer to supply payment is superfluous since that's what an invoice is for. The statement, while accurate, contributes nothing towards our understanding of what the system must do to be successful.

Here are some more ‘better’ statements of requirements:

• A customer account record must contain a unique account reference, a primary contact name, contact details and a list of all sales to the customer within the past sales year

• Contact details must consist of a phone number, an address and an optional email address

• For each contact up to five separate phone numbers should be catered for

Non-Functional Requirements

Change Management Kit - Templates for Project Managers to help you Initiate, Plan, Execute and Close projects while managing staff, customers, suppliers, change, risk, issues and quality.It is essential to consider other requirements too; these are called “non-functional requirements” which, to my mind, is a bit of an oxymoron. The point however is valid, there are 'obvious' requirements that your end-users may not think about it.

Performance -Performance covers areas like responsiveness, throughput and speed of operation. What is the minimum performance that will satisfy your client?

  • Usability - How “easy-to-use” will the finished product is? For example do you cater for disabled or handicapped users? Generic ease of use should be considered. More than one product has failed by supplying full functionality with an obscure or convoluted interface.
  • Reliability - Reliability requirements deal with the continuous availability of the product to users. They should state what availability is necessary and desirable.
  • Security - In products which deal with confidential or sensitive information, security considerations should be taken into account. Requirements for different levels of access, encryption and protection should be gathered.
  • Financial - Financial considerations which will determine the success or failure of the project. For example a bank or investor might specify certain financial constraints or covenants which must be satisfied during the project.
  • Legal - There may be legal requirements that must be met due to the environment in which your product will operate. Consult a legal expert for these.
  • Operational - There may be a number of day-to-day operational issues that need to be considered. Failure to accommodate these will not delay project launch but may limit or halt its uptake by end-users once it has been launched.
  • Specialist -There might be special requirements that are dependent upon the nature of the project or the nature of the business. You should considered these separately and state them explicitly in design docs.
  • Stakeholders - Stakeholders are an integral part of a project. They are the end-users or clients, the people from whom requirements will be drawn, the people who will influence the design and, ultimately, the people who will reap the benefits of your completed project.

It is extremely important to involve stakeholders in all phases of your project for two reasons. Firstly, experience shows that their involvement in the project significantly increases your chances of success by building in a self-correcting feedback loop. Secondly, involving them in your project builds confidence in your product and will greatly ease its acceptance in your target audience.

There are different types of stakeholders and each type should be handled differently:

1. Executive - Executive stakeholders are the guys who pay the bills. Typically they are managers or directors who are involved with commercial objectives for the project. They should restrict themselves to commercial considerations and be actively discouraged from being involved in technical design, their experience and skills are vastly different to that of 'typical' end-users.

2. User - These are the guys that are going to use your product. No one knows more about what the product is supposed to do when it hits their desks than they do. No one ! Including you ! You may think you know better but if you don't listen to them you're kidding yourself.

3. Expert - Sometimes you need input from experts in other fields. People like graphic designers, support reps, sales or lawyers and accountants.

How to Capture Requirements

Project Execution KitRequirements capture is the process of harvesting the raw requirements of your stakeholders and turning them into something useful. It is essentially the interrogation of stakeholders to determine their needs. This can take many forms, with questionnaires or interviews being the most popular. The usual output is a 'requirements specification' document which details which of the stakeholder requirements the project will address and, importantly, which it will not.

The focus in requirements capture must be in gathering of information. Keep your ears open and your mouth shut! Listen carefully to what people want before you start designing your product. Later you can focus on how things are to be achieved for now you need to find out what must be achieved.

In reality this is difficult to achieve. Technical people complain that stakeholders often “don't know what they want”. This is not true. Stakeholders know exactly what they want – they want less hassle, easier jobs and so on. The problem is that they can't design the system for you, they can't tell you how to achieve what they want. The trick in requirements specification is to take what the stakeholders give you and distil it into something you can use to help you make decisions on how to implement their wishes. One way to think of this is as finding the ideal solution to the stakeholder’s current problems.

Requirements capture also needs to be fast. Projects have a tendency to bog down at this stage and to produce reams of documentation, but no useful output. Requirements capture should not produce endless tomes detailing the answer to every possible question but should provide enough clarity for the project team so that the objectives are clear.

Questionnaires

Questionnaires are a typical way of gathering requirements from stakeholders. By using a standard set of questions the project team can collect some information on everyone's needs. While questionnaires are efficient for rapidly gathering a large number of requirements their effectiveness can be limited since it is a one way process. If you don't ask the right questions, you don't get the right answers. There is also no way to seek clarification or resolve conflict. To resolve this, questionnaires are usually used in conjunction with other methods, such as interviews.

Interviews

The same questions posed in a questionnaire can be put across a table in an interview. The benefit of the interview is that it allows more exploration of topics and open ended discussion on the requirements for the project. It's a two way process.

Interviews can either be structured as single or group sessions. Particular stakeholders can be interviewed individually or a group session can be used thrash out ideas amongst a larger number of stakeholders (and hopefully obtain consensus). In a group session you can use a formal structure or a more open style where ideas are thrown around, a brainstorming session. The best ideas that survive can be adopted by the project team as part of the requirements.

The down-side to interviews is that they are time and people intensive. Not only must the interview be set up and conducted but minutes must be taken, distributed and reviewed, and it may be necessary to hold one or more follow-up meetings. Using questionnaires and interviews is a common and efficient practice; questionnaires can be distributed beforehand and an overview of the stakeholder’s requirements collected. The interviews are then focused and directed towards the clarification of those requirements.

User observation

Another method of requirements capture is direct end-user observation or evaluation.

The purpose of user observation is to capture requirements that the end-users may not be consciously aware of. For example individuals using a check processing system in a large finance system may conduct a number of manual steps outside of the system that could be automated. Because they don’t regard these steps as being part of the system they will not mention them when questioned about the incumbent system. Only by direct observation will the development team become aware of the importance of these steps.

You can either use free-form observation or you can take a typical group of end users are set a series of tasks and monitor their processing of these tasks. Notes are made on the way they conduct the tasks, any obstacles they encounter and you could even video tape it (if they agree).

Direct user observation is particularly powerful because, unlike the first two methods of requirements capture, it relies on observed fact and not upon opinions. It is however, the most resource intensive of the three techniques.

Conflicting Requirements

One or more requirements may contain elements that directly conflict with elements of other requirements. For example, a performance requirement may indicate that a core system must be updated in real time but the size and scope of the system (as defined by other requirements) may preclude this. Updating such a large system may not be possible in real time.

One of the most effective ways of resolving conflicts between requirements is to impose some form of prioritization. This allows the potential for negotiation since it provides a basis for assessing conflicting requirements. For example if, from the previous example, the requirement for real time updates was rated at a much higher priority than the inclusion of full customer data, then a compromise could be reached. The main ‘online’ database could contain only the barest essential of customer details (allowing real time updating) and a separate ‘archive’ database could be established which contained customer histories.


Documenting Requirements

Project Planning TemplatesYou need a way of documenting your requirements for your project team. Stakeholders are also often asked to sign off their requirements as a confirmation of what they desire. Often this is where money starts to change hands.

Documenting requirements is much more than just the process of writing down the requirements as the user sees them. The requirements specification is an essential link in the total design of the whole project and attempts to give meaning to the overall goals of the project.

Whatever form of requirements documentation is used it should cover not only what decisions have been made but also why they have been made. Understanding the reasoning that was used to arrive at a decision is critical in avoiding repetition.

For example, if a particular feature has been excluded because it not feasible, this must be recorded.

If not, then the project risks wasted work and repetition when a stakeholder requests the feature be reinstated later in the project.

Documenting the decision process is also useful from a stakeholder's point of view. It allows the stakeholders to better understand what to expect from the final product. A basic statement of requirements without any underlying discussion can be difficult for a layman or end-user to understand.

SMART requirements

One useful acronym for defining requirements is SMART:

Specific - A goal or requirement must be specific. It should be worded in definite terms that do not offer any ambiguity in interpretation. It should also be concise and avoid extraneous information.

Measurable - A requirement must have a measurable outcome; otherwise you will not be able to determine when you have delivered it.

Achievable - A requirement or task should be achievable; there is no point in setting requirements that cannot realistically be achieved.

Relevant - Requirements specifications often contain more information than is necessary, concise and coherent.

Testable - To be of value requirements must be testable. You must be able to prove that the requirement has been satisfied. Requirements which are not testable offer no way to determine if they have been delivered.

The Language and Layout of Requirements Specifications

Requirements specifications have multiple audiences. They are used by the project team to deliver the project, and they are used by stakeholders to verify what is being done. While I advocate including contextual information to illustrate why a particular decision was taken there needs to be some way of easily separating the discussion from the “assertions”.

So I apply the following rules of thumb:

• For each requirement there should be an “assertion”; in essence, a decision

• Where assertions are documented they should consist of a single sentence which states what a product “must” or “should” do.

• “Must” indicates a necessary requirement / “should” indicates a “nice-to-have”.

• There must be simple (visual) way to distinguish assertion from discussion

Below is an example with some discussion and the assertion highlighted with italics:

Usability – usability of the system is seen as very important to adoption of the system. The client raised some concerns about the time scales required to implement usability testing but the project team as a whole supported extending the time line for the development phase to include usability testing.

The system must be simple and easy to use and must follow the standard UI style as laid out in the company design handbook.

In this case the discussion is preserved for future reference but the requirement stands out distinctly from the body of the text. A project member reading the specification can skip through it and pull out the requirements quickly and easily. A manager reading through the document can do the same but also can review the context of the decision to understand how it came about.

Diagrammatic Methods

Project Planning TemplatesWhile you can specify specification in textual form, more graphical methods are available. As the saying goes, a picture is worth a thousand words, and this is both a blessing and a curse.

While representing information with a picture or diagram can be extremely informative it can also be extremely confusing. Diagrams can often imply requirements without actually stating them and leave details open to interpretation.

For this reason I see graphical methods as supporting standard textual methods of description. They should be used wherever appropriate, where the graphical nature of a representation will more closely represent the nature of the requirement. If you find it difficult to explain in words the nature of a particular structure or process then by all means insert an appropriate diagram.

The emphasis must be on concise, accurate representations, so use whatever combination of graphical and textual elements seems right to you.

Sample Requirements Specification

Project Planning TemplatesThe most common method is to break down the requirements in an outline fashion as used in a document or manual.

For example:

1. Current product status – all parties highlighted the need for a clear and public indicator of the current status of a product

2. Dates - dates for each major milestone were also recognized as necessary. Although some of these dates will remain in the public domain others will be available only to “private” users. Private users will have the ability to publicize dates as they see fit.

The dates specified are:

2.1 Development sign off

2.2 Testing sign off

Even more structure can be put into the document by splitting up requirements categories:

For example:

1.            Functional Requirements

1.1.         Product list – the system should produce a list of products available or under development

1.2.         Current product status – all parties highlighted the need for a clear and public indicator of the current status of a product. There should be a simple flag which indicates at-a-glance whether the product is ready for release.

1.3.         Dates – for each product, dates for each major milestone must be shown. Although some of these dates will remain in the public domain others will be available only to “private” users. Private users should have the ability to publicize dates as they see fit.

The relevant dates are listed below:

1.3.1. Design sign off

1.3.2. Development sign off

1.3.3. Testing sign off

1.3.4. etc

2.            Non-Functional Requirements

2.1.         Performance – the system must be updated daily and information available to all international users within 1min of the information being posted by head office.

2.2.         Usability – usability of the system was seen as very important to adoption of the system. The system must be simple and easy to use and must follow the standard UI style as laid out in the company design handbook.

2.3.         Security – access to schedule information must be controlled on a per-user basis. Access to the information should not be available to any external customers or companies.

It is best to be as specific as possible but remember the 10th commandment and be flexible. If your project doesn’t warrant this level of detail then don’t include it; or you will spend all your time writing documentation. Find a happy medium between detail and effort that suits you and your organization’s needs.

More Tutorials:

 

 

Project Management Templates

Here are some Project Management templates you can get on our partner's site.

Change Management Kit - Templates for Project Managers to help you Initiate, Plan, Execute and Close projects while managing staff, customers, suppliers, change, risk, issues and quality. The Change Management Kit provides the documentation required to control changes to the scope, deliverables and resources within the project. The Change Request template allows staff to raise a change request within the project. Buy Now! Download these templates
Project Planning Kit - Templates for Project Managers including plans, processes, forms and free tools. The Project Planning Kit provides you with all of the project management templates, documents and forms required to plan a project by helping you to schedule time, cost and resources. Buy Now! Download these templates
Quality Management Kit - The Quality Management Kit includes a suite of templates used to assure and control the quality of deliverables within a project. The quality process helps you to implement Quality Assurance and Quality Control measures and the Quality Review Form will enable you to review the overall progress of your project. By using the Deliverables Register, you will be able to monitor and control the current quality of your project deliverables, thereby ensuring that they meet the quality targets set out in the Quality Plan. The Quality Management Kit includes a suite of templates used to assure and control the quality of deliverables within a project. Buy Now! Download these templates
Project Initiation Kit Project Initiation Kit
Start a new project by documenting a business case, undertaking a feasibility study, defining the project scope, recruiting key staff and locating them within a project office.
Buy Now! Download these templates
Project Execution Kit Project Execution Kit
Manage time, cost, quality, change, risks and issues during the execution of your project, as well as supplier procurement and customer acceptance.
Buy Now! Download these templates
Project Closure Kit Project Closure Kit
Helps close your project by handing over deliverables and documentation to the customer, terminating supplier contracts and releasing resources back to the business.
Buy Now! Download these templates

 


 

 


Biz Templates: Proposal Template  Project Management  Employee Handbook  Procedures Business Case Process Design

IT Templates: Software Development  Testing Templates  Training Plan  User Guide Change Management Plan

Sales Templates: White Paper Case Study Business Plan Marketing Plan Cost Benefit Analysis Action Plan

$ 9.99: Acceptance Test Plan  Design Document  Requirements  Test Plan  Feasibility Study Risk Management Plan


Ads

Follow me on Twitter  Facebook  YouTube

T e m p l a t e   S h o p


Software Development Templates

T e m p l a t e   S h o p

Acceptance Test Plan

Acquisition Plan

Action Plan

Audience Analysis

Availability Plan

Bill of Materials Template

Business Case

Business Continuity Plan

Business Plan

Business Process Design

Business Requirements

Business Rules

Capacity Plan

Case Study Templates

Change Management Plan

Communication Plan

Concept Proposal

Configuration Management Plan

Conversion Plan

Concept of Operations

Cost Benefit Analysis

Data Sheet Template

Database Design Document

Deployment Plan

Design Document

Disaster Recovery

Documentation Plan

Employee Handbook

Error Message Guide

Expression of Interest

Fact Sheet Template

Feasibility Study

FAQ Template

Functional Requirements

Grant Template

Installation Plan

Interface Control Document

Invitation To Tender

Maintenance Plan

Marketing Plan

Needs Statement

Operations Guide

Policy Manual

Project Management

Project Plan

Proposal Template

Proposal Forms and Checklists

Request For Proposal

Release Notes

Risk Management Plan

Service Level Agreement

Setup Guide

Statement of Work

Software Development Templates

Software Testing (QA) Templates

Software Requirements Specification

Standard Operating Procedure

System Admin Guide

System Boundary Document

System Design

System Specifications

Security Plan

Test Plan

Technical Writing Templates

Training Plan

Transition Plan

User Guide Template

Use Case Templates

Verification Plan

White Paper Templates

How to Write

Business Documents

Case Studies

Grants Applications

Process Design

Proposals and RFPs

Project Management

Technical Documents & FrameMaker

White Papers

Writing for the Web

Business Process Templates
Project Management Templates

Standard Operating Procedures

Employee Handbook

Policy Manual

Grant Proposal

Training Plan

Statement of Work

Sponsors
 

 



Forms, Checklists, & Templates - Updated Daily

I'm Ivan Walsh, the person behind this site. I help people improve how they write, publish and extend their business assets.

You can email me here or connect with me at Twitter @ivanwalsh, Disqus, Facebook, LinkedIn, Delicious & Google.

Endorsements | About Us | Contact Us | Site Map | Privacy| License | T&Cs | FAQs | Klariti

^^^ Return to top of page ^^^