SlideShare a Scribd company logo
1 of 55
Download to read offline
8 principles for enabling build/measure/learn
lean engineering in action
eBay Classifieds TechCon
June 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
a different view of
engineering
paypal vs netflix
contrast this with a large enterprise like paypal (circa 2011)
guess what i found (in 2011)
roll your own. disconnected delivery
experience. culture of long shelf life.
inward focus. risk averse.
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
from whiteboard to code from code to usability
learningsstart again
change has started working its way out
change has started working its way out
lean startup movement
founded on build/measure/learn cycle
get out of the building (GOOB)
invalidate your risky assumptions
fail fast, learn fast
get to the pivot
go for the minimal viable product (MVP)
lean ux
designing products for build/measure/learn
requires 3 rules to be followed at all times
get to & maintain a shared understanding
form deep collaboration across disciplines
keep continuous customer feedback flowing
purpose of lean engineering
build
measure
learn
LEANENGINEERING
EnablingBuild/
Measure/Learn
withLeanStartup
Principles
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
mortem
learn from your
mistakes
LEANENGINEERING
8principlesforenabling
build/measure/learn
1. focus on learning, not delivery
one of our biggest challenges is moving
from a culture of delivery to a
culture of learning
too many teams can create silos within the
exerience
common silos that can affect experience:
• number of scrum teams
• specialization of skills
• device channels
• regional adaptations
CE2
don’t let delivery drive
experience
2. build a culture of rapid experimentation
long shelf life for software
when software is not dynamically updatable
when it takes herculean effort to deliver
result
engineers run the asylum
delivery dates drive the experience
BDUF & waterfall prevail
16 different test cells in the initial PS3 Launch (2010)
focus is on build/measure/learn
four distinct PS3 experiences launched on same day
typical netflix release
ramping vs experimenting
ramping model results in one
experience (with some tweaks along
the way) after a long ramp up time
experimentation model results in
many experiences being tested all
along the way
avoid disconnected
delivery experience
circa 1985
deliver to disk then to user
everything was focused on getting it
perfect for stamping on the disk
no user in the loop. experience
happened somewhere down the
supply chain
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
the ui layer is the
experimentation layer
experiences must learn
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. embrace open source
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.
use open source religiously
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
using github for continuous *
use github for continuous integration
starting to use github repo model for continuous deployment
marketing pages
product pages
content updates & triggers into i18n, l10n, adaptation
components
5. map lean onto agile
btw, agile doesn’t have a brain...
agile has been a big step in the right direction
but is an engineering discipline
doesn’t address the full life cycle
agile has become big business and sometimes collapses under the weight
of “ceremonies” (process)
but agile is a good “engine” for delivery if you know what to roughly build
agile needs a brain...
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
6. make your product a living spec
create a living spec
enabling the prototype
learning
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 (rhinoscript)node.js
{dust}
JS template
prototype
stack
production
stack
{dust}
JS template
either stack
java (rhinoscript)
production
stack
{dust}
JS template
one 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
7. 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
we separated the ui bits
code = 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
code = JS
(backbone)
templates =
JS
{dust}
style = CSS
(less)
images
we used javascript templating
templates get converted
to javascript
<p>Hello {name}</p>
JavaScript compiles to...
javascript
executed
to generate ui
we used natural web artifacts - “web bits”
server-side language independent
server/client agnostic
CDN ready
cacheable
rapid to create
code = JS
(backbone)
templates =
JS
{dust}
style = CSS
(less)
images
ensured we could run on new & legacy
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
prototype
stack
production
stack
{dust}
JS template
client OR
server
either stack
experience debt
don’t just think about our technical debt
consider our “experience debt”
cripples our ability to capture market and
inhibits learning
8. learn across all channels
mobile strategy ≠ just iOS app
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.
summary
rethink engineering. every dimension of your engineering needs to be about
enabling build/measure/learn
technology. but not for tech sake. we are doing it for the experience to
support lean startup principles.
process. enabled lean ux and put a brain on agile.
people. revitalizing our existing talent and started attracting new talent.
before
after
designing web interfaces
O’Reilly
picture credits
http://www.flickr.com/photos/decade_null/2053134780/
http://www.flickr.com/photos/therevsteve/3104267109/
http://www.flickr.com/photos/juanpol/16287486/
http://www.flickr.com/photos/giesenbauer/4092794246/
http://www.flickr.com/photos/not_wise/182849352/
http://www.flickr.com/photos/mbiskoping/6075387388/
http://www.flickr.com/photos/37217398@N02/3442676067/
http://www.flickr.com/photos/proimos/3473264448/
http://www.flickr.com/photos/epsos/8463683689/
http://www.flickr.com/photos/stuckincustoms/2380543038/
http://www.flickr.com/photos/matthewpaulson/6176787688/
http://www.flickr.com/photos/90585146@N08/8222922317/
http://www.flickr.com/photos/cote/63914774/
http://www.flickr.com/photos/olvrbrown/4542851399/
http://www.flickr.com/photos/donpezzano/3257999898/
follow me on twitter
@billwscott
Designing Web Interfaces
O’Reilly
Bill Scott & Theresa Neil

