Solidifying Vague Requirements & Establishing Unknown User Needs

67

Transcript of Solidifying Vague Requirements & Establishing Unknown User Needs

Page 1: Solidifying Vague Requirements & Establishing Unknown User Needs
Page 2: Solidifying Vague Requirements & Establishing Unknown User Needs

presentation agenda:

1.Introductions2.The requirement gathering challenge3.Requirements: Conscious, Unconscious, Undreamt 4.Techniques & Approaches 5.Requirements gathering in practice: an allegory6.Summary and questions

Page 3: Solidifying Vague Requirements & Establishing Unknown User Needs

why are you interested in this topic?

1.To be more successful in our professional careers2.To contribute to the success of a project3.To help our clients succeed4.To make money5.To look good6.To avoid pain7.To be cool…

Page 4: Solidifying Vague Requirements & Establishing Unknown User Needs

common scenarios

1. Redesign: Design refresh and technology upgrade, with feature enhancements

2. Brand New: Green field build, 'new concept' 3. Rescue Project: Legacy system, half-built

site, things learned since initial documentation

Page 5: Solidifying Vague Requirements & Establishing Unknown User Needs

an emerging field

Requirements Engineering is"designing the right thing" as opposed to software engineering’s "designing the thing right" ~ Barry Boehm, 1981

"Software systems requirements engineering (RE) is the process of discovering that purpose, by identifying stakeholders and their needs, and documenting these in a form that is amenable to analysis, communication, and subsequent implementation".

~ Nuseibeh and Easterbrook, 2000

Page 6: Solidifying Vague Requirements & Establishing Unknown User Needs

what are the challenges we face?

“Requirements are initiated by senior managers and company executives as policies, aims, objectives and other high-level statements of intent. This necessitates considerable scoping activity as requirements start with vaguely expressed intentions and users’ wish lists...”

~ Usability in Government Systems: User Experience Design for Citizens and Public Servants (Google eBook) by Elizabeth Buie & Dianne Murray

Page 7: Solidifying Vague Requirements & Establishing Unknown User Needs

when stakeholders come from a variety of backgrounds, submitted requirements documentation can

be varied and inconsistent

Page 8: Solidifying Vague Requirements & Establishing Unknown User Needs

documentation arrives in many different forms

Page 9: Solidifying Vague Requirements & Establishing Unknown User Needs

documentation…1. Request for proposal2. Wireframes3. Data base schema4. Project charter5. Text requirements list6. Entity relationships7. Photoshop files8. Publication workflows9. Powerpoint presentations10. Spreadsheets11.User stories12. Branding guidelines

Page 10: Solidifying Vague Requirements & Establishing Unknown User Needs

what are traditional requirements?1. Criteria to which the system or business must adhere.2. Usually created before the coding begins3. Nearly always written as text4. Often defined as constraints, conditions, or capabilities to which the system must conform

5. Focus on system operation6. Contain explicit tests or acceptance criteria7. Often written atomically; meaning that thousands of independent shall statements can comprise a software requirements specification.

http://www.scrumalliance.org/community/articles/2010/april/new-to-user-stories

Page 11: Solidifying Vague Requirements & Establishing Unknown User Needs

from super high level, to incredibly granular

getting the right balance of information is hard

Page 12: Solidifying Vague Requirements & Establishing Unknown User Needs

Prioritization is hard… it’s easy to put emphasis on the wrong things.

Page 13: Solidifying Vague Requirements & Establishing Unknown User Needs

For emaxlpe, it deson’t mttaer in waht oredr the ltteers in a wrod

aepapr, you can sitll raed it.

S1M1L4RLY, Y0UR M1ND 15 R34D1NG 7H15 4U70M471C4LLY

W17H0U7 3V3N 7H1NK1NG

we can be precise without being accurate

Page 14: Solidifying Vague Requirements & Establishing Unknown User Needs

have a goal to achieve consistency in documentation, define a common language, and strive to fill in gaps,

constraints and assumptions

In order to be precise and accurate…

Page 15: Solidifying Vague Requirements & Establishing Unknown User Needs

“But they will just go to someone who will agree to build what they

ask”

Objection! Oh, do you really want to build what was asked for, but not what was needed?

Page 16: Solidifying Vague Requirements & Establishing Unknown User Needs

"Instead of buying a product, the customer buys the satisfaction of

a need”~Peter Drucker

