Reading note: Chapter 10, Identifying needs and establishing requirements.
Why it is important?
In these days, it’s become more and more important for designers and engineers to push down their pace and focus on what their client really need. There are countless examples where the products turns out being a failure due to the ineffective interaction between producers and clients. Client don’t know how to express their ideas, while engineers don’t know how to listen to their clients. We need a structured and engineered approach to establish a effective communication pipeline between producers and clients. And the first step would be identifying needs and establishing requirements.
What How and Why
what are we trying to achieve in a Requirement activity?
1. understand user needs 2. establish functional requirements that fit user needs
How can we do it?
set up a sequential activities including gathering data, analyze data, interpret it and extract some requirements from it and then iterate through them.
End up wasting a lot of money with a buggy result.
Why establish requirements?
User themselves might have no idea what in detail they need.
Recognizes and develops the requirements is a iterative process of negotiation, evolution and needs to be carefully managed and controlled.
What Are Requirements
One of the aims of the requirements activity is to make the requirements as specific, unambiguous, and clear as possible.
What kinds do they have?
Mainly two for software engineering.Functional requirement and non-functional requirement.
Functional requirement is more in detail whether the other one is more abstract.
As for the interactive design, there are functional requirement, data requirement, environmental requirement.
Data Gathering for Requirement
ways of gathering data for requirement
researching similar products
Contextual inquiry includes four principles such as context principle, partnership principle, interpretation principle and focus principle
Application of the concepts
As a software engineer, implementing those new approach can always better than working extremely hard on useless function of our software.
We do need to identify user needs before we get our hands on code. Thinking bout agile development, we are having meeting with client on a weekly basis and some time even more frequently. However, most of the time we are struggling how to make the time of meeting counts instead of meaningless chit and chat.
Adopting the concept we learned from his chapter, we should understand we can use a organized and engineered way to manage our meeting. Understanding the main goal for the meeting is to understanding user needs and establishing requirements which has different categorize and it is worth identifying each of them. Considering each meeting as a important data gathering process, instead of asking and answering questions, we have multiple ways for this process such as Interviews, focus groups, questionnaires, direct observation, indirect observation, studying documentation, researching similar products.
After the meeting, we can implement Volere shell language to analyze the data we gathered and draw the conclusion of the requirements. If you find the data is not enough, we may want to call for a next meeting and start to schedule it.
Now, thanks for the knowledge we learned from this chapter, we have designed a reliable iterative plan for the agile development client-designer meeting.
INTERACTION DESIGN: beyond human-computer interaction, 3rd Edition
By: Yvonne Rogers; Helen Sharp; Jenny Preece
Publisher: John Wiley & Sons