More Related Content

What's hot

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: 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
 
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
 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureThoughtworks
 
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
 
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
 
不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradlesam chiu
 
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
 
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
 
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
 
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
 
Des ops101 : Overview - RH CoP UI/UX 9nov2018
Des ops101 : Overview - RH  CoP UI/UX 9nov2018Des ops101 : Overview - RH  CoP UI/UX 9nov2018
Des ops101 : Overview - RH CoP UI/UX 9nov2018Samir Dash
 
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
 
Dev conf 2018 DesOps - Prepare Today for Future of Design
Dev conf 2018 DesOps - Prepare Today for Future of Design Dev conf 2018 DesOps - Prepare Today for Future of Design
Dev conf 2018 DesOps - Prepare Today for Future of Design Samir Dash
 
DevOps overview and tech interview tips
DevOps overview and tech interview tipsDevOps overview and tech interview tips
DevOps overview and tech interview tipsDaniel Bezerra
 

What's hot (19)

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: 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
 
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
 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary Architecture
 
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
 
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
 
不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle
 
Explicit architecture
Explicit architectureExplicit architecture
Explicit architecture
 
Eclipse Vs Netbeans
Eclipse Vs NetbeansEclipse Vs Netbeans
Eclipse Vs Netbeans
 
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
 
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!
 
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
 
Intelli j idea-report
Intelli j idea-reportIntelli j idea-report
Intelli j idea-report
 
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
 
Des ops101 : Overview - RH CoP UI/UX 9nov2018
Des ops101 : Overview - RH  CoP UI/UX 9nov2018Des ops101 : Overview - RH  CoP UI/UX 9nov2018
Des ops101 : Overview - RH CoP UI/UX 9nov2018
 
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...
 
Dev conf 2018 DesOps - Prepare Today for Future of Design
Dev conf 2018 DesOps - Prepare Today for Future of Design Dev conf 2018 DesOps - Prepare Today for Future of Design
Dev conf 2018 DesOps - Prepare Today for Future of Design
 
DevOps overview and tech interview tips
DevOps overview and tech interview tipsDevOps overview and tech interview tips
DevOps overview and tech interview tips
 

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 8 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
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye codeKim Moir
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !Cédric Brun
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textToma Velev
 
Building a scalable app factory with Appcelerator Platform
Building a scalable app factory with Appcelerator PlatformBuilding a scalable app factory with Appcelerator Platform
Building a scalable app factory with Appcelerator PlatformAngus Fox
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsLinards Liep
 
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
 
