Thursday, November 29, 2007

Requirements Gathering Activities

A user will tell you anything you ask about, but nothing more

Conceptually, requirements analysis includes three types of activity:

Eliciting Requirements

The task of communicating with customers and users to determine what their requirements are.

Analyzing Requirements

Determining whether the stated requirements are unclear, incomplete, ambiguous, or contradictory, and then resolving these issues.

Recording Requirements

Requirements may be documented in various forms, such as natural-language documents, use cases, user stories, or process specifications.

Requirement Gathering Challenges

A user is somebody who tells you what they want the day you give them what they asked for

Have you experienced these situations in the project?

  • Scope and Vision not clearly defined
  • All requirements are critical, no priority is defined
  • Signed-off requirements keep changing
  • New requirements get added in the middle of the project
  • Users/ Customers are busy and not available to specify requirements
  • Functionality built, rarely or never used

If we are experienced in the above points, it is an indication that, we would not be delivering the final product to the customer successfully in time. Because the impact of above points are huge in project/ product lifecycle. Assume if the scope of the project is not clearly defined, it means that we are not sure about the objectives. We need to clearly define and state what is in the scope of the particular project and what is out of scope. Once we have it on paper, we need to get review from the customer and agree to this definition of scope to ensure everyone is clear about what will be delivered at the completion of project. If signed-off document is changing frequently which means that we have not collected the requirement properly or customer had not gone through the document properly before sign off. No project team member will have control over the requirements if requirements changes frequently. Due to this project plan, estimations and other project management aspects gets affected and also our milestone deliverables changes. It is not a best practice even though we are handling the requirement changes using change management process. We always make sure that customer had gone though each and every point specified in the document and had got clear understanding of application needs before sign-off. The impact of change in requirement would be more and affect the entire project plan and consumes extra time to do impact analysis, estimation, creating traceability matrix and resource etc. To delver the project to the customer successfully in time, we should not get experienced in any one of the above points.

Stakeholder Issues

Steve McConnell, in his book Rapid Development, details a number of ways users can inhibit requirements gathering:

  • Users don't understand what they want or users don't have a clear idea of their requirements
  • All requirements are critical, no priority is defined
  • Scope and Vision not clearly defined
  • Users won't commit to a set of written requirements
  • Users insist on new requirements after the cost and schedule have been fixed
  • Communication with users is slow
  • Users often do not participate in reviews or are incapable of doing so
  • Users are technically unsophisticated
  • Users don't understand the development process
  • Users don't know about present technology
  • This is not what we wanted!” feedback

carrepair

Engineer/Developer Issues

Possible problems caused by engineers and developers during requirements analysis are:

  • Technical personnel and end users may have different vocabularies
  • Consequently, they may wrongly believe they are in perfect agreement until the finished product is supplied
  • Engineers and developers may try to make the requirements fit an existing system or model, rather than develop a system specific to the needs of the client
  • Analysis may be often carried out by engineers or programmers, rather than personnel with the people skills and the domain knowledge to understand a client's needs properly

What If These Challenges Were Not Beaten?

If we don’t beat these challenges, we would not be delivering the final product to the customer successfully in time. Because the impact of above points are huge in project/product lifecycle. Assume if the scope of the project is not clearly defined, it means that we are not sure about the objectives. We need to clearly define and state what is in the scope of the particular project and what is out of scope.

Once we have it on paper, we need to get review from the customer and agree to this definition of scope to ensure everyone is clear about what will be delivered at the completion of project. The business analyst should help users reviewing the documentation till getting them signed off.

Due to this project plan, estimations and other project management aspects gets affected and also our milestone deliverables changes.

The impact of change in requirement would be more and affect the entire project plan and consumes extra time to do impact analysis, estimation.

To deliver the project to the customer successfully in time, we should not get experienced in any one of the above points.

BusinessConflict

“What if users developed their own applications?!”


Requirements Volatility Causes

What is not on paper has not been said

There are two types of requirement volatility causes.

Internal Factors

  • Not capturing requirements from all relevant stakeholders
  • Not using right requirement capturing technique depending on the context
  • Not capturing all relevant details
  • Not having measures such as check-list to ensure completeness of requirements captured
  • Not having measures to ensure clarity

External Factors

  • Market driven
  • Need to be handled and managed