SlideShare a Scribd company logo
1 of 65
Download to read offline
6 principles for enabling build/measure/learn
lean engineering in action
Lean Day West
Portland, OR
Sept 17, 2013
@billwscott
Sr. Director
User Interface Engineering
@paypal
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
engineering for experimentation
netflix view of engineering
paypal vs netflix
contrast this with a large enterprise like paypal (circa 2011)
two pizza team?
two burger team?
paypal way of engineering (in 2011)
roll your own. disconnected delivery
experience. culture of long shelf life.
inward focus. risk averse.
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
In 2011, even a simple
content copy change
could take as much as 6
weeks to get live to site
new dna inserted
jan 2012
fleshed out ui layer that could support rapid
experimentation
march 2012
david Marcus becomes president of PayPal
april 2012
formed lean ux team to reinvent checkout
experience
hermes project lean ux/engineering in action
hermes project lean ux/engineering in action
from whiteboard to code
hermes project lean ux/engineering in action
from whiteboard to code from code to usability
hermes project lean ux/engineering in action
from whiteboard to code from code to usability
learnings
hermes project lean ux/engineering in action
from whiteboard to code from code to usability
learningsstart again
before
after
change has started working its way out
change has started working its way out
change has started working its way out
rethink engineering in the
light of lean
shift the lens of engineering to
embrace the build/measure/learn
cycle
engineer for experimentation
LEANENGINEERING
Engineeringfor
Experimentation
withLeanStartup
Principles
LEANENGINEERING
6principlesforenabling
build/measure/learn
1. engineer for learning, not delivery
most organizations biggest challenge is moving
from a culture of delivery to a
culture of learning
include engineering in customer learning
engineers should regularly be in usability
studies & customer visits
feedback from “measure” phase should
be regularly discussed in engineering
you want to create an engineering
culture that focuses on real customer
problems
include engineering in customer learning
engineers should regularly be in usability
studies & customer visits
feedback from “measure” phase should
be regularly discussed in engineering
you want to create an engineering
culture that focuses on real customer
problems
engineer
enable prototyping in the engineering stack
because 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”
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
we blended prototype & production
we enabled the “ui bits” to be
portable between the prototyping
stack and the production stackjava (rhino JS eng)node.js
{dust}
JS template
prototype
stack
production
stack
{dust}
JS template
either stack
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
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
connect delivery to
learning
in 1985 I delivered software on a 3.5”
diskette
little or no feedback loop
everything was focused on getting it
the one right experience on the disk
no user in the loop. experience
happened somewhere down the
supply chain
enable learning on mobile
native apps make it easier
to create a rich experience
however, they are limited in
reach and in learning
capability
app install rates will only be
a subset of the customer
base
you need both a native and
html5 strategy in order to
maximize learning
html5 is critical to learning strategy
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.
2. engineer for experimentation
16 different test cells in the initial PS3 Launch (2010)
focus is on experimentation
the netflix way
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
build
embrace
continuous delivery
make mistakes fast
measure learn
the etsy way. Kellan Elliott-McCrea, CTO etsy
use metrics driven
development
know that you made a
mistake
blameless post
mortems
learn from your
mistakes
ramping vs experimenting
the 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
long shelf life kills
experimentation
engineering has to make delivery a non-
event
result
delivery dates drive the experience
feature-itus becomes prevalent
BDUF & waterfall prevail
little to no learning
a tale of two trains
departs infrequently
“gotta get on the train or I will have
to wait a long time”
a tale of two trains
departs infrequently
“gotta get on the 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”
using git for continuous deployment
starting 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
3. design for volatility
the epiphany
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 is thrown
away in a year
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 is thrown
away in a year
the ui layer is the
experimentation layer
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
4. decentralize engineering
building experiences
circa 1985
merry band of three. dropped out of
college for semester. it was nirvana.
however...
roll your own “everything”
(close your eyes & imagine)
no internet. no google. no blogs. no email. no
blogs. no stackoverflow. no github. no twitter.
much of the software era has been about
building from scratch.
of course open source was gaining momentum.
unix. gnu. linux. perl. mozilla.
work in open source model
internal 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
give back to open source
we have projects that we will open source
node webcore (similar to yeoman)
we are contributing back to open source
contributions to bootstrap (for accessibility)
contributions to bootstrap (for internationalization)
core committer on dustjs project
use open source religiously
nconf
async
q
supertest
5. put a brain on agile
credit: Krystal Higgins
http://bit.ly/18uP7N1
agile doesn’t have a brain...
agile is a hungry machine. it will crank out garbage or brilliance. and it will
do it iteratively.
it is a travesty to waste this machine
you have to get the experience “in the ballpark” to best use the machine
it is imperative to make it easy to iterate designs ahead of the agile sprints
leanux in the form of a “leanux scrum team” is one way to do this
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
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
too many teams can create silos within the
exerience
what can fracture the experience
• number of scrum teams
• specialization of skills
• device channels
• regional adaptations
CE2
watch out for fracturing
the experience
as we have mapped lean onto agile it has
exposed mismatches between the way we
work
you run the risk:
• driving the experience based on eng teams
• becoming a botteneck
in almost all cases
• either product is not aligned to the biz
• or there are just too many people
watch out for mismatch
between teams
6. refactor your way out of debt
technical debt
rarely do you have a clean slate
generally you will have to refactor your
way to a nimble framework
ensured we could run “ui bits” on new & legacy
we chose to make our
“ui bits” as close to
regular HTML/CSS as
possible
we enabled the same “ui
bits” (templates) to run
on any of our stacks
java
(rhino js eng)
node.js
prototype
stack
&
production
stack
production
stack
client
server
any stack
c++
(v8 js eng)
production
stack
{dust}
JS template
experience debt
don’t just think about our technical debt
consider the “experience debt”
cripples our ability to capture market and
inhibits learning
key that engineering sees a chance to
improve the experience whenever they
are cleaning up technical debt
rethink engineering in the
light of lean
shift the lens of engineering to
embrace the build/measure/learn
cycle
engineer for experimentation
LEANENGINEERING
Engineeringfor
Experimentation
withLeanStartup
Principles
designing web interfaces
O’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=~ohHUppP9dhMmMG
http://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/stuckincustoms/2380543038/
follow me on twitter
@billwscott