Lunch and learn as3_frameworks
Lunch and learn as3_frameworksLunch and learn as3_frameworks
Lunch and learn as3_frameworksYuri Visser
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Luciano Resende
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopmentgillygize
 
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang RamadhanCara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang RamadhanDicodingEvent
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Ivo Jansch
 
Desenvolvimento moderno de aplicativos android
Desenvolvimento moderno de aplicativos androidDesenvolvimento moderno de aplicativos android
Desenvolvimento moderno de aplicativos androidDiego Figueredo
 
Ensure Optimal Performance and Scalability: Implementing a Robust and Reliabl...
Ensure Optimal Performance and Scalability: Implementing a Robust and Reliabl...Ensure Optimal Performance and Scalability: Implementing a Robust and Reliabl...
Ensure Optimal Performance and Scalability: Implementing a Robust and Reliabl...Steve Feldman
 
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...ZeroTurnaround
 

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

Enabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in ActionEnabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in Action
 
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...
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye code
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Dean4j@Njug5
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - text
 
Building a scalable app factory with Appcelerator Platform
Building a scalable app factory with Appcelerator PlatformBuilding a scalable app factory with Appcelerator Platform
Building a scalable app factory with Appcelerator Platform
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepins
 
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
 
Shuzworld Analysis
Shuzworld AnalysisShuzworld Analysis
Shuzworld Analysis
 
Lunch and learn as3_frameworks
Lunch and learn as3_frameworksLunch and learn as3_frameworks
Lunch and learn as3_frameworks
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopment
 
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang RamadhanCara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)
 
Desenvolvimento moderno de aplicativos android
Desenvolvimento moderno de aplicativos androidDesenvolvimento moderno de aplicativos android
Desenvolvimento moderno de aplicativos android
 
