--- title: "requirements-elicitation" tags: - info201 --- - A process by which analysts gather information on what the system should do, from as many sources as possible. - All methods are effective but some are more efficient than others. - Different methods can be combined for more comprehensive fact-finding. # Characteristics of good Analysts Impertinence ⇒ question everything, assume nothing Impartiality ⇒ find the best solution to the business problem Relax ⇒ constraints assume anything is possible but eliminate the infeasible Attention ⇒ to detail be precise, comprehensive, and consistent ReFraming ⇒ be creative and “think outside the box” # Stakeholders - Internal stakeholders — people within the organisation, e.g., employees, volunteers, …. - External stakeholders — people outside the organisation, e.g., suppliers or shipping companies. - Operational stakeholders — people who regularly interact with the system, e.g., accountants, factory supervisors, customers, …. - Executive stakeholders — people who don’t directly interact, but use the information or have a financial interest, e.g., senior managers, board of directors, regulatory authorities, …. ![stakeholders diagram|300](https://i.imgur.com/W1ivdjH.png) # Information Gathering - Existing Information - Interview and discussions - Observew and document business process - Prototypes - Questoinnaires - Vendor Solutions # Validation of Requirements - Make sure gathered information is correct. - Structured walk-through: - effective way to implement quality control early in project - verify and validate system requirements - review of findings from investigation - review of models based on findings - Project manager responsible for system quality. - Schedule review soon after document creation. - Review conducted by experienced analyst and stakeholders, presented by analyst. # Requirements in Agile Methodologies - Requirements should be decoupled: - must be as independent as possible - identify which requirements to implement not when to implement them - Every iteration includes a requirements collection and prioritisation activity: - important requirements are implemented next - less important requirements held to later iterations, or not implemented at all - [scrum](notes/scrum.md): product backlog - [UP](notes/unified-processes.md): inception & elaboration phases - [xp](notes/extreme-programming.md): user stories [interviewing](notes/interviewing.md) [participant-observation](notes/participant-observation.md)