lean engineering: how to make engineering a full lean ux partner

63
lean engineering how to make engineering a full lean UX partner Web Directions South 30 Oct 2014 @billwscott VP Engineering Retail | Merchant | Payments PayPal

Upload: bill-scott

Post on 14-Jun-2015

3.788 views

Category:

Engineering


2 download

DESCRIPTION

In 1999, PayPal's name was synonymous with innovation. In fact, the so called PayPal Mafia (original founders) went on to establish Tesla, SpaceX, YouTube, Skype and other startups. They also provided the early investments of many of the most innovative companies on the internet today. But over time that innovation slowed to a crawl. In 2011 a number of things begin to come together for PayPal that started its journey back to innovation. This is the story of that reboot and how engineering has played a key role in partnering directly with product and design to move from a culture of products having a long shelf life, to one of rapid experimentation. In this talk, Bill will outline the principles of Lean Engineering; principles for engineering that enable learning. Drawing from his experience leading User Interface Engineering at both Netflix & PayPal, Bill will walk you through the key principles your engineering team will need to adopt to be that enabler for product and design in your organization. This talk will not just inspire you, but it will also give you some hard earned advice on making this a reality in your organization.

TRANSCRIPT

Page 1: Lean Engineering: How to make Engineering a full Lean UX partner

lean engineering how to make engineering a full lean UX partner

Web Directions South 30 Oct 2014

@billwscottVP Engineering Retail | Merchant | Payments !PayPal

Page 2: Lean Engineering: How to make Engineering a full Lean UX partner

continuous customer feedback (GOOB)

customer metrics drive everything

think it. build it. ship it. tweak it

fail fast. learn fast.

lots of experimentation... build/measure/learn

designing & engineering for experimentation

netflix view of customer

Page 3: Lean Engineering: How to make Engineering a full Lean UX partner

paypal vs netflix contrast this with a large enterprise like paypal in

2011

Page 4: Lean Engineering: How to make Engineering a full Lean UX partner
Page 5: Lean Engineering: How to make Engineering a full Lean UX partner

In 2011, even a simple content copy change could take as much as 4-6 weeks to get live to site

Page 6: Lean Engineering: How to make Engineering a full Lean UX partner

paypal way of engineering & design (in 2011)

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

inward focus. risk averse.

Page 7: Lean Engineering: How to make Engineering a full Lean UX partner

change is hard

Page 8: Lean Engineering: How to make Engineering a full Lean UX partner

organizations contain anti-bodies that resist change

Page 9: Lean Engineering: How to make Engineering a full Lean UX partner

behavior is deep seated and reinforced

Page 10: Lean Engineering: How to make Engineering a full Lean UX partner

new dna insertedjan 2012fleshed out ui layer that could support rapid experimentation.

march 2012 david Marcus became president of PayPal. set a new charter for innovation.

april 2012formed lean ux team to reinvent checkout experience.

Page 11: Lean Engineering: How to make Engineering a full Lean UX partner

reinvent checkout project lean ux/engineering in action

Page 12: Lean Engineering: How to make Engineering a full Lean UX partner

reinvent checkout project lean ux/engineering in action

from whiteboard to code

Page 13: Lean Engineering: How to make Engineering a full Lean UX partner

reinvent checkout project lean ux/engineering in action

from whiteboard to code from code to usability

Page 14: Lean Engineering: How to make Engineering a full Lean UX partner

reinvent checkout project lean ux/engineering in action

from whiteboard to code from code to usabilitylearnings

Page 15: Lean Engineering: How to make Engineering a full Lean UX partner

reinvent checkout project lean ux/engineering in action

from whiteboard to code from code to usabilitylearningsstart again

Page 16: Lean Engineering: How to make Engineering a full Lean UX partner

before

Page 17: Lean Engineering: How to make Engineering a full Lean UX partner

after

Page 18: Lean Engineering: How to make Engineering a full Lean UX partner
Page 19: Lean Engineering: How to make Engineering a full Lean UX partner
Page 20: Lean Engineering: How to make Engineering a full Lean UX partner
Page 21: Lean Engineering: How to make Engineering a full Lean UX partner
Page 22: Lean Engineering: How to make Engineering a full Lean UX partner
Page 23: Lean Engineering: How to make Engineering a full Lean UX partner
Page 24: Lean Engineering: How to make Engineering a full Lean UX partner
Page 25: Lean Engineering: How to make Engineering a full Lean UX partner

change has started working its way out