Ensure Optimal Performance and Scalability: Implementing a Robust and Reliabl...
Ensure Optimal Performance and Scalability: Implementing a Robust and Reliabl...Ensure Optimal Performance and Scalability: Implementing a Robust and Reliabl...
Ensure Optimal Performance and Scalability: Implementing a Robust and Reliabl...
 
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
 

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

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Recently uploaded (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

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

  • 1. 8 principles for enabling build/measure/learn lean engineering in action eBay Classifieds TechCon June 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 a different view of engineering
  • 3. paypal vs netflix contrast this with a large enterprise like paypal (circa 2011)
  • 4. guess what i found (in 2011) roll your own. disconnected delivery experience. culture of long shelf life. inward focus. risk averse.
  • 5. In 2011, even a simple content copy change could take as much as 6 weeks to get live to site
  • 6. 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
  • 7. hermes project lean ux/engineering in action from whiteboard to code from code to usability learningsstart again
  • 8. change has started working its way out
  • 9. change has started working its way out
  • 10. lean startup movement founded on build/measure/learn cycle get out of the building (GOOB) invalidate your risky assumptions fail fast, learn fast get to the pivot go for the minimal viable product (MVP)
  • 11. lean ux designing products for build/measure/learn requires 3 rules to be followed at all times get to & maintain a shared understanding form deep collaboration across disciplines keep continuous customer feedback flowing
  • 12. purpose of lean engineering build measure learn LEANENGINEERING EnablingBuild/ Measure/Learn withLeanStartup Principles
  • 13. 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 mortem learn from your mistakes
  • 15. 1. focus on learning, not delivery
  • 16. one of our biggest challenges is moving from a culture of delivery to a culture of learning
  • 17. too many teams can create silos within the exerience common silos that can affect experience: • number of scrum teams • specialization of skills • device channels • regional adaptations CE2 don’t let delivery drive experience
  • 18. 2. build a culture of rapid experimentation
  • 19. long shelf life for software when software is not dynamically updatable when it takes herculean effort to deliver result engineers run the asylum delivery dates drive the experience BDUF & waterfall prevail
  • 20. 16 different test cells in the initial PS3 Launch (2010) focus is on build/measure/learn four distinct PS3 experiences launched on same day typical netflix release
  • 21. ramping vs experimenting ramping model results in one experience (with some tweaks along the way) after a long ramp up time experimentation model results in many experiences being tested all along the way
  • 22. avoid disconnected delivery experience circa 1985 deliver to disk then to user everything was focused on getting it perfect for stamping on the disk no user in the loop. experience happened somewhere down the supply chain
  • 23. 3. design for volatility
  • 25. 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
  • 26. experiences must learn 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
  • 27. 4. embrace open source
  • 28. building experiences circa 1985 merry band of three. dropped out of college for semester. it was nirvana. however...
  • 29. 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.
  • 30. use open source religiously
  • 31. 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
  • 32. 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
  • 33. using github for continuous * use github for continuous integration starting to use github repo model for continuous deployment marketing pages product pages content updates & triggers into i18n, l10n, adaptation components
  • 34. 5. map lean onto agile
  • 35. btw, agile doesn’t have a brain... agile has been a big step in the right direction but is an engineering discipline doesn’t address the full life cycle agile has become big business and sometimes collapses under the weight of “ceremonies” (process) but agile is a good “engine” for delivery if you know what to roughly build agile needs a brain...
  • 36. 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
  • 37. 6. make your product a living spec
  • 38. create a living spec enabling the prototype learning
  • 39. 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
  • 40. we blended prototype & production we enabled the “ui bits” to be portable between the prototyping stack and the production stackjava (rhinoscript)node.js {dust} JS template prototype stack production stack {dust} JS template either stack
  • 41. java (rhinoscript) production stack {dust} JS template one 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
  • 42. 7. refactor your way out of debt
  • 43. technical debt rarely do you have a clean slate generally you will have to refactor your way to a nimble framework
  • 44. we separated the ui bits code = 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
  • 45. code = JS (backbone) templates = JS {dust} style = CSS (less) images we used javascript templating templates get converted to javascript <p>Hello {name}</p> JavaScript compiles to... javascript executed to generate ui
  • 46. we used natural web artifacts - “web bits” server-side language independent server/client agnostic CDN ready cacheable rapid to create code = JS (backbone) templates = JS {dust} style = CSS (less) images
  • 47. ensured we could run on new & legacy 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 prototype stack production stack {dust} JS template client OR server either stack
  • 48. experience debt don’t just think about our technical debt consider our “experience debt” cripples our ability to capture market and inhibits learning
  • 49. 8. learn across all channels
  • 50. mobile strategy ≠ just iOS app 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
  • 51. 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.
  • 52. summary rethink engineering. every dimension of your engineering needs to be about enabling build/measure/learn technology. but not for tech sake. we are doing it for the experience to support lean startup principles. process. enabled lean ux and put a brain on agile. people. revitalizing our existing talent and started attracting new talent.
  • 54. after
  • 55. designing web interfaces O’Reilly picture credits http://www.flickr.com/photos/decade_null/2053134780/ http://www.flickr.com/photos/therevsteve/3104267109/ http://www.flickr.com/photos/juanpol/16287486/ http://www.flickr.com/photos/giesenbauer/4092794246/ http://www.flickr.com/photos/not_wise/182849352/ http://www.flickr.com/photos/mbiskoping/6075387388/ http://www.flickr.com/photos/37217398@N02/3442676067/ http://www.flickr.com/photos/proimos/3473264448/ http://www.flickr.com/photos/epsos/8463683689/ http://www.flickr.com/photos/stuckincustoms/2380543038/ http://www.flickr.com/photos/matthewpaulson/6176787688/ http://www.flickr.com/photos/90585146@N08/8222922317/ http://www.flickr.com/photos/cote/63914774/ http://www.flickr.com/photos/olvrbrown/4542851399/ http://www.flickr.com/photos/donpezzano/3257999898/ follow me on twitter @billwscott Designing Web Interfaces O’Reilly Bill Scott & Theresa Neil