Identifying needs and establishing requirements Chapter 7a
Identifying needs and establishing requirements 7.1 Introduction 7.2 What, how, and why? What: To understand as much as possible about the users, tasks, and context in order to produce a stable set of requirements How: The more ways the better to a point Why: Requirements Engineering is the phase where failure most commonly occurs and is most costly 7.3 What are requirements? Different kinds of requirements 7.4 Data gathering techniques and guidelines
Why is this important? Top 3 reasons why projects delivered late, over budget, with less functionality than planned, or cancelled: 3.
Why is this important? $$$ Cost to fix a requirements based problem
Different kinds of requirements Functional Non-functional Data Social –Physical Environment –Context of Use –Ethical, societal, privacy, security User –Computer literacy of user –Abilities of user –Frequency of use Usability –Easy to learn –Easy to remember – Pleasing to the eye
Data Gathering Techniques Interviews –Structured –Unstructured Questionnaires Focus Groups Naturalistic Observation Study Documentation Formal controlled studies
Some basic guidelines Focus on identifying the stakeholders’ needs Involve all the stakeholder groups Involve more than one representative from each stakeholder group Use a combination of data gathering techniques Support the process with props such as prototypes and task descriptions Run a pilot session