Real World Lessons Using Lean UX (Workshop)

107
real world lessons moving to leanux at paypal bill scott (@billwscott) sr. director, user interface engineering, paypal webvisions workshop may 22, 2012
  • date post

    15-Sep-2014
  • Category

    Design

  • view

    19
  • download

    2

description

Half Day Workshop given 5/22/2013 at WebVisions Portland. In this workshop Bill will explore the mindset of LeanUX and how it relates to bring products to life in the midst of big organizations that don't normally think "Lean". He will look at how teams can create a strong partnership between product, design & engineering in a way that tears down the walls and instead focuses on three key principles: Shared understanding Deep collaboration Continuous customer feedback The workshop will take a look at how Bill has been able to apply Lean UX at PayPal — a place that in recent years has been the total antithesis of the lean startup idea. With very specific examples, he will share lessons learned applying lean to the full product life cycle as well as how it relates to agile development. Finally, the workshop looks at the technology stack. In the last few years there has been an explosion of open source technology stacks that can support rapidly creating products, launching them to scale and rapidly iterating on them when live. While startups embrace these stacks from the get-go, large organizations struggle with how to embrace this change. This workshop will also look at the shift that has happened, what is driving this change, and how organizations can embrace this stack and how to marry Lean Tech with Lean UX.

Transcript of Real World Lessons Using Lean UX (Workshop)

Page 1: Real World Lessons Using Lean UX (Workshop)

real world lessonsmoving to leanux at paypal

bill scott (@billwscott)sr. director, user interface engineering, paypal

webvisions workshopmay 22, 2012

Page 2: Real World Lessons Using Lean UX (Workshop)

the schedule2:00-2:30 the problem (30)2:30-3:00 the pattern (30)3:00-3:15 q & a (15)3:15-3:30 break (15)3:30-3:45 the solution (15)3:45-5:15 the lessons learned (90)5:15-5:30 wrap up + q & a (15)

Page 3: Real World Lessons Using Lean UX (Workshop)

the purposehelp you identify the common problems encountered

put before you a clear pattern of how it should work

talk specific ways we solved our problems

leave you with a number of lessons learned you can apply

Page 4: Real World Lessons Using Lean UX (Workshop)

the problema look at where paypal has been. can you relate?

Page 5: Real World Lessons Using Lean UX (Workshop)

team breakdown

standard process creates distinct work phases

boundaries are the hand-off points between roles

product(business) design engineering

Page 6: Real World Lessons Using Lean UX (Workshop)

productproduct manager, business analyst

owns the features. doesn’t do design. drives by hypothesis.

typically produces PRD

Page 7: Real World Lessons Using Lean UX (Workshop)

designUED, UX, ID, IA, VizDe, Content, designer

not responsible for engineering the experience, but designing the experience.

typically consumes PRD and produces design specs.

Page 8: Real World Lessons Using Lean UX (Workshop)

engineeringfront-end engineer, user interface engineer, web developer.

not the designer, but the engineer that creates the experience.

typically consumes UI specs and PRDs (for context).

Page 9: Real World Lessons Using Lean UX (Workshop)

typical product life cycle

product(business) design engineering

(agile team)

PRD UX spec

(wall) (wall)

customer

delivery

upon delivery, team disbands and forms into new teams

Page 10: Real World Lessons Using Lean UX (Workshop)

what was broken in design?late 2011/early 2012

Page 11: Real World Lessons Using Lean UX (Workshop)

deep silositeration planning done by developers without designer’s involved

designers hand off specs without prior involvement of developers

developer days (“dev days”) valued over design time

frequent WFH days created low energy and less collaboration time

hyper-segmentation of products

Page 12: Real World Lessons Using Lean UX (Workshop)

broad team distributiongeographic distribution created wedges, duplications and blocked collaboration

lack of alignment with UED partners (not uncommon to have designers & engineers in same region to be working on different products)

Page 13: Real World Lessons Using Lean UX (Workshop)

lack of agile understandingwhile UED interfaced with agile teams they did not participate directly in agile planning, retrospectives, etc.