Page 26: Lean Engineering: How to make Engineering a full Lean UX partner

LEAN ENGINEERING

enabling build/measure/learn

Page 27: Lean Engineering: How to make Engineering a full Lean UX partner

LEAN ENGINEERING

enabling build/measure/learn

four principles

Page 28: Lean Engineering: How to make Engineering a full Lean UX partner

1. enable learning

Page 29: Lean Engineering: How to make Engineering a full Lean UX partner

most organizations biggest challenge is moving from a culture of delivery to a culture of learning

Page 30: Lean Engineering: How to make Engineering a full Lean UX partner

enable continuous delivery

engineering has to make delivery a non-event

otherwise: delivery dates drive the experience feature-itus becomes prevalent BDUF & waterfall prevail little to no learning

Page 31: Lean Engineering: How to make Engineering a full Lean UX partner

a tale of two trains

departs infrequently

“gotta get my features on this train or I will have to wait a long time”

departs all the time

“if I miss this train another one comes in a few minutes”

Page 32: Lean Engineering: How to make Engineering a full Lean UX partner

enable prototyping in the engineering stackbecause engineering teams are not trying to solve the learning problem, they see prototyping as outside the engineering discipline !

this is a real engineering challenge

engineer for the “living spec”

Page 33: Lean Engineering: How to make Engineering a full Lean UX partner

enable prototyping in the engineering stackbecause engineering teams are not trying to solve the learning problem, they see prototyping as outside the engineering discipline !

this is a real engineering challenge

engineer for the “living spec”make prototyping a first

class member of tech stack

Page 34: Lean Engineering: How to make Engineering a full Lean UX partner

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 35: Lean Engineering: How to make Engineering a full Lean UX partner

we blended prototype & production

we enabled the “ui bits” to be portable between the prototyping stack and the production stack java (rhino js eng)node.js

{dust} JS template

prototype stack

production stack

{dust} JS template

either stack

Page 36: Lean Engineering: How to make Engineering a full Lean UX partner

java (rhino js eng)

production stack

{dust} JS template

new single stack: prototype & production

node.js

{dust} JS template

prototype stack

the final step is we made the prototype stack and production stack the same technology throughout the application stack

Page 37: Lean Engineering: How to make Engineering a full Lean UX partner

java (rhino js eng)

production stack

{dust} JS template

new single stack: prototype & production

node.js

{dust} JS template

prototype stack

the final step is we made the prototype stack and production stack the same technology throughout the application stack

Page 38: Lean Engineering: How to make Engineering a full Lean UX partner

2. design for experimentation

Page 39: Lean Engineering: How to make Engineering a full Lean UX partner

16 different test cells in the initial PS3 Launch (2010)

focus is on experimentation

!

the netflix way

Page 40: Lean Engineering: How to make Engineering a full Lean UX partner

16 different test cells in the initial PS3 Launch (2010)

focus is on experimentation

!

four distinct PS3 experiences launched on same day

the netflix way

Page 41: Lean Engineering: How to make Engineering a full Lean UX partner

the epiphany

Page 42: Lean Engineering: How to make Engineering a full Lean UX partner

you have to engineer for volatility

change is the norm

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 was thrown away in a year

Page 43: Lean Engineering: How to make Engineering a full Lean UX partner

you have to engineer for volatility

change is the norm

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 was thrown away in a year

the ui layer is the

experimentation layer

Page 44: Lean Engineering: How to make Engineering a full Lean UX partner

html5 enabled netflix’s experimentation model

new users will see your html5 experience

the onramp to onboarding is the lowly link

network delivery makes a/b testing straightforward

netflix gambled on html5 for mobile (iOS, android) and for game consoles, bluray players, hdtvs, etc.

why? build/measure/learn. network delivery.

Page 45: Lean Engineering: How to make Engineering a full Lean UX partner

experiences must adapt

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

Recognize that different layers change at different velocities

All buildings are predictions. All predictions are wrong.

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

Stewart Brand

Page 46: Lean Engineering: How to make Engineering a full Lean UX partner

enable lots of little betsthe big bet. ramping model results in one experience (with some tweaks along the way) after a long ramp up time

lots of little bets. experimentation model results in many experiences being tested all along the way

vs

Page 47: Lean Engineering: How to make Engineering a full Lean UX partner

3. democratize innovation

Page 48: Lean Engineering: How to make Engineering a full Lean UX partner

two pizza team?

Page 49: Lean Engineering: How to make Engineering a full Lean UX partner