Want to win an argument and loose the war? Betcha they’ll be back as a rescue project…

Page 17: Solidifying Vague Requirements & Establishing Unknown User Needs

a technique way to uncover requirements

1. Conscious Requirements - Problems that the new system must

solve

2. Unconscious Requirements - Issues already adequately

addressed by the current system, and important not to overlook

3. Undreamed of Requirements - Items that would be considered

important if it was known they were possible or if they were better

understood

Page 18: Solidifying Vague Requirements & Establishing Unknown User Needs

undreamt requirements analysis acknowledges that users:

1. Cannot always articulate what they truly want or need

2. Do not have the necessary background to ask the right

questions

3. Cannot be expected to provide reasonable answers

4. Only know what they have experienced

5. Do not have the incentive to think hard about the problems

Page 19: Solidifying Vague Requirements & Establishing Unknown User Needs

“Undreamt requirements are essentially where [we] can provide

[the] greatest value-add by introducing innovations,

disruptions, and a new set of possibilities.”

http://estudijas.lu.lv/pluginfile.php/234737/mod_resource/content/0/An%20Early%20Start%20to%20Testing%20How%20to%20Test%20Requirements.htm

Page 20: Solidifying Vague Requirements & Establishing Unknown User Needs

process to manage the knowledge gap

product & process experts

Jared Spool: http://chicago2011.drupal.org/keynotes

target knowledge

current knowledgetraining

simplifying

new clients

Page 21: Solidifying Vague Requirements & Establishing Unknown User Needs

requirements engineering activities and process1. Request

2. Information Gathering ( and Research)

3. Analysis

4. Modelling

5. Validation

6. Trade-off Analysis

7. Scoping

8. Negotiationhttps://www.interaction-design.org/literature/book/the-encyclopedia-of-human-computer-interaction-2nd-ed/requirements-engineering

Page 22: Solidifying Vague Requirements & Establishing Unknown User Needs
Page 23: Solidifying Vague Requirements & Establishing Unknown User Needs

Abstracts give patterns(follow the 80/20 rule for budget control!)

Specifics give outliers(that may mean customization!)

Too high level may miss driving values…

Too granular could miss overarching goals

Strive for balance

Page 24: Solidifying Vague Requirements & Establishing Unknown User Needs

conscious, high level requirements: an invitation to conversation

1. Loaded word features: “online community” or “membership portal”

2. Request for distant future features (‘content personalization in 2018’)