agile machinery also did not account for experience design

Page 14: Real World Lessons Using Lean UX (Workshop)

no sense of ownershipUED staff in a pooled/studio model instead of a dedicated model

once delivery happened the designers moved to another project

often engineers did not know who the designer was for a product to ask questions to

teams not empowered to make decisions as a gauntlet of other teams had to approve to go live

Page 15: Real World Lessons Using Lean UX (Workshop)

what was broken in product?late 2011/early 2012

Page 16: Real World Lessons Using Lean UX (Workshop)

no measurement/learn culturein several products there were no key performance indicators to measure & learn against

since a/b testing was hard to do, there was no concept of an MVP (minimal viable product)

Page 17: Real World Lessons Using Lean UX (Workshop)

feature-itussince the organization rallied around projects instead of products, product tended to try to put as much on the train as possible

without kpis you guess more and more (F.O.G.)

without measurement you never get rid of features

Page 18: Real World Lessons Using Lean UX (Workshop)

too many silosproduct was divided over 9 different organizations!

mobile was also a separate business, product and engineering silo

Page 19: Real World Lessons Using Lean UX (Workshop)

what was broken in engineering?late 2011/early 2012

Page 20: Real World Lessons Using Lean UX (Workshop)

too many silosjust like our counterparts, we were broken into many different organizations

mobile was a separate organization

Page 21: Real World Lessons Using Lean UX (Workshop)

too hard to go live37 tickets just to get a bug fixed and pushed to live

every organization was set up to say “no” to anything that might be innovative for fear of failure, risk, security issues, etc.

Page 22: Real World Lessons Using Lean UX (Workshop)

technology brokenno modern services architecture

all solutions were built as silos

ui logic and business logic intertwined

technology platform assumed developers were not to be trusted

Page 23: Real World Lessons Using Lean UX (Workshop)

agile way too granularone product had 20+ agile streams. 12 of these were experience streams. each stream was responsible for one small part of the experience

created nightmares of integration

created a fractured experience for users

Page 24: Real World Lessons Using Lean UX (Workshop)

paypal circa 2011

roll your own. disconnected delivery experience. culture of long shelf life. inward

focus. risk averse.

Page 25: Real World Lessons Using Lean UX (Workshop)

the patternfollowing a build/measure/learn mindset

Page 26: Real World Lessons Using Lean UX (Workshop)

a good pattern continuous customer feedback (get out of the building - GOOB)

customer metrics drive everything

think it. build it. ship it. tweak it

fail fast. learn fast.

lots of experimentation... build/measure/learn

Page 27: Real World Lessons Using Lean UX (Workshop)

fourdifferent PS3 experiences

launched on same day

launching the ps3 experience16 different test cells

2 different tech blogs were simultaneously reviewing different experiences

focus was on build/measure/learn

Page 28: Real World Lessons Using Lean UX (Workshop)

the epiphanydesign for volatility

Page 29: Real World Lessons Using Lean UX (Workshop)

you have to engineer for volatilitychange is the norm

the ui layer is the experimentation layer

experimentation is not a one time event

launching a product is giving birth to the product. the product’s life just begins.

design for throwaway-ability

majority of the experience code written is thrown away in a year

Page 30: Real World Lessons Using Lean UX (Workshop)

lean startupfounded on build/measure/learn

get out of the building (GOOB)

invalidate your risky assumptions

go for the minimal viable product (MVP)

fail fast, learn fast

get to the pivot

Page 31: Real World Lessons Using Lean UX (Workshop)

lean uxdesigning products for build/measure/learn (lean startup)requires 3 rules to be followed at all times

get to & maintain a shared understandingform deep collaboration across disciplineskeep continuous customer feedback flowing

Page 32: Real World Lessons Using Lean UX (Workshop)

engineering focused on learningengineering the build/measure/learn cycle shift the focus to minimal viable everything (MV*)

follows the key rules of lean ux:shared understanding deep collaboration continuous customer feedback

LEANENGINEERING