two pizza team?

Page 50: Lean Engineering: How to make Engineering a full Lean UX partner

keep teams small

Page 51: Lean Engineering: How to make Engineering a full Lean UX partner

democratize the code basestarting to use git repo model for continuous deployment

marketing pages product pages content updates & triggers into i18n, l10n, adaptation components

works well with cloud deployment (devops model)

enables the train to be leaving all the time

Page 52: Lean Engineering: How to make Engineering a full Lean UX partner

work in open source modelinternal github revolutionizing our internal development

rapidly replacing centralized platform teams

innovation democratized

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

Page 53: Lean Engineering: How to make Engineering a full Lean UX partner
Page 54: Lean Engineering: How to make Engineering a full Lean UX partner

use open source religiously

nconf

async

q

supertest

Page 55: Lean Engineering: How to make Engineering a full Lean UX partner

4. give agile a brain

credit: Krystal Higgins http://bit.ly/18uP7N1

Page 56: Lean Engineering: How to make Engineering a full Lean UX partner

agile is just a machineit will crank ‘stuff’ out

it can be good or bad stuff

please don’t waste the machine

have a tight loop with our users

iterate to get experience “in the ballpark”

make it easy to iterate designs ahead of agile sprints

Page 57: Lean Engineering: How to make Engineering a full Lean UX partner

agile is just a machineit will crank ‘stuff’ out

it can be good or bad stuff

please don’t waste the machine

have a tight loop with our users

iterate to get experience “in the ballpark”

make it easy to iterate designs ahead of agile sprints

the “brain” is our user

Page 58: Lean Engineering: How to make Engineering a full Lean UX partner

lean ux: enable a brain for agile

user interface engineering - agile scrum team (production)

lean ux - lean team track (prototyping)

engineering - agile scrum teamsprint 0

usability usability usability usability usability

release release release release

{agile

version 1.0

Page 59: Lean Engineering: How to make Engineering a full Lean UX partner

lean ux: enable a brain for agile

user interface engineering - agile scrum team (production)

lean ux - lean team track (prototyping)

engineering - agile scrum teamsprint 0

usability usability usability usability usability

release release release release

{agile

stories, user interface code come over from the leanux stream!n+2 is more feasible because it actually bootstraps the agile stream

version 1.0

Page 60: Lean Engineering: How to make Engineering a full Lean UX partner

shared understanding

deep collaboration

continuous feedback

how teams get the right mindset

Page 61: Lean Engineering: How to make Engineering a full Lean UX partner

the mind of the team

does your team “defend the solution” or “embrace the problem”?

Page 62: Lean Engineering: How to make Engineering a full Lean UX partner

rethink engineering in the light of lean

1. enable learning 2. design for experimentation 3. democratize engineering 4. give agile a brain

LEAN ENGINEERING

!

!

Engineering for build/measure/learn

Page 63: Lean Engineering: How to make Engineering a full Lean UX partner

designing web interfacesO’Reilly

picture creditshttp://www.flickr.com/photos/decade_null/2053134780/http://www.flickr.com/photos/not_wise/182849352/http://www.flickr.com/photos/37217398@N02/3442676067/http://www.flickr.com/photos/hongiiv/4151964823/Photo by Kim White: http://readwrite.com/2013/09/05/paypal-app-update-in-store-payments#awesm=~ohHUppP9dhMmMGhttp://www.flickr.com/photos/matthewpaulson/6176787688/http://www.flickr.com/photos/olvrbrown/4542851399/http://www.flickr.com/photos/juanpol/16287486/http://www.flickr.com/photos/olvrbrown/4542851399/http://www.flickr.com/photos/mbiskoping/6075387388/http://www.flickr.com/photos/giesenbauer/4092794246/http://www.flickr.com/photos/kowani/5565778790/http://www.flickr.com/photos/ahockley/2657296577/http://www.flickr.com/photos/90585146@N08/8222922317/http://www.flickr.com/photos/therevsteve/3104267109/Stewart Brand: How Buildings Learn (illustrations)http://www.flickr.com/photos/light_seeker/7444052000/Krystal Higgins: http://www.kryshiggins.com/sketchnotes-of-bringing-design-to-life-with-lean-ux-lean-engineering/http://www.flickr.com/photos/epsos/8463683689/http://www.flickr.com/photos/proimos/3473264448/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/http://www.flickr.com/photos/stuckincustoms/2380543038/ !

follow me on twitter @billwscott