SlideShare a Scribd company logo
lean engineering
applying lean principles to building experiences
 bill scott (@billwscott)
 sr. director, user interface engineering, paypal

 LEAN DAY UX
 March. 1, 2013. NY
the way it was
how we used to engineer experiences
building
experiences
circa 1985
merry band of three.
dropped out of college for
semester. prototyped our
way to nirvana.


however...
had to 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.
disconnected
from experience
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
software had a
long shelf life
not dynamically updatable

designed for longevity

herculean effort to deliver

engineers ran the asylum

delivery dates drive the
experience

BDUF & waterfall
btw, agile didn’t fix it
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

needs a brain...
an epiphany
engineering for the experience
netflix way
customer is OOB

get code OOB as fast as
possible

customer metrics drive
everything

think it (quickly). build it.
ship it. tweak it

fail fast. learn fast.

the epiphany...
design for
experimentation
the ui layer is an
experimentation layer
                               four
change is the norm             different PS3
                               experiences
experimentation is not a one   launched
                               on same day
time event
paypal
a study in contrast
paypal circa 2011



roll your own. disconnected
delivery experience. culture
  of long shelf life. inward
      focus. risk averse.
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
change is working its way out
two principles
applying lean ux & engineering at paypal
#1 engineer for experimentation
experiences must learn
        All buildings are predictions.
        All predictions are wrong.

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

        Stewart Brand



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

                               Recognize that
                               different layers change
                               at different velocities
engineer for lean ux
Lean UX - co-located




 Product/Design team                UIEs               Usability/Customers



                                                                             And back
                                                                              again...
                       Whiteboard          Code to
                        to code            Usability



engineering stack should
   treat prototype & production the same
   allow rapid sketch to code life cycle
   allow quick changes during usability studies (RITE)
   support being the “living spec”
stack circa 2011/early 2012
prototyping      restricted
                capabilities*
  was hard                                                                   client
                                                                             server
                  server side
    “ui bits”   components**          simple change could
 could only                           take minutes to see
   live here         jsp***
                                      follows an “enterprise
                                      application” model. ui
                      java            gets built into the “app”

                * assumed client developers were low-skill
                * required server side java eng for simple client changes
                ** java server pages. server-side java templating solution