Applying Lean Startup Principles to

Bring Design to Life

Page 33: Real World Lessons Using Lean UX (Workshop)

shared understandingthe more understanding the less documentation

but this doesn’t mean NO documentation

you need whatever is needed to gain a shared understanding

Page 34: Real World Lessons Using Lean UX (Workshop)

deep collaborationstrong belief that ideas come from many different voices

trust is essential

all efforts never stray far from collaborative efforts

Page 35: Real World Lessons Using Lean UX (Workshop)

continuous customer feedbackthis is the lifeblood of the teamgets rid of politicsturns a team outside-in

Page 36: Real World Lessons Using Lean UX (Workshop)

getting to mvpmvp is a key tenant of lean startupapplied to engineering we should think: minimal viable everything. mv*minimal viable processminimal viable team sizeminimal viable technologyminimal viable toolswhat are startups using?

Page 37: Real World Lessons Using Lean UX (Workshop)

getting to mvpmvp is a key tenant of lean startupapplied to engineering we should think: minimal viable everything. mv*minimal viable processminimal viable team sizeminimal viable technologyminimal viable toolswhat are startups using?

zuck’s rule: how will the startup down the

street do this tomorrow? do it like that today.

Page 38: Real World Lessons Using Lean UX (Workshop)

healthy product life cycle

Discover Customer Insights

Define Customer Problems

Define Solution

Concepts

Deliver & Test

SolutionsCDI

Page 39: Real World Lessons Using Lean UX (Workshop)

the solutionrefactoring your way to the pattern

Page 40: Real World Lessons Using Lean UX (Workshop)

paypal vs netflix

Page 41: Real World Lessons Using Lean UX (Workshop)

new dna @paypaljan 2012fleshed out ui layer that could support rapid experimentation

march 2012david Marcus becomes president of PayPal

Page 42: Real World Lessons Using Lean UX (Workshop)

in the midst of transformation

Page 43: Real World Lessons Using Lean UX (Workshop)

hermes projectre-inventing checkout with lean ux

Page 44: Real World Lessons Using Lean UX (Workshop)

hermes project

whiteboardto code code to usability

product/design/engineering teams usability/customers

lean ux in action

Page 45: Real World Lessons Using Lean UX (Workshop)

free to iterate independent of agile

user interface engineering - agile scrum team

lean ux - lean team track

engineering - agile scrum teamsprint 0

usability usability usability usability usability

release release release release