3. Automagical thinking without the IA to support 4. Requests without a good understanding of what kind of technical planning needs to go into it (event registrations, recurring subscriptions, tiered content, user generated content, powerful search

Page 25: Solidifying Vague Requirements & Establishing Unknown User Needs

granular conscious requirements

1. Layout specifications without having done information architecture

2. Specifications for content creation workflow and forms for a Drupal site from people who do not work in Drupal

3. Requests for specific contrib modules4. Content editing screens described down to the button label

Page 26: Solidifying Vague Requirements & Establishing Unknown User Needs
Page 27: Solidifying Vague Requirements & Establishing Unknown User Needs

unpacking requirements

1.Business Insight2.Content Strategy3.Information Architecture4.User Behaviour Data

Page 28: Solidifying Vague Requirements & Establishing Unknown User Needs

big picture - what does this site do?

1. Branding - drive awareness, engagement and loyalty2. Online info/support - Help customers find answers3. Content publishing - Ads shown to visitors4. Lead generation - Contact info from sales prospects5. Ecommerce - Sell products6. E-Learning - Facilitate online courses7. Social Network - Online community8. Specialized Application -  Task based tool9. Other (please specify)

Page 29: Solidifying Vague Requirements & Establishing Unknown User Needs

digital analytics - base web metrics by site type

1. Lead Generation Metrics2. Support Metrics3. Commerce Metrics4. Content Metrics (Ad or Subscription)

Page 30: Solidifying Vague Requirements & Establishing Unknown User Needs

unconscious (often assumptions)

1. Legacy phrases: ’widget’, ‘plug-in’ ‘feed’ 2. Responsive and mobile priority3. Transactional email triggers and rules4. Layout variations and control5. Where a CMS begins and ends6. Third-party integrations

Page 31: Solidifying Vague Requirements & Establishing Unknown User Needs

“Tell me what the Drupal can do, and I’ll tell you which part I need”

Dont fall for this trap…

Page 32: Solidifying Vague Requirements & Establishing Unknown User Needs

“Tell me what your current system does and we’ll tell you how to build it in Drupal”

Resist the temptation…

Page 33: Solidifying Vague Requirements & Establishing Unknown User Needs

“the legacy system”

Don’t try to describe whathappens in the hat…

Page 34: Solidifying Vague Requirements & Establishing Unknown User Needs

Focus on desired outcome.

In other words, focus on the unstated problem not on the stated solution - be it

implicitly or explicitly stated.

Page 35: Solidifying Vague Requirements & Establishing Unknown User Needs

azquotes.com

Spend time defining the ‘what’ before you go onto the ‘how’

Page 36: Solidifying Vague Requirements & Establishing Unknown User Needs

undreamt requirements

1. Are things no one knows how to ask about 2. May blow your mind3. May not blow your mind4. Often mirror real-world activities5. Can be Drupal tools we already know about

Page 37: Solidifying Vague Requirements & Establishing Unknown User Needs

“But there is not time/money/support for this

process”

A common objection… but if you don’t spend time now, you will spend it later…

Page 38: Solidifying Vague Requirements & Establishing Unknown User Needs

Be gentle when uncovering the ‘why’, there’s no need to point out mistakes or tell people how to run their business…

Page 39: Solidifying Vague Requirements & Establishing Unknown User Needs

techniques

1. Abstraction2. Apprenticing / Interviewing3. Business Events4. Brainstorming5. Mind Mapping6. Simulation Models

Page 40: Solidifying Vague Requirements & Establishing Unknown User Needs

abstraction

Diagrams or models that focus on the "essence" of the thing

Page 41: Solidifying Vague Requirements & Establishing Unknown User Needs

apprenticing / interviewing

The ‘apprentice’ observes what the master does, asks questions and rephrases.

Page 42: Solidifying Vague Requirements & Establishing Unknown User Needs

business events

Investigating and managing business event responses.

Page 43: Solidifying Vague Requirements & Establishing Unknown User Needs

brainstorming

Rapidly generating as many ideas a possible without stopping to evaluate or clarify.

Page 44: Solidifying Vague Requirements & Establishing Unknown User Needs

mind mapping

Using words, pictures, symbols and colour to capture subject matter in a non-linear way.

Page 45: Solidifying Vague Requirements & Establishing Unknown User Needs

simulation models (scenarios, prototypes)

To make something appear to be real for the purpose of stimulating requirements or ideas that might otherwise be forgotten or overlooked, designed according to the characteristics and knowledge of the intended audience.

Page 46: Solidifying Vague Requirements & Establishing Unknown User Needs

what are we looking for? (hint: balance)

1.The Big Picture2.Relationships3.Context4.Priorities5.Reasons6.Assumptions7.Constraints8.Boundaries

Page 47: Solidifying Vague Requirements & Establishing Unknown User Needs

validation

Getting users to understand the implications of a requirements specification and then agree, i.e. validate, that it accurately reflects their wishes.

Page 48: Solidifying Vague Requirements & Establishing Unknown User Needs

negotiation

A discussion, explanation and negotiation of conflicting requirements

Page 49: Solidifying Vague Requirements & Establishing Unknown User Needs

catering a meal metaphor

1.Requirements list = recipes2.Features = dishes3.Content = ingredients4.Constraints = allergies5.Users = guests6.User Interface = plates & cutlery7.Team = chefs, servers8.Technology = kitchen & equipment

Page 50: Solidifying Vague Requirements & Establishing Unknown User Needs

request : prepare an informal 2 course dinner for 4

Must have:● Protein● Carbohydrates● Vegetables● Something sweet

Page 51: Solidifying Vague Requirements & Establishing Unknown User Needs

scoping

Boundaries:● Dinner means after 5pm● Guests are available most of July● 2 courses are main and dessert● Vegetables should be organic● Protein cannot be red meat● Must take place outside● Drinks not included

Page 52: Solidifying Vague Requirements & Establishing Unknown User Needs

fact gathering and researchGuest interviews:

● Shellfish allergy● Enjoy spicy, ethic food● Favourite vegetables are peppers● 3 guests like chocolate desserts best● 1 guests likes vanilla desserts best● 2 of the guests love Cuban food● 1 of the guests loves asian food● All four love ‘comfort food’● Guests are from the same family

Page 53: Solidifying Vague Requirements & Establishing Unknown User Needs

analysis

● Purpose of the dinner is to celebrate a birthday● The host is one of the four The location will be on the host’s patio

Host will provide furniture● Host will provide beverages Dishes, cutlery, napkins and stemware

will be needed No server or bartender will be required A good date for the event is July 5, 6, 12, or 13 Guests can arrive at 5:30 The dinner is expected to last 2-3 hours

● Host will cleanup

Page 54: Solidifying Vague Requirements & Establishing Unknown User Needs

recipe for moros y cristianos1 Small Spanish Onion – (diced small)1 Small Cubanelle Pepper (diced small)2 Garlic Fingers (minced)2 tbsp FRESH Chopped Cilanto2 tbsp FRESH Culantro leaves – Find this at local Latin or Asian markets2 tbsp + 1/4 cup Extra Virgin Olive Oil1 tbsp Sea Salt1/2 tsp Fresh Ground Black Pepper2 tsp Dried ThymePinch of Saffron2 tbsp Sofrito1/4 cup FRESH Sazón1/4 cup Red Cooking Wine1/3 cup PITTED Alcaparrados8oz can Spanish Tomato Sauce2 Bay Leaves4 Cups Long Grain Rice – I use organic brown rice1 Quart (4 cups) organic vegetable stock

_http://theposhlatincook.com/tag/dominican-rice-and-beans-recipe/

Page 55: Solidifying Vague Requirements & Establishing Unknown User Needs

_http://theposhlatincook.com/tag/dominican-rice-and-beans-recipe/

Page 56: Solidifying Vague Requirements & Establishing Unknown User Needs

validation - walkthrough

Platillo Moros y Cristianos is a famous Cuban dish_http://theposhlatincook.com/tag/dominican-rice-and-beans-recipe/

Page 57: Solidifying Vague Requirements & Establishing Unknown User Needs

Validation helps set realistic expectations… was it this they had in mind?

Page 58: Solidifying Vague Requirements & Establishing Unknown User Needs

Or was it something more like this…?

Page 59: Solidifying Vague Requirements & Establishing Unknown User Needs

trade-off analysis

● Chocolate vs. vanilla?● Add a birthday cake or include candles?● Organic vs. conventional produce?● Have the dinner indoors if raining?

Page 60: Solidifying Vague Requirements & Establishing Unknown User Needs

negotiation

● Documentation: menu and ingredients● List of assumptions and constraints● Finalized budget, schedule and scope

Page 61: Solidifying Vague Requirements & Establishing Unknown User Needs

Strive for balance! Abstracts give overarching patterns, specifics provide places to find value.

Page 62: Solidifying Vague Requirements & Establishing Unknown User Needs

Thanks | Questions?

Page 63: Solidifying Vague Requirements & Establishing Unknown User Needs

Thanks | Questions?

Page 64: Solidifying Vague Requirements & Establishing Unknown User Needs

resource listSuper awesome UX resource site: https://uxdesign.cc

So many great books: http://rosenfeldmedia.com/books/

A true classic: https://www.amazon.ca/Information-Architecture-World-Wide-Web/dp/0596527349

Many great search UI examples http://searchpatterns.org

Customer Service Guru Naomi Karten’s book: https://www.amazon.ca/Managing-Expectations-Working-People-Better/dp/0932633277

Especially for PMs: http://www.amazon.com/Blind-Men-Elephant-Mastering-Project/dp/1576752534

Game changer: http://leananalyticsbook.com/

Another great resource site: https://www.interaction-design.org/

Page 65: Solidifying Vague Requirements & Establishing Unknown User Needs

preferences: opinions and desires

Techniques: ● Surveys● Focus Groups● Preference Interviews● Card Sorting

Uses:● Visual Interpretation● Branding● Target Market

Page 66: Solidifying Vague Requirements & Establishing Unknown User Needs

ability: what is understood or accomplished with a toolTechniques: ● Prototypes● Usability Testing● Preference Interviews● Log Analysis● Customer Feedback● Card Sorting

Uses:● Interaction Design● Interaction Flow● Page Layout● Nomenclature

Page 67: Solidifying Vague Requirements & Establishing Unknown User Needs

conceptual: how to get things doneTechniques: ● Task Interviews● Contextual Inquiry● Preference Interviews● Surveys

Uses:● Software Structure● Information Architecture● Content Location● Contextual Information● Contextual Marketing● Gap Analysis