allowed us to refactor
ui portability                        to get to the new stack
                                      (backward compatibility)
       dustjs             dustjs
  (js templating    (js templating)
                                                          client
                                                          server
        dustjs            dustjs
  (js templating)   (js templating)   JS templating can be
                                      run on the client or
                                      run on the server
   node.js              java
                                      js templating can be
  prototype         production        run on nodejs stack or
    stack              stack          run on java stack
                                      (rhinoscript)
enable a brain for agile

        usability         usability      usability         usability               usabili


 lean ux - lean team track (prototyping)




         {
                    user interface engineering - agile scrum team (production)

agile

                    sprint 0   engineering - agile scrum team


                               release           release               release   release
#2 engineer with open source mindset
use open source religiously
work in open source model
internal github revolutionized
our internal development

rapidly replaced centralized
platform teams

innovation democratized

every developer encouraged
to experiment and generate repos
to share as well as to fork/pull request
give back to open source
we have a projects that we will open source
 node bootstrap (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
summary
to support collaboration, shared understanding and
continuous customer feedback we changed:

technology. but not for tech sake. we did it for the
experience to support LS principles.

process. enabled lean ux and put a brain on agile.

people. revitalized our existing talent and started
attracting new talent.
blogs
http://looksgoodworkswell.com
http://designingwebinterfaces.com

twitter
follow me on twitter @billwscott

book

                designing web interfaces
                O’Reilly

picture credits
http://www.flickr.com/photos/paolomargari/3793121065/sizes/z/
http://www.flickr.com/photos/smb_flickr/439040132/
http://www.flickr.com/photos/juanpol/16287486/sizes/z/
http://www.flickr.com/photos/giesenbauer/4092794246/sizes/l/
http://www.flickr.com/photos/therevsteve/3104267109/sizes/o/
http://www.flickr.com/photos/not_wise/182849352/sizes/l/
http://www.flickr.com/photos/37217398@N02/3442676067/sizes/l/
http://www.flickr.com/photos/hongiiv/4151964823/sizes/z/
http://www.flickr.com/photos/therevsteve/3104267109/sizes/o/
http://www.flickr.com/photos/mbiskoping/6075387388/
http://www.flickr.com/photos/soldiersmediacenter/4685688778/sizes/z/

More Related Content

Lean Engineering. Applying Lean Principles to Building Experiences

  • 1. lean engineering applying lean principles to building experiences bill scott (@billwscott) sr. director, user interface engineering, paypal LEAN DAY UX March. 1, 2013. NY
  • 2. the way it was how we used to engineer experiences
  • 3. building experiences circa 1985 merry band of three. dropped out of college for semester. prototyped our way to nirvana. however...
  • 4. had to 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.
  • 5. disconnected from experience 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
  • 6. software had a long shelf life not dynamically updatable designed for longevity herculean effort to deliver engineers ran the asylum delivery dates drive the experience BDUF & waterfall
  • 7. btw, agile didn’t fix it 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 needs a brain...
  • 9. netflix way customer is OOB get code OOB as fast as possible customer metrics drive everything think it (quickly). build it. ship it. tweak it fail fast. learn fast. the epiphany...
  • 10. design for experimentation the ui layer is an experimentation layer four change is the norm different PS3 experiences experimentation is not a one launched on same day time event
  • 11. paypal a study in contrast
  • 12. paypal circa 2011 roll your own. disconnected delivery experience. culture of long shelf life. inward focus. risk averse.
  • 13. 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
  • 14. change is working its way out
  • 15. two principles applying lean ux & engineering at paypal
  • 16. #1 engineer for experimentation
  • 17. experiences must learn All buildings are predictions. All predictions are wrong. There's no escape from this grim syllogism, but it can be softened. Stewart Brand Our software is always tearing itself apart (or should be) Recognize that different layers change at different velocities
  • 18. engineer for lean ux Lean UX - co-located Product/Design team UIEs Usability/Customers And back again... Whiteboard Code to to code Usability engineering stack should treat prototype & production the same allow rapid sketch to code life cycle allow quick changes during usability studies (RITE) support being the “living spec”
  • 19. stack circa 2011/early 2012 prototyping restricted capabilities* was hard client server server side “ui bits” components** simple change could could only take minutes to see live here jsp*** follows an “enterprise application” model. ui java gets built into the “app” * assumed client developers were low-skill * required server side java eng for simple client changes ** java server pages. server-side java templating solution
  • 20. allowed us to refactor ui portability to get to the new stack (backward compatibility) dustjs dustjs (js templating (js templating) client server dustjs dustjs (js templating) (js templating) JS templating can be run on the client or run on the server node.js java js templating can be prototype production run on nodejs stack or stack stack run on java stack (rhinoscript)
  • 21. enable a brain for agile usability usability usability usability usabili lean ux - lean team track (prototyping) { user interface engineering - agile scrum team (production) agile sprint 0 engineering - agile scrum team release release release release
  • 22. #2 engineer with open source mindset
  • 23. use open source religiously
  • 24. work in open source model internal github revolutionized our internal development rapidly replaced centralized platform teams innovation democratized every developer encouraged to experiment and generate repos to share as well as to fork/pull request
  • 25. give back to open source we have a projects that we will open source node bootstrap (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
  • 26. 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
  • 27. summary to support collaboration, shared understanding and continuous customer feedback we changed: technology. but not for tech sake. we did it for the experience to support LS principles. process. enabled lean ux and put a brain on agile. people. revitalized our existing talent and started attracting new talent.
  • 28. blogs http://looksgoodworkswell.com http://designingwebinterfaces.com twitter follow me on twitter @billwscott book designing web interfaces O’Reilly picture credits http://www.flickr.com/photos/paolomargari/3793121065/sizes/z/ http://www.flickr.com/photos/smb_flickr/439040132/ http://www.flickr.com/photos/juanpol/16287486/sizes/z/ http://www.flickr.com/photos/giesenbauer/4092794246/sizes/l/ http://www.flickr.com/photos/therevsteve/3104267109/sizes/o/ http://www.flickr.com/photos/not_wise/182849352/sizes/l/ http://www.flickr.com/photos/37217398@N02/3442676067/sizes/l/ http://www.flickr.com/photos/hongiiv/4151964823/sizes/z/ http://www.flickr.com/photos/therevsteve/3104267109/sizes/o/ http://www.flickr.com/photos/mbiskoping/6075387388/ http://www.flickr.com/photos/soldiersmediacenter/4685688778/sizes/z/