{agile

lean ux can provide a brain for agile

Page 46: Real World Lessons Using Lean UX (Workshop)

the lessons learnedwhat you can apply to your teams

Page 47: Real World Lessons Using Lean UX (Workshop)

create a sandbox

IMVU allows every engineer to put a test out to 1% of users

at netflix we often created additional tests that designers or engineers independently wanted to try as a solution to a hypothesis

1

Page 48: Real World Lessons Using Lean UX (Workshop)

hotwire case study

how do you protect the parent organization from the internal startup? create a sandbox

Source: “Lean Startup in the Hotwire Enterprise” by Kristen Mirenda & Karl Shultz

Page 49: Real World Lessons Using Lean UX (Workshop)

hotwire case study: feedback

“hate it - can't even sort anymore”

“I don't like it because you cannot filter the results or

even sort them.. What were you thinking?”

“absolutely blows...pure garbage. need to be able to sort asap. i'll come work for you and

help you figure it out. wtf.”

Source: “Lean Startup in the Hotwire Enterprise” by Kristen Mirenda & Karl Shultz

Page 50: Real World Lessons Using Lean UX (Workshop)

hotwire case study: dataSource: “Lean Startup in the Hotwire Enterprise” by Kristen Mirenda & Karl Shultz

Page 51: Real World Lessons Using Lean UX (Workshop)

move to a “living spec”

break down barriers between prototyping and production

use developers for prototyping as forcing function

embrace RITE

avoid tools/process that get away from collaboration

2

Page 52: Real World Lessons Using Lean UX (Workshop)

make the spec realthere are many, many prototyping tools available now

you can create a living spec with these

however the fidelity is never the same as real code

recommend HTMLprototyping(more on this later)

Page 53: Real World Lessons Using Lean UX (Workshop)

but what about docs?watch out for “predictive documentation”

watch out for documentation that replaces collaboration or is a band-aid for bad process

good documentation will enhance collaboration, shared understanding and disseminate learnings

Page 54: Real World Lessons Using Lean UX (Workshop)

use a prototype stack

whiteboardto code code to usability

product/design team

user interfaceengineers

usability/customers

to enable learning

Page 55: Real World Lessons Using Lean UX (Workshop)

use a prototype stack

whiteboardto code code to usability

product/design team

user interfaceengineers

usability/customers

to enable learning

nodejs

JS librariesJS Templating(dustjs)

less -> CSS images

Page 56: Real World Lessons Using Lean UX (Workshop)

enables sketch to codeforcing function

it brings about a close collaboration between engineering and designit creates a bridge for shared understanding

requires a lot of confidence and transparency

Page 57: Real World Lessons Using Lean UX (Workshop)

how lean & agile can play together

fuller integration with services, unhappy paths & hardening error handling

prototyping happens in rapid succession (lean ux track)

services agile scrum teams

usability usability usability usability usability

release release release release

{agile

lean ux can provide a brain for agile

stories & code shared

lean & agile teams should blend together

Page 58: Real World Lessons Using Lean UX (Workshop)

code prototypes vs tools?use the right tool at the right time

as you get closer to agile

axure, proto.io, POP and a host of other prototyping tools are amazing -- especially early in the learning cycle

code prototypes important once you get close into the actual agile sprintsprovide high fidelity to the user testingfaster cycle from “learning to live”

Page 59: Real World Lessons Using Lean UX (Workshop)

suggestions for code prototypingbootstrap is one of the quickest to get going with

we use it on our production stack as well

jetstrap allows you to drag and drop a bootstrap page to get a quick start

nodejs is really powerful for prototyping your full application (web, tablet, desktop)

Page 60: Real World Lessons Using Lean UX (Workshop)

prototyping toolssee:

list of prototyping tools on my blog: http://bit.ly/SfWygk

few that we also use:Axure RPInVisionPOP

Page 61: Real World Lessons Using Lean UX (Workshop)

engineer for experimentation

long shelf life to rapid experimentationfocus on learning not on deliverydesign for volatilityrefactor the tech stack with learning in mind

3

Page 62: Real World Lessons Using Lean UX (Workshop)

experiences must learnAll buildings are predictions. All predictions are wrong.

There's no escape from this grim syllogism, but it can be softened.

Stewart Brand

Our software is always tearing itself apart (or should be)

Recognize that different layers change at different velocities

Page 63: Real World Lessons Using Lean UX (Workshop)

velocity changes by layerrecognize that different parts of tech stack change at different velocities

“any building is actually a hierarchy of pieces, each of which inherently changes at different rates” - Stewart Brand. How Buildings Learn.

design for throwaway-ability (volatility)!

“use before you reuse” (optimize for change)

utilize packaging or paths to capture experiments

Page 64: Real World Lessons Using Lean UX (Workshop)

why start with experience?stay honest & pure by having experience be the driver

(not what your boss thinks or what looks good on your resume or what the loudest one in the room thinks)

rememberuse before you reuselet the experience drive the engineeringreuse is an engineering optimization. use is what users do. reuse is what engineers do.

Page 65: Real World Lessons Using Lean UX (Workshop)

experience vs components

Page 66: Real World Lessons Using Lean UX (Workshop)

experience vs components

Page 67: Real World Lessons Using Lean UX (Workshop)
Page 68: Real World Lessons Using Lean UX (Workshop)
Page 69: Real World Lessons Using Lean UX (Workshop)

build in rapid experimentationthink of the UI layer as “the experimentation layer”

early rapid prototyping leads to learnings to get into the right ballpark

follow with live A/B Testing. Lots of it.creates a healthy environment with constant customer feedback loopscontrast this with “long shelf life” culture

Page 70: Real World Lessons Using Lean UX (Workshop)

requirements for lean Stackindependent of the backend language

flexible enough to run in either the server or in the client

equally good at building web sites as it is building web applications

pushable outside of the application stack (publish model)

cleanly separated from the backend/app code (ideally by JSON)

utilize what is common to developers

quick & easy to build & tear down components

Page 71: Real World Lessons Using Lean UX (Workshop)

tangled up technologybig problem. technology and processes not geared to build/test/learn.

refactor your way out of technical and experience debt

Page 72: Real World Lessons Using Lean UX (Workshop)

technical debtwe have to be on modern tech stack to continuously innovate

we have to be on a continuously available stack

continuously integrating

continuously deploying

Page 73: Real World Lessons Using Lean UX (Workshop)

stack circa 2011/early 2012

simple change could take minutes to see

follows an “enterprise application” model. ui gets built into the “app”java

jsp***

restricted capabilities*

prototyping was hard

“ui bits” could only

live here

* assumed client developers were low-skill* required server side java eng for simple client changes** java server pages. server-side java templating solution

server side components**

client

server

Page 74: Real World Lessons Using Lean UX (Workshop)

a tale of two stacks (c++ & java)

two non-standard stacks

new stack tied to Java

“one word” change could take 6 weeks to fix on c++ stack

c++ java

xml jsp

proprietary ui

proprietary ui

old new’ish

long release cycles

Page 75: Real World Lessons Using Lean UX (Workshop)

decision was to move to java

migration was already in place to leave the c++/xml stack behind

some odd choices preceded this: write everything in java (html, css & js!!)

c++ java

xml jsp

proprietary ui

proprietary uiXold new’ish

Page 76: Real World Lessons Using Lean UX (Workshop)

old stack not designed for learning

this new stack was not conducive to prototyping

followed an “enterprise application” model. ui gets built into the “app”

ajax/components all done server-side (subclass java controller)

java

jsp

proprietary ui

prototyping was hard

“ui bits” could only

live here

Page 77: Real World Lessons Using Lean UX (Workshop)

separate the ui bitscode = JS

(backbone)templates = JS

{dust}style = CSS

(less)images

re-engineered the user interface stack so that the only artifacts are:• javascript• css• images

ditched the server-side mentality to creating UIs• no more server-side only

templates• no more server-side

components• no more server-side

managing the ui

Page 78: Real World Lessons Using Lean UX (Workshop)

use javascript templating

templates get converted to javascript<p>Hello {name}</p>

we use dust.js

code = JS(backbone)

templates = JS{dust}

style = CSS(less)

images

JavaScriptcompiles to...

javascript executedto generate ui

Page 79: Real World Lessons Using Lean UX (Workshop)

ui bits now just natural web artifacts

server-side language independent

server/client agnostic

CDN ready

cacheable

rapid to create

code = JS(backbone)

templates = JS{dust}

style = CSS(less)

images

Page 80: Real World Lessons Using Lean UX (Workshop)

portable in all directions

JS templating can be run in client browser or server on the production stack

we can drag & drop the ui bits from prototyping stack to the production stack

java (rhinoscript)

node.js

{dust}JS template

prototypestack

productionstack

{dust}JS template

client OR

server

either stack

Page 81: Real World Lessons Using Lean UX (Workshop)

embrace open source fullystop rolling your own solutionsdemocratize software developmentbuild software that can be shared (keeps architecture clean)

4

Page 82: Real World Lessons Using Lean UX (Workshop)

use open source religiously

Page 83: Real World Lessons Using Lean UX (Workshop)

work in open source modelinternal github revolutionized our internal development

rapidly replaced centralized platform teams

innovation democratized

every developer encouraged to experiment and generate repos to share as well as to fork/pull request

Page 84: Real World Lessons Using Lean UX (Workshop)

give back to open sourcewe have a projects that we will open source

node bootstrap (similar to yeoman)

we are contributing back to open sourcecontributions to bootstrap (for accessibility)contributions to bootstrap (for internationalization)core committer on dustjs project

Page 85: Real World Lessons Using Lean UX (Workshop)

using github for continuous *use github for continuous integration

starting to use github repo model for continuous deployment

marketing pagesproduct pagescontent updates & triggers into i18n, l10n, adaptationcomponents

Page 86: Real World Lessons Using Lean UX (Workshop)

give agile a brainuse lean ux as the brain for agile

develop a lean cadence

involve all members in lean ux (balanced teams)

5

Page 87: Real World Lessons Using Lean UX (Workshop)

free to test frequently with users

Page 88: Real World Lessons Using Lean UX (Workshop)

sprint fasterfocus on getting to customer as early and as often as possible

removes the politics in the team as this becomes the arbiter

you can slow down this cadence after you converge on key hypotheses and potential solutions

Page 89: Real World Lessons Using Lean UX (Workshop)

example: spotifysquads run like lean startups

Page 90: Real World Lessons Using Lean UX (Workshop)

spotify: squadsimilar to scrum team. feels like startuplong term mission: build & improve the product. stay long term on the product.apply lean startup principles like MVP“think it, build it, ship it, tweak it”emphasis on great workspace

Page 91: Real World Lessons Using Lean UX (Workshop)

spotify: tribescollection of squads that work in a related area

incubators for tribes

hold regular gatherings

Page 92: Real World Lessons Using Lean UX (Workshop)

spotify: chapters and guildschapters represent horizontal practices within a tribe

guilds represent horizontal practices across tribes

Page 93: Real World Lessons Using Lean UX (Workshop)

become hypothesis drivenlearn to state design goals in terms of solving specific customer problems

don’t be afraid to invalidate hypotheses

look for the pivot

6

Page 94: Real World Lessons Using Lean UX (Workshop)

embrace the problem not the solutionengineering: don’t start with technology, start with experiencedesign: get your ideas out earlytogether: get in front of customers so problem is the focus, not our current solution

7

Page 95: Real World Lessons Using Lean UX (Workshop)

co-locate if at all possible

high bandwidth “meatspace” facilitates shared understanding and deep collaboration

also facilitates shared time with the customer

8

Page 96: Real World Lessons Using Lean UX (Workshop)

suggestionsat a minimum teams should come together for the first few weeks to build shared understanding, deep collaboration and getting feedback from customers

for distributed members use high bandwidth communication where possible (skype, tele-presence)

high bandwidth communication necessary.

Page 97: Real World Lessons Using Lean UX (Workshop)

github counterpointelectronic: discussion, planning and operations process should be in high fidelity electronics.

available: work should be visible and expose process. work should have a URL. single source truth.

asynchronous: almost nothing should require direct interruption.

lock-free: avoid synchronization points.

cooperation without coordinationhttp://tomayko.com/writings/adopt-an-open-source-process-constraints

Page 98: Real World Lessons Using Lean UX (Workshop)

tools that can help

Page 99: Real World Lessons Using Lean UX (Workshop)

team working agreementdecide who is the decision makerdefine your cadencedefine how you will work togetherdefine your hypotheses

Page 100: Real World Lessons Using Lean UX (Workshop)

team working agreementdecide who is the decision makerdefine your cadencedefine how you will work togetherdefine your hypotheses

Page 101: Real World Lessons Using Lean UX (Workshop)

shared understandingthe more understanding the less documentation

but this doesn’t mean NO documentation

you need whatever is needed to gain a shared understanding

Page 102: Real World Lessons Using Lean UX (Workshop)

deep collaborationstrong belief that ideas come from many different voices

trust is essential

all efforts never stray far from collaborative efforts

Page 103: Real World Lessons Using Lean UX (Workshop)

continuous customer feedbackthis is the lifeblood of the teamgets rid of politicsturns a team outside-in

Page 104: Real World Lessons Using Lean UX (Workshop)

getting to mvpmvp is a key tenant of lean startupapplied to engineering we should think: minimal viable everything. mv*minimal viable processminimal viable team sizeminimal viable technologyminimal viable toolswhat are startups using?

Page 105: Real World Lessons Using Lean UX (Workshop)

getting to mvpmvp is a key tenant of lean startupapplied to engineering we should think: minimal viable everything. mv*minimal viable processminimal viable team sizeminimal viable technologyminimal viable toolswhat are startups using?

zuck’s rule: how will the startup down the

street do this tomorrow? do it like that today.

Page 106: Real World Lessons Using Lean UX (Workshop)

picture creditshttp://www.flickr.com/photos/wuschl2202/531914709/sizes/o/in/photostream/http://www.flickr.com/photos/a_ninjamonkey/3565672226/sizes/z/in/photostream/http://www.flickr.com/photos/funky64/4367871917/sizes/z/in/photostream/http://www.flickr.com/photos/emdot/9938521/sizes/o/in/photostream/http://www.flickr.com/photos/gregory_bastien/2565132371/sizes/z/in/photostream/http://www.flickr.com/photos/trvr3307/3703648270/sizes/z/in/photostream/http://www.flickr.com/photos/legofenris/5426012042/sizes/l/in/photostream/http://www.flickr.com/photos/cleaneugene/6866436746/sizes/c/in/photostream/http://www.flickr.com/photos/66309414@N04/6172219058/sizes/l/in/photostream/http://www.flickr.com/photos/nicmcphee/2954167050/sizes/l/in/photostream/http://www.flickr.com/photos/pasukaru76/6151366656/sizes/l/in/photostream/http://www.flickr.com/photos/brianmitchell/2113553867/sizes/o/in/photostream/http://www.flickr.com/photos/ciscel/422253425/sizes/z/in/photostream/http://www.flickr.com/photos/zebble/6817861/sizes/l/in/photostream/http://www.flickr.com/photos/nicasaurusrex/3069602246/sizes/l/in/photostream/http://www.flickr.com/photos/nathangibbs/98592171/sizes/z/in/photostream/http://www.flickr.com/photos/neilsingapore/4047105116/sizes/l/http://www.flickr.com/photos/smb_flickr/439040132/http://www.flickr.com/photos/therevsteve/3104267109/sizes/o/http://www.flickr.com/photos/st3f4n/4193370268/sizes/l/http://www.flickr.com/photos/eole/380316678/sizes/z/http://www.flickr.com/photos/cobalt/3035453914/sizes/z/http://www.flickr.com/photos/mbiskoping/6075387388/http://www.flickr.com/photos/fragglerawker/2370316759/sizes/z/http://www.flickr.com/photos/soldiersmediacenter/4685688778/sizes/z/

Page 107: Real World Lessons Using Lean UX (Workshop)

picture credits (continued)http://www.flickr.com/photos/dahlstroms/4083220012/sizes/l/http://www.flickr.com/photos/don2/53874580/sizes/z/http://www.flickr.com/photos/hao_nguyen/3634552812/sizes/z/http://www.flickr.com/photos/42573918@N00/8194636033/http://www.flickr.com/photos/pagedooley/2420194539/sizes/z/http://www.flickr.com/photos/neilsingapore/4047105116/sizes/l/http://www.flickr.com/photos/smb_flickr/439040132/http://www.flickr.com/photos/therevsteve/3104267109/sizes/o/http://www.flickr.com/photos/st3f4n/4193370268/sizes/l/http://www.flickr.com/photos/eole/380316678/sizes/z/http://www.flickr.com/photos/cobalt/3035453914/sizes/z/http://www.flickr.com/photos/mbiskoping/6075387388/http://www.flickr.com/photos/fragglerawker/2370316759/sizes/z/http://www.flickr.com/photos/soldiersmediacenter/4685688778/sizes/z/http://www.flickr.com/photos/janed42/5033842895/sizes/z/http://www.flickr.com/photos/9619972@N08/1350940605/http://www.flickr.com/photos/alanenglish/483251259/sizes/z/

thanks flickr!