Tuesday, July 25, 2006

Requirement Gathering

Requirements analysis, in systems engineering and software engineering, encompasses all of the tasks that go into the instigation, scoping and definition of a new or altered system. Requirements analysis is an important part of the system design process; whereby requirements engineers, business analysts, along with systems engineers or software developers, identify the needs or requirements of a client; having identified these requirements they are then in a position to design a solution.

In short Identifying the needs for a new project i.e. the main job of a BA or the most vital part of the whole deal is to gather the RIGHT requirements, thus it should be done with utmost care and precision. If there is a mistake in this process the end product may also end up screwed.

Different Types of requirements :
  • Feasiblitly
  • Schedulable
  • Affordable
  • Legality
  • Ethical issues
Requirement Gathering Techniques:

Interviews- Involves interviewing stakeholders and all the people involved, it may result in interviewing a lot of people but will help gather sound requirements and understand customer needs.

Requirement workshops - To bring the main stakeholders in the system together in order to analyse the system and develop the solution. These workshops are more properly termed Joint Requirements Development (JRD) sessions, where requirements are jointly identified and defined by stakeholders

Contract-style requirement lists - One way of documenting requirements has been contract style requirement lists. In a complex system such requirements lists can run to hundreds of page, but it will provide a general checklist of requirements

Software Requirements Specification - A software requirements specification (SRS) is a complete description of the behavior of the system to be developed. It includes a set of use cases that describe all of the interactions that the users will have with the software

Prototypes A.K.A. Mock up's
Prototypes are mock ups of the screens of an application which allow users to visualize the application that isn't yet constructed. Prototypes help users get an idea of what the system will look like, and make it easier for users to make design decisions without waiting for the system to be built

Brainstorming - This involves identifying as many ideas as possible and ranking the ideas into those considered most useful by the group

Use Cases - This 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

No comments: