Needs and requirements:
In software engineering, two different kinds of requirements have traditionally been identified: functional requirements, which say what the system should do, and non-functional requirements, which say what constraints there are on the system and its development. In short, functional requirements capture what the product should do, data requirements capture the type, volatility, size/amount, persistence, accuracy, and the value of the amount of the required data.
Aspects of environment: physical environment (protection against physical harm, light requirements), social environment (collaboration, what needs to be shared?), organizational environment (how easily can user support be obtained?) and the technical environment (compatibilities, limitations?).
Different techniques of data gathering:
Questionnaires, interviews, naturalistic observation, documentation study.
Questionnaires: good at getting specific questions answered frmo a large group of people. Response rates might be low and the responses might not be of the type you would like them to be, though.
Interviews makes the user feel more involved, but are time consuming and might feel artificial.
Naturalistic observation is very time-consuming but is a good way of understanding a broader context.
Documentation study: good for getting background, but documented working may differ from day-to-day working.
Use a combination of techniques, and make sure to cover many different types of users.
Scenarios and cases: combine them to form essential use cases.
hierarchical task analysis: break down the tasks into subtasks, which are then broken down inte sub-subtasks and so on. Then group them together as a plan that specify how the task might be performed in an actual situation. E.g.
0. In order to borrow a book from the library
1. go to the library
2. fnd the required book
2.1 access library catalog
2.2 access the search screen
2.3 enter search criteria
2.4 identify required book
2.5 note location
3. go to correct shelf and retrieve book
4. take book to checkout counter
plan 0: do 1-3-4. If book isn't on the shelf expected, do 2-3-4.
plan 2: do 2.1 -2.4-2.5. If book not identified do 2.2-2.3-2.4-2.5.
Consider showing plans in graphical form as well. It is hard to model complex tasks and multiple tasks interacting and running parallel.
Question: How do you figure out the most effective way of gathering data, as in what type of data gathering gives you the most and best information?