More Related Content

What's hot

Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerBill Scott
 
Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Balanced Team
 
Lean Engineering. Applying Lean Principles to Building Experiences
Lean Engineering. Applying Lean Principles to Building ExperiencesLean Engineering. Applying Lean Principles to Building Experiences
Lean Engineering. Applying Lean Principles to Building ExperiencesBill Scott
 
It is not supposed to fly but it does
It is not supposed to fly but it doesIt is not supposed to fly but it does
It is not supposed to fly but it doesGabriele Lana
 
Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013
Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013
Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013XebiaLabs
 
Don't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous deliveryDon't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous deliverySolano Labs
 
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 EditionCaleb Jenkins
 
Getting Started with IntelliJ IDEA as an Eclipse User
Getting Started with IntelliJ IDEA as an Eclipse UserGetting Started with IntelliJ IDEA as an Eclipse User
Getting Started with IntelliJ IDEA as an Eclipse UserZeroTurnaround
 
Coding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever ChangedCoding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever ChangedElizabeth Quinn-Woods
 
10 Reasons Your Software Sucks 2014 - Tax Day Edition!
10 Reasons Your Software Sucks 2014 - Tax Day Edition!10 Reasons Your Software Sucks 2014 - Tax Day Edition!
10 Reasons Your Software Sucks 2014 - Tax Day Edition!Caleb Jenkins
 
Scaling Scrum with UX in the Enterprise
Scaling Scrum with UX in the EnterpriseScaling Scrum with UX in the Enterprise
Scaling Scrum with UX in the EnterpriseCaleb Jenkins
 
DevOps The Cultural revolution
DevOps The Cultural revolutionDevOps The Cultural revolution
DevOps The Cultural revolutionSomenath Ghosh
 
Bilbostack19 devops is not what you think
Bilbostack19 devops is not what you thinkBilbostack19 devops is not what you think
Bilbostack19 devops is not what you thinkEduardo Ferro Aldama
 
