9. How can we find
out what people
want to do
through software?
10. Activity Theory
Cultural-Historical Activity Theory (CHAT)
Yrjö Engeström
Center for Activity Theory and
Developmental Work Research
at University of Helsinki
35. The Being of Software
Software is an executable model for an
activity. It provides affordances to perform
actions that contribute to the activity. It is a
mediating tool that guides, supports, and
influences user actions and perceptions.
43. y st em
ity S
Ac ti v Need
leads to
Activity Motive
is reason for
44. y st em
ity S
Ac ti v Need
leads to
Activity Motive
is reason for
defines
Goal
45. y st em
ity S
Ac ti v Need
leads to
Activity Motive
is reason for
defines
Action Goal
defines
46. y st em
ity S
Ac ti v Need
leads to
Activity Motive
is reason for
contribute to defines
Action Goal
defines
47. y st em
ity S
Ac ti v Need
leads to
Activity Motive
is reason for
contribute to defines
Action Goal
defines
consists of a series of
Task
48. y st em
ity S
Ac ti v Need
leads to
Activity Motive
is reason for
contribute to defines
Action Goal
defines
consists of a series of
Task Condition
influences
49. Now that we know
what people want we
need to understand
their world
50. Ontology
Being and Time • From Greek "ontos" = "being"
• In computer science:
Concepts within a domain
Relationships between concepts
Heidegger
1889 - 1976
57. Acceptance Criteria
Given a "3" day conference
When "George" picks days "1, 2"
Then the ticket type is "Two Day Special"
58. Is This Story Complete?
As conference attendee
I want to buy a ticket
so that I can attend the conference
59. learn about Wizb
Incomplete Story!
collaborate on Wiz
find Wizbang colle
Need
leads to
As conference attendee Activity
engage with the
is reason for Motive
Wizbang community
I want to buy a ticket defines
so that I cana attend the conference
contribute to
find go to a
Action defines Goal
conference conference
consists of a series of
select sessions
Condition influences Task
at conference
i have a search for Wizbang sign up for a
busy schedule related conference conference
60. Need
Incomplete Story!
engage with the
Activity is reason for
leads to
Motive
As conference attendee
Wizbang community
defines
I want to buy a ticketgo to a
contribute to
find a
so that I can attend the conference
Action defines Goal
conference conference
consists of a series of
select sessions
Condition influences Task
at conference
i have a search for Wizbang sign up for a
busy schedule related conference conference
As conference attendee
I want to buy a ticket only for parts
of the conference
so that I can accommodate my busy schedule
61. learn about Wizbang
collaborate on Wizbang
find Wizbang colleagues
George Need
Conference Attendee
leads to
engage with the to become part of the
Activity is reason for Motive
Wizbang community Wizbang community
defines
contribute to
find a go to a attending a
Action defines Goal
conference conference conference
consists of a series of
select sessions
Condition influences Task
at conference
i have a search for Wizbang sign up for a
busy schedule related conference conference
Partial Activity System for Conference Attendee
63. Activity-Centered Design
Discovery
Fe
ed
ba
Domain Language Activities and Actions
Scenarios ck
Field Studies
Common Issues and Concerns, Interests,
Feedback
Breakdowns Fears of Domain Actors Usability Testing
Roles and Standard
Vision
Practices Personas
Mapping
Executable Program Code
User Story X? Outcome
Specification
Design & Development
User Interface Paper
Wireframes X?
Guidelines Prototypes
People == Paying Customers or Users within an organization\n
Design instead of just building it\nDesign always starts with an idea and rough sketches to facilitate conversations\nThis is called IDEATION == Brainstorming to get people’s mental models out of their heads and onto paper\n
\n
\n
\n
\n
\n
Now without the political restraints:\nUpdated Activity Theory and created the triangle of expanding triangles\nFocuses on work\n
\n
\n
Basic subject - object relationship\n
\n
Editor / IDE / Issue Tracker / CRM-Tool / Time Reporting\n
Tool mediates activity: Writing code is different with a pure Editor vs. IDE with code generation\n
Performing an action on the object influences the subject\nExample: Using Twitter changes people and their social relationships\n
\n
Community influences the subject\nExample: All my friends are on Twitter\nExample: My fellow team members prefer VIM over an IDE\n
Community influences tool choice and tool usage\n\n
Community influences what is being done to and with an object to get a desired outcome\n
Tools influence the community\nExample: Twitter redefines social relationships\nExample: Use of Maven as a build tool influences how all developers in a company develop software\n
Manipulation of object influences community through feedback\n
Community makes and influences rules\n
Rules influence community (feedback and “improvement”)\nRules tend to become stricter and stricter once established\n\nQuestion: how many times have you seen rules be taken back?\n
Introducing Division of Labor\n
Community determines division of labor\nExample: Management, unions, government decide\n\n
Community determines division of labor\nExample: Management, unions, government decide\n\n
Community determines division of labor\nExample: Management, unions, government decide\n\n
Community determines division of labor\nExample: Management, unions, government decide\n\n
Division of labor influences what can be done/should be done to/with an object\nExample: Due to the division of labor (and the conveyor belt) only certain things can be done to an object\n
The type of object being manipulated determines how labor is divided\n
Division of labor re-shapes community\nExample: Work in a factory with a conveyor belt creates new roles and distinctions amongst the employee community\n
So??? What happened to the OUTCOME?\n
What started as a simple relationship (subject-object-outcome) has become a web of relationships where everything influences everything else.\n\nIt is EASY to LOOSE SIGHT of the OUTCOME and in consequence work on the WRONG GOALS\n