Thursday, August 2, 2007

Requirements Gathering Techniques

Interviews

Cons: Predisposition, experience, understanding and bias of the person being interviewed influence the information obtained.

Solution: Use context-free questions to avoid prejudicing the response.

Note: Context-free question is question that does not suggest a particular response.

e.g. Who is the client for this system? What is the real reason for wanting to solve this problem? what environment is this product likely to encounter? What kind of product precision is required?

Document Analysis

All effective requirements elicitation involves some level of document analysis, such as business plans, market studies, contracts, requests for proposals, statements of work, existing guidelines, analyses of existing system, and procedures.

Improved requirements coverage results from identifying and consulting all likely sources of requirements.

Brainstorming

Brainstorming involves both idea generation and idea reduction.

Idea Generation: identify as many ideas as possible.

Idea Reduction: ranks the ideas into those considered most useful by the group.

Pros: it may come out the most creative or effective by combining seemingly unrelated ideas, it encourages original thinking and unusual ideas.

Requirements Workshops

Requirements Workshops are best facilitated by an outside expert and are typically short.

Benefits:

- workshop costs are often lower than are those for multiple interviews.

- they help to give structure to the requirements capture and analysis process.

- they are dynamic, interactive, and cooperative.

- they involve users and cut across organizational boundaries.

- they help to identify and prioritize needs and resolve contentious issues.

- when properly run, they help to manage user's expectations and attitude toward change.

A special category of requirements workshop: Joint Application Development (JAD) workshop.

JAD:

- a method for developing requirements through which customers, user representatives, and developers work together with a facilitator to produce a requirements specification that both sides support.

- an effective way to define user needs early.

Prototyping

- a technique for building a quick and rough version of a desired system or parts of that system.

- illustrates the capabilities of the system to users and designers.

- serves as a communications mechanism to allow reviewers to understand interactions with the system.

 Use Cases

- A use case is a picture of actions a system performs, depicting the actors.

- It should be accompanied by a textual description and not be used in isolation of other requirements gathering techniques.

- Use cases and scenarios (descriptions of sequences of events) facilitate team communication. They provide a context for the requirements by expressing sequences of events and a common language for end users and the technical team.

Storyboards

- a storyboard is a set of drawings depicting a set of user activities that occur in an existing or envisioned system or capability.

- storyboards are a kind of paper prototyping.

- Customers, users or developers start by drawing pictures of the screens, dialogs, toolbars, and other elements they believe the software should provide.

- The group continues to evolve these until real requirements and details are worked out and agreed upon.

- Related technique: storytelling - the writing of vignettes to envision new products and services based on perceived user needs and the possibilities offered by emerging technologies.

 

There are some other techniques which I didn't take note here,such as Interfaces Analysis, Modeling, Performance and Capacity Analysis.

2 comments:

  1. One thing I’d add to this is that customers need to understand the importance of helping to clearly define the software requirements up front. It can make all the difference in the success of their project. Our job as the consultant doing the requirements gathering is to help manage the process for them. Part of that involves educating the client on how they can help with requirements gathering. There are a number of critical elements that the client has control over that can make or break the success of gathering accurate requirements. We have a two-part series on this topic that you might be interested in: Requirements Capture: 10 Keys to a Successful Software Development Project - Part 1 and Requirements Capture: 10 Keys to a Successful Software Development Project - Part 2.

    ReplyDelete