Multilanguage pipelines with Jenkins, Docker and Kubernetes (DevOpsDays Riga ...
Multilanguage pipelines with Jenkins, Docker and Kubernetes (DevOpsDays Riga ...Multilanguage pipelines with Jenkins, Docker and Kubernetes (DevOpsDays Riga ...
Multilanguage pipelines with Jenkins, Docker and Kubernetes (DevOpsDays Riga ...Jorge Hidalgo
 
Bulletproof design systems using storybook
Bulletproof design systems using storybookBulletproof design systems using storybook
Bulletproof design systems using storybookChen Feldman
 
Global Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventGlobal Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventLemi Orhan Ergin
 

What's hot (19)

Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
 
Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...
 
Lean Engineering. Applying Lean Principles to Building Experiences
Lean Engineering. Applying Lean Principles to Building ExperiencesLean Engineering. Applying Lean Principles to Building Experiences
Lean Engineering. Applying Lean Principles to Building Experiences
 
It is not supposed to fly but it does
It is not supposed to fly but it doesIt is not supposed to fly but it does
It is not supposed to fly but it does
 
Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013
Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013
Losing Sight of DevOps in an Automation Forest - devopsdays Atlanta 2013
 
Don't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous deliveryDon't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous delivery
 
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
 
Getting Started with IntelliJ IDEA as an Eclipse User
Getting Started with IntelliJ IDEA as an Eclipse UserGetting Started with IntelliJ IDEA as an Eclipse User
Getting Started with IntelliJ IDEA as an Eclipse User
 
Coding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever ChangedCoding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever Changed
 
10 Reasons Your Software Sucks 2014 - Tax Day Edition!
10 Reasons Your Software Sucks 2014 - Tax Day Edition!10 Reasons Your Software Sucks 2014 - Tax Day Edition!
10 Reasons Your Software Sucks 2014 - Tax Day Edition!
 
Scaling Scrum with UX in the Enterprise
Scaling Scrum with UX in the EnterpriseScaling Scrum with UX in the Enterprise
Scaling Scrum with UX in the Enterprise
 
01-a-Intro-BetterDev
01-a-Intro-BetterDev01-a-Intro-BetterDev
01-a-Intro-BetterDev
 
DevOps The Cultural revolution
DevOps The Cultural revolutionDevOps The Cultural revolution
DevOps The Cultural revolution
 
Bilbostack19 devops is not what you think
Bilbostack19 devops is not what you thinkBilbostack19 devops is not what you think
Bilbostack19 devops is not what you think
 
Explicit architecture
Explicit architectureExplicit architecture
Explicit architecture
 
DevOps?!@
DevOps?!@DevOps?!@
DevOps?!@
 
Multilanguage pipelines with Jenkins, Docker and Kubernetes (DevOpsDays Riga ...
Multilanguage pipelines with Jenkins, Docker and Kubernetes (DevOpsDays Riga ...Multilanguage pipelines with Jenkins, Docker and Kubernetes (DevOpsDays Riga ...
Multilanguage pipelines with Jenkins, Docker and Kubernetes (DevOpsDays Riga ...
 
Bulletproof design systems using storybook
Bulletproof design systems using storybookBulletproof design systems using storybook
Bulletproof design systems using storybook
 
Global Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventGlobal Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul Event
 

Viewers also liked

User-Centered Interaction Design
User-Centered Interaction DesignUser-Centered Interaction Design
User-Centered Interaction DesignChris Avore
 
Week 2 IxD History: Interaction Design before Computers
Week 2 IxD History: Interaction Design before ComputersWeek 2 IxD History: Interaction Design before Computers
Week 2 IxD History: Interaction Design before ComputersKaren McGrane
 
Metro UI interaction design guidelines @Microsoft Tech.Days 2011
Metro UI interaction design guidelines @Microsoft Tech.Days 2011Metro UI interaction design guidelines @Microsoft Tech.Days 2011
Metro UI interaction design guidelines @Microsoft Tech.Days 2011David Chen
 
Anti-Patterns that Stifle Lean UX Teams
Anti-Patterns that Stifle Lean UX TeamsAnti-Patterns that Stifle Lean UX Teams
Anti-Patterns that Stifle Lean UX TeamsBill Scott
 
Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)Bill Scott
 
101 Things I Learned In Interaction Design School - Web Directions South
101 Things I Learned In Interaction Design School - Web Directions South101 Things I Learned In Interaction Design School - Web Directions South
101 Things I Learned In Interaction Design School - Web Directions SouthShane Morris
 
Designing Web Interfaces Book - O'Reilly Webcast
Designing Web Interfaces Book - O'Reilly WebcastDesigning Web Interfaces Book - O'Reilly Webcast
Designing Web Interfaces Book - O'Reilly WebcastBill Scott
 
Interaction design workshop
Interaction design workshopInteraction design workshop
Interaction design workshopShyamala Prayaga
 
Foundations of Interaction Design
Foundations of Interaction DesignFoundations of Interaction Design
Foundations of Interaction DesignKaren McGrane
 
Bringing Change to Life
Bringing Change to LifeBringing Change to Life
Bringing Change to LifeBill Scott
 

Viewers also liked (10)

User-Centered Interaction Design
User-Centered Interaction DesignUser-Centered Interaction Design
User-Centered Interaction Design
 
Week 2 IxD History: Interaction Design before Computers
Week 2 IxD History: Interaction Design before ComputersWeek 2 IxD History: Interaction Design before Computers
Week 2 IxD History: Interaction Design before Computers
 
Metro UI interaction design guidelines @Microsoft Tech.Days 2011
Metro UI interaction design guidelines @Microsoft Tech.Days 2011Metro UI interaction design guidelines @Microsoft Tech.Days 2011
Metro UI interaction design guidelines @Microsoft Tech.Days 2011
 
Anti-Patterns that Stifle Lean UX Teams
Anti-Patterns that Stifle Lean UX TeamsAnti-Patterns that Stifle Lean UX Teams
Anti-Patterns that Stifle Lean UX Teams
 
Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)
 
101 Things I Learned In Interaction Design School - Web Directions South
101 Things I Learned In Interaction Design School - Web Directions South101 Things I Learned In Interaction Design School - Web Directions South
101 Things I Learned In Interaction Design School - Web Directions South
 
Designing Web Interfaces Book - O'Reilly Webcast
Designing Web Interfaces Book - O'Reilly WebcastDesigning Web Interfaces Book - O'Reilly Webcast
Designing Web Interfaces Book - O'Reilly Webcast
 
Interaction design workshop
Interaction design workshopInteraction design workshop
Interaction design workshop
 
Foundations of Interaction Design
Foundations of Interaction DesignFoundations of Interaction Design
Foundations of Interaction Design
 
Bringing Change to Life
Bringing Change to LifeBringing Change to Life
Bringing Change to Life
 

Similar to 6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action

Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Shivam Prajapati
 
Lean Engineering: Engineering for Learning & Experimentation in the Enterpris...
Lean Engineering: Engineering for Learning & Experimentation in the Enterpris...Lean Engineering: Engineering for Learning & Experimentation in the Enterpris...
Lean Engineering: Engineering for Learning & Experimentation in the Enterpris...Rosenfeld Media
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming languageMarco Cedaro
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진VMware Tanzu Korea
 
The Art Of Performance Tuning - with presenter notes!
The Art Of Performance Tuning - with presenter notes!The Art Of Performance Tuning - with presenter notes!
The Art Of Performance Tuning - with presenter notes!Jonathan Ross
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsLinards Liep
 
Microsoft Webday 2008 - Silverlight Experiences
Microsoft Webday 2008 - Silverlight ExperiencesMicrosoft Webday 2008 - Silverlight Experiences
Microsoft Webday 2008 - Silverlight ExperiencesNicklas Andersson
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye codeKim Moir
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)guestebde
 
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf
 
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...Burr Sutter
 
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.02014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0Joakim Lindbom
 
30 days or less: New Features to Production
30 days or less: New Features to Production30 days or less: New Features to Production
30 days or less: New Features to ProductionKarthik Gaekwad
 
Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!Bram Adams
 
Foundations for the perfect technology stream
Foundations for the perfect technology streamFoundations for the perfect technology stream
Foundations for the perfect technology streamBernd Alter
 
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Abdelkrim Boujraf
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationBoris Dominic
 

Similar to 6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action (20)

Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02
 
Lean Engineering: Engineering for Learning & Experimentation in the Enterpris...
Lean Engineering: Engineering for Learning & Experimentation in the Enterpris...Lean Engineering: Engineering for Learning & Experimentation in the Enterpris...
Lean Engineering: Engineering for Learning & Experimentation in the Enterpris...
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming language
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진
 
The Art Of Performance Tuning - with presenter notes!
The Art Of Performance Tuning - with presenter notes!The Art Of Performance Tuning - with presenter notes!
The Art Of Performance Tuning - with presenter notes!
 
From open source labs to ceo methods and advice by sysfera
From open source labs to ceo methods and advice by sysferaFrom open source labs to ceo methods and advice by sysfera
From open source labs to ceo methods and advice by sysfera
 
10 Ways To Improve Your Code
10 Ways To Improve Your Code10 Ways To Improve Your Code
10 Ways To Improve Your Code
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepins
 
Microsoft Webday 2008 - Silverlight Experiences
Microsoft Webday 2008 - Silverlight ExperiencesMicrosoft Webday 2008 - Silverlight Experiences
Microsoft Webday 2008 - Silverlight Experiences
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye code
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
 
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
 
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...
 
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.02014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
 
30 days or less: New Features to Production
30 days or less: New Features to Production30 days or less: New Features to Production
30 days or less: New Features to Production
 
Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!
 
Foundations for the perfect technology stream
Foundations for the perfect technology streamFoundations for the perfect technology stream
Foundations for the perfect technology stream
 
Shuzworld Analysis
Shuzworld AnalysisShuzworld Analysis
Shuzworld Analysis
 
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 

More from Bill Scott

Keeping a Startup Ethos
Keeping a Startup EthosKeeping a Startup Ethos
Keeping a Startup EthosBill Scott
 
Lean UX Anti-Patterns
Lean UX Anti-PatternsLean UX Anti-Patterns
Lean UX Anti-PatternsBill Scott
 
Designing With Lenses (UxLx, CHIFOO, BigD)
Designing With Lenses (UxLx, CHIFOO, BigD)Designing With Lenses (UxLx, CHIFOO, BigD)
Designing With Lenses (UxLx, CHIFOO, BigD)Bill Scott
 
DHTML Prototyping: Silicon Valley Code Camp
DHTML Prototyping: Silicon Valley Code CampDHTML Prototyping: Silicon Valley Code Camp
DHTML Prototyping: Silicon Valley Code CampBill Scott
 
Designing for Interesting Moments
Designing for Interesting MomentsDesigning for Interesting Moments
Designing for Interesting MomentsBill Scott
 
Bringing Design to Life
Bringing Design to LifeBringing Design to Life
Bringing Design to LifeBill Scott
 
Designing Web Interfaces
Designing Web InterfacesDesigning Web Interfaces
Designing Web InterfacesBill Scott
 
Back To The Future
Back To The FutureBack To The Future
Back To The FutureBill Scott
 
Hacking Netflix - Netflix APIs
Hacking Netflix - Netflix APIsHacking Netflix - Netflix APIs
Hacking Netflix - Netflix APIsBill Scott
 
Improving Netflix Performance Experience
Improving Netflix Performance ExperienceImproving Netflix Performance Experience
Improving Netflix Performance ExperienceBill Scott
 
Design Anti Patterns - How to Design a Poor Web Experience
Design Anti Patterns - How to Design a Poor Web ExperienceDesign Anti Patterns - How to Design a Poor Web Experience
Design Anti Patterns - How to Design a Poor Web ExperienceBill Scott
 
Protoscript - Simplified prototype scripting
Protoscript - Simplified prototype scriptingProtoscript - Simplified prototype scripting
Protoscript - Simplified prototype scriptingBill Scott
 
Ajax 101 Workshop
Ajax 101 WorkshopAjax 101 Workshop
Ajax 101 WorkshopBill Scott
 
Designing For Ajax
Designing For AjaxDesigning For Ajax
Designing For AjaxBill Scott
 

More from Bill Scott (14)

Keeping a Startup Ethos
Keeping a Startup EthosKeeping a Startup Ethos
Keeping a Startup Ethos
 
Lean UX Anti-Patterns
Lean UX Anti-PatternsLean UX Anti-Patterns
Lean UX Anti-Patterns
 
Designing With Lenses (UxLx, CHIFOO, BigD)
Designing With Lenses (UxLx, CHIFOO, BigD)Designing With Lenses (UxLx, CHIFOO, BigD)
Designing With Lenses (UxLx, CHIFOO, BigD)
 
DHTML Prototyping: Silicon Valley Code Camp
DHTML Prototyping: Silicon Valley Code CampDHTML Prototyping: Silicon Valley Code Camp
DHTML Prototyping: Silicon Valley Code Camp
 
Designing for Interesting Moments
Designing for Interesting MomentsDesigning for Interesting Moments
Designing for Interesting Moments
 
Bringing Design to Life
Bringing Design to LifeBringing Design to Life
Bringing Design to Life
 
Designing Web Interfaces
Designing Web InterfacesDesigning Web Interfaces
Designing Web Interfaces
 
Back To The Future
Back To The FutureBack To The Future
Back To The Future
 
Hacking Netflix - Netflix APIs
Hacking Netflix - Netflix APIsHacking Netflix - Netflix APIs
Hacking Netflix - Netflix APIs
 
Improving Netflix Performance Experience
Improving Netflix Performance ExperienceImproving Netflix Performance Experience
Improving Netflix Performance Experience
 
Design Anti Patterns - How to Design a Poor Web Experience
Design Anti Patterns - How to Design a Poor Web ExperienceDesign Anti Patterns - How to Design a Poor Web Experience
Design Anti Patterns - How to Design a Poor Web Experience
 
Protoscript - Simplified prototype scripting
Protoscript - Simplified prototype scriptingProtoscript - Simplified prototype scripting
Protoscript - Simplified prototype scripting
 
Ajax 101 Workshop
Ajax 101 WorkshopAjax 101 Workshop
Ajax 101 Workshop
 
Designing For Ajax
Designing For AjaxDesigning For Ajax
Designing For Ajax
 

Recently uploaded

COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServiceRenan Moreira de Oliveira
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfAnna Loughnan Colquhoun
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataSafe Software
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdfJamie (Taka) Wang
 

Recently uploaded (20)

COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
 

6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action

  • 1. 6 principles for enabling build/measure/learn lean engineering in action Lean Day West Portland, OR Sept 17, 2013 @billwscott Sr. Director User Interface Engineering @paypal
  • 2. 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 engineering for experimentation netflix view of engineering
  • 3. paypal vs netflix contrast this with a large enterprise like paypal (circa 2011)
  • 6. paypal way of engineering (in 2011) roll your own. disconnected delivery experience. culture of long shelf life. inward focus. risk averse.
  • 8. In 2011, even a simple content copy change could take as much as 6 weeks to get live to site
  • 9. new dna inserted jan 2012 fleshed out ui layer that could support rapid experimentation march 2012 david Marcus becomes president of PayPal april 2012 formed lean ux team to reinvent checkout experience
  • 10. hermes project lean ux/engineering in action
  • 11. hermes project lean ux/engineering in action from whiteboard to code
  • 12. hermes project lean ux/engineering in action from whiteboard to code from code to usability
  • 13. hermes project lean ux/engineering in action from whiteboard to code from code to usability learnings
  • 14. hermes project lean ux/engineering in action from whiteboard to code from code to usability learningsstart again
  • 16. after
  • 17. change has started working its way out
  • 18. change has started working its way out
  • 19. change has started working its way out
  • 20. rethink engineering in the light of lean shift the lens of engineering to embrace the build/measure/learn cycle engineer for experimentation LEANENGINEERING Engineeringfor Experimentation withLeanStartup Principles
  • 22. 1. engineer for learning, not delivery
  • 23. most organizations biggest challenge is moving from a culture of delivery to a culture of learning
  • 24. include engineering in customer learning engineers should regularly be in usability studies & customer visits feedback from “measure” phase should be regularly discussed in engineering you want to create an engineering culture that focuses on real customer problems
  • 25. include engineering in customer learning engineers should regularly be in usability studies & customer visits feedback from “measure” phase should be regularly discussed in engineering you want to create an engineering culture that focuses on real customer problems engineer
  • 26. enable prototyping in the engineering stack because 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”
  • 27. 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
  • 28. we blended prototype & production we enabled the “ui bits” to be portable between the prototyping stack and the production stackjava (rhino JS eng)node.js {dust} JS template prototype stack production stack {dust} JS template either stack
  • 29. 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
  • 30. 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
  • 31. connect delivery to learning in 1985 I delivered software on a 3.5” diskette little or no feedback loop everything was focused on getting it the one right experience on the disk no user in the loop. experience happened somewhere down the supply chain
  • 32. enable learning on mobile native apps make it easier to create a rich experience however, they are limited in reach and in learning capability app install rates will only be a subset of the customer base you need both a native and html5 strategy in order to maximize learning
  • 33. html5 is critical to learning strategy 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.
  • 34. 2. engineer for experimentation
  • 35. 16 different test cells in the initial PS3 Launch (2010) focus is on experimentation the netflix way
  • 36. 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
  • 37. build embrace continuous delivery make mistakes fast measure learn the etsy way. Kellan Elliott-McCrea, CTO etsy use metrics driven development know that you made a mistake blameless post mortems learn from your mistakes
  • 38. ramping vs experimenting the 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
  • 39. long shelf life kills experimentation engineering has to make delivery a non- event result delivery dates drive the experience feature-itus becomes prevalent BDUF & waterfall prevail little to no learning
  • 40. a tale of two trains departs infrequently “gotta get on the train or I will have to wait a long time”
  • 41. a tale of two trains departs infrequently “gotta get on the 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”
  • 42. using git for continuous deployment starting 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
  • 43. 3. design for volatility
  • 45. 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 is thrown away in a year
  • 46. 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 is thrown away in a year the ui layer is the experimentation layer
  • 47. 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
  • 49. building experiences circa 1985 merry band of three. dropped out of college for semester. it was nirvana. however...
  • 50. roll your own “everything” (close your eyes & imagine) no internet. no google. no blogs. no email. no blogs. no stackoverflow. no github. no twitter. much of the software era has been about building from scratch. of course open source was gaining momentum. unix. gnu. linux. perl. mozilla.
  • 51. work in open source model internal 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
  • 52. give back to open source we have projects that we will open source node webcore (similar to yeoman) we are contributing back to open source contributions to bootstrap (for accessibility) contributions to bootstrap (for internationalization) core committer on dustjs project
  • 53. use open source religiously nconf async q supertest
  • 54. 5. put a brain on agile credit: Krystal Higgins http://bit.ly/18uP7N1
  • 55. agile doesn’t have a brain... agile is a hungry machine. it will crank out garbage or brilliance. and it will do it iteratively. it is a travesty to waste this machine you have to get the experience “in the ballpark” to best use the machine it is imperative to make it easy to iterate designs ahead of the agile sprints leanux in the form of a “leanux scrum team” is one way to do this
  • 56. 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
  • 57. 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
  • 58. too many teams can create silos within the exerience what can fracture the experience • number of scrum teams • specialization of skills • device channels • regional adaptations CE2 watch out for fracturing the experience
  • 59. as we have mapped lean onto agile it has exposed mismatches between the way we work you run the risk: • driving the experience based on eng teams • becoming a botteneck in almost all cases • either product is not aligned to the biz • or there are just too many people watch out for mismatch between teams
  • 60. 6. refactor your way out of debt
  • 61. technical debt rarely do you have a clean slate generally you will have to refactor your way to a nimble framework
  • 62. ensured we could run “ui bits” on new & legacy we chose to make our “ui bits” as close to regular HTML/CSS as possible we enabled the same “ui bits” (templates) to run on any of our stacks java (rhino js eng) node.js prototype stack & production stack production stack client server any stack c++ (v8 js eng) production stack {dust} JS template
  • 63. experience debt don’t just think about our technical debt consider the “experience debt” cripples our ability to capture market and inhibits learning key that engineering sees a chance to improve the experience whenever they are cleaning up technical debt
  • 64. rethink engineering in the light of lean shift the lens of engineering to embrace the build/measure/learn cycle engineer for experimentation LEANENGINEERING Engineeringfor Experimentation withLeanStartup Principles
  • 65. designing web interfaces O’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=~ohHUppP9dhMmMG http://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/stuckincustoms/2380543038/ follow me on twitter @billwscott