get lean_ slimming down with rails presentation

Upload: kareem-grant

Post on 10-Apr-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    1/101

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    2/101

    tutorials goal

    introduce lean concepts

    discuss the how and why demonstrate Rails-specific techniques

    give you a starting place to go further

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    3/101

    questions are welcome at any point

    lets be interactive encourage conversations

    well have breaks

    session guidelines

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    4/101

    limited resources (time & money) uncertain of solution

    unknown market

    context for today

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    5/101

    outline

    1. lean overview

    2. rails basics3. focusing on value

    4. minimize effort

    5. measuring

    6. delivering fast

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    6/101

    tutorial material

    http://github.com/mghaught/getlean

    http://github/mghaught/repohttp://github/mghaught/repo
  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    7/101

    flingr!

    http://flingr.martyhaught.com

    http://ciflingr.martyhaught.com

    tutorial/install.md

    http://ciflingr.martyhaught.com/http://ciflingr.martyhaught.com/http://github/mghaught/repohttp://github/mghaught/repohttp://ciflingr.martyhaught.com/
  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    8/101

    Longmont, Colorado

    Boulder Ruby

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    9/101

    why lean?

    consulting entrepreneurship

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    10/101

    other reasons

    bloated, inefficient agile projects building software no one wants or uses

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    11/101

    rockin with ramen

    (pictured with Dokken)

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    12/101

    1. lean overview

    from manufacturing to software

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    13/101

    discovering lean

    Mary Poppendieck

    http://www.poppendieck.com/

    http://www.poppendieck.com/http://www.poppendieck.com/http://www.poppendieck.com/http://www.poppendieck.com/
  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    14/101

    history of lean

    emerged from manufacturing in the 50s

    Toyota production system translated for software projects in 90s

    influenced agile thinking

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    15/101

    lean startups

    translating your startup vision into a successfulbusiness as quickly and efficiently as possible

    Eric Ries

    http://www.startuplessonslearned.com/

    http://www.startuplessonslearned.com/http://www.startuplessonslearned.com/http://www.startuplessonslearned.com/http://www.startuplessonslearned.com/
  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    16/101

    customer development

    Steve Blank

    http://steveblank.com/

    http://steveblank.com/http://steveblank.com/
  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    17/101

    new translation

    http://www.custdev.com/

    http://www.custdev.com/http://www.custdev.com/
  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    18/101

    changed my view

    much like when I discovered XP in 2004 think just as much about the business asthe technical

    engineers should own the business side

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    19/101

    2. rails stack

    preaching to the choir

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    20/101

    why rails/sinatra

    great for prototyping can be minimal or full stack

    change is easy

    start simple but can grow

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    21/101

    community assets

    helpful easy to pick up new resources

    constantly improving

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    22/101

    automation

    automated testing

    continuous integration data migrations

    deployment

    notifications

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    23/101

    master your stack

    practice your art to get faster use plugins and gems for common

    functionality

    anything to let you focus more on whatsimportant

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    24/101

    context is king

    pick the right amount of process

    start simple and add on as you go know when not to use lean

    A solar death ray assembler would likely need moretesting and process than a twitter-based web app.

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    25/101

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    26/101

    3. focusing on value

    work on the right things

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    27/101

    defining your product

    knowing your vision

    clarify and agree as a team what is your value?

    why are you creating this software?

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    28/101

    business value

    how do you define success?

    how do you measure it? will people use it?

    who?

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    29/101

    agiles customer

    dev team takes direction from client no questioning of business motives infeature requests

    engineers dont own the business side

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    30/101

    ice cream glove

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    31/101

    drinking your kool-aid?

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    32/101

    webbchange story

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    33/101

    of excess

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    34/101

    of too many features

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    35/101

    valuing web content

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    36/101

    demo time

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    37/101

    everything but ...

    Getting in all the features before launching

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    38/101

    Built too much?!?

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    39/101

    my mistake

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    40/101

    will people use it?

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    41/101

    got eyeballs on it

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    42/101

    too complex

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    43/101

    ran out of money

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    44/101

    lessons learned

    start simple and launch early validate against real use

    get out of the building and talk to people

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    45/101

    minimum viable product

    rails rumble or startup weekend

    starting place for validated learning with theleast effort

    should be embarrassing early adopters see the potential

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    46/101

    mvp exercise

    what is flingrs mvp? what about webbchange?

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    47/101

    learning process

    make progress by reaching users

    dont just execute a plan use feedback

    pivot as you learn

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    48/101

    Eric Ries feedback loop

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    49/101

    4. minimize effort

    less is more

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    50/101

    strip features to the essence that achievesvalue

    spiking large features

    do the simplest thing that could possiblywork

    simplicity

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    51/101

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    52/101

    reducing waste

    core value of lean, eliminating waste

    does your current task add business value? eliminate activity that doesnt contribute to

    progress

    re-evaluate the value of what youre doing

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    53/101

    seven wastes of lean

    D l l f h

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    54/101

    Overproduction Extra FeaturesDevelop only for the current

    story

    Inventory Backlog, Requirements

    Story cards are detailed only

    for the current iteration

    Extra Processing Extra Steps Code directly from stories

    Motion Finding Information Have everyone in the sameroom; customer included

    Defects Defects not caught by testsTest first; including acceptance

    tests

    Waiting Waiting, Including Customers Deliver in small increments

    Transportation HandoffsDevelopers work directly with

    customers

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    55/101

    5. measuring

    know when youre making progress

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    56/101

    pirate metrics

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    57/101

    not vanity metrics

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    58/101

    must be actionable

    should help you make decisions

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    59/101

    AARRR!

    by Dave McClure

    acquisition activation

    retention referral revenue

    http://www.slideshare.net/dmc500hats/startup-metrics-for-pirates-long-version

    http://www.slideshare.net/dmc500hats/startup-metrics-for-pirates-long-versionhttp://www.slideshare.net/dmc500hats/startup-metrics-for-pirates-long-version
  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    60/101

    flingr metrics

    unique visits (acquisition)

    signups (activation) repeat use (retention)

    fling backs (referral)

    pro upgrade (revenue)

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    61/101

    skip services for now

    Google Analytics http://www.google.com/analytics

    MixPanel http://mixpanel.com/ KISSMetrics http://kissmetrics.com/

    others

    http://kissmetrics.com/http://kissmetrics.com/http://mixpanel.com/http://mixpanel.com/http://www.google.com/analyticshttp://www.google.com/analyticshttp://kissmetrics.com/
  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    62/101

    diy metrics

    you control the data

    can track any event in your system good enough for actionable metrics

    start simple, 5 at most

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    63/101

    metrics exercise

    tutorial/metrics.md

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    64/101

    what to measure?

    will the new story add value?

    how will you measure progress? define when new stories are created

    best when its one of your core metrics

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    65/101

    split testing

    presenting two or more variations andmeasuring user behavior to determine value

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    66/101

    benefits

    best mechanism to truly measure progress can answer internal debates

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    67/101

    pitfalls

    can lead to a mess if not well-guided

    may not get conclusive reports dont go overboard

    dont let it replace your vision

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    68/101

    split test exercise

    tutorial/abingo.md

    tutorial/vanity.md

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    69/101

    take away

    limited to a single metric/conversion best when you can analyze all aarrr metrics

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    70/101

    6. delivering fast

    speed wins

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    71/101

    small batches

    reduce to smallest, meaningful chunks reduces integration costs

    helps avoid overproduction think hours not days

    amount of finished work that can be shipped

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    72/101

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    73/101

    science behind it

    queueing theory

    theory of constraints proven in world of manufacturing

    working in software projects

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    74/101

    fixed time box, such as two weeks IPM to cover a set of stories make estimates

    velocity to determine what fits

    agiles iteration

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    75/101

    reducing waste

    no need to estimate

    no need to force stories to fit just in time meetings

    no big batch of stories

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    76/101

    kanban exercise

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    77/101

    kanban benefits

    simple, less process limit work in progress, maximize

    throughput

    more easily spot bottlenecks

    easy to change direction

    less inventory of requirements/stories less time in meetings

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    78/101

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    79/101

    kanban-tracker hybrid

    one week iterations

    ultra light weight complexity estimates continuously add stories to backlog asneeded

    no ipm, just in time discussions deploy stories when complete

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    80/101

    kanban

    continuous deployment

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    81/101

    continuous deployment

    automatic flow of completed features

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    82/101

    batch up all stories for iteration separate integration step explicit sign off process

    qa -- staging -- production

    agile way

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    83/101

    the larger the gap between trunk andproduction, the heavier the process

    not lean

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    84/101

    classic stack

    source control with commit hook

    continuous integration deploy/rollback script

    real time alerts

    root cause analysis

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    85/101

    Commit

    Test

    Deploy

    Monitor

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    86/101

    go lighter

    deploy to a dev instance no monitoring

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    87/101

    faking it

    nothings automated once you commit a feature, deploy

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    88/101

    monitoring

    pingdom nagios with business metrics

    stop the line on alert

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    89/101

    five whys

    determine source of issue take small steps to prevent

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    90/101

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    91/101

    cd exercise

    tutorial/contdeploy.md

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    92/101

    take away

    deliver code faster

    focus on features, not integration reduces fear of pushing to production

    quality does not have to decline

    h

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    93/101

    why we test exercise

    ?

    ll h f ?

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    94/101

    test all the fn time?

    dont blindly follow some guideline

    does 100% coverage have business value? are all tests valuable? cost of writing/maintaining all tests? cost of failure/bugs?

    l f

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    95/101

    value of testing

    not all project phases value testing equally larger the team, the greater the need

    context really matters

    h f

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    96/101

    phases of a startup

    Kent Beckhttp://www.threeriversinstitute.org/blog/?p=251

    1. Taxi (find a need)

    2. Takeoff (validate need has a problem)

    3. Climb (scaling)

    4. Cruise (manage)

    l

    http://www.threeriversinstitute.org/blog/?p=251http://www.threeriversinstitute.org/blog/?p=251
  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    97/101

    lean up your tests

    consider business value of features tested view tests as a garden, must prune strong integration layer test interesting/tricky business logic

    look for high value, small footprint tests skip rarely used areas like admin UI

    k

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    98/101

    takeaway

    really understand value for your project

    focus on tasks that add value ship early and continuous automate all that you can minimize effort to get feedback asap

    f h d k!

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    99/101

    go forth and rock!

    h k

  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    100/101

    Marty Haught

    @[email protected]://martyhaught.com

    thank you

    i di

    http://martyhaught.com/mailto:[email protected]:[email protected]://martyhaught.com/http://chocolateheaven.org/
  • 8/8/2019 Get Lean_ Slimming Down With Rails Presentation

    101/101

    Long's Peak - http://www.flickr.com/photos/17972620@N00/2956076614/Pile of Money - http://www.flickr.com/photos/ironrodart/3841677517/Bowl of Ramen - http://www.flickr.com/photos/billselak/2388252659/George Lynch - http://www.rollingstone.com/artists/dokken/photos/collection/photo/1Lean Overview - http://pffc-online.com/mag/paper_latitudes_lean/Rails Stack - http://www.building-your-model-railroad.com/model-railroa d-operation.html

    Gold Heart - http://www.flickr.com/photos/cryodigital/3060730616/Ice Cream Glove by Ali G - Sacha Baron CohenKool-Aid - http://www.flickr.com/photos/dyannafstop/2025899850/Various Black and Whites - http://blackandwtf.tumblr.com/Hammock - http://www.flickr.com/photos/wisdoc/3212710310/Seven Deadly Sins - Painter Hieronymus Bosch

    Measuring - http://www.flickr.com/photos/captkodak/272746539Motley Crue - http://www.laughinsam.com/1980Images/MotleyCrue.jpgRunning Dog - http://www.flickr.com/photos/wisdoc/123640339/Chocolate Peanut Butter Cups - http://chocolateheaven.orgRandy Rhoads - www rudysarzo com/images/bio/Randy-Rhoads jpg

    image credits

    http://www.rudysarzo.com/images/bio/Randy-Rhoads.jpghttp://chocolateheaven.org/http://www.flickr.com/photos/wisdoc/123640339/http://www.laughinsam.com/1980Images/MotleyCrue.jpghttp://www.flickr.com/photos/captkodak/272746539http://www.flickr.com/photos/wisdoc/3212710310/http://blackandwtf.tumblr.com/http://www.flickr.com/photos/dyannafstop/2025899850/http://www.flickr.com/photos/cryodigital/3060730616/http://www.building-your-model-railroad.com/model-railroad-operation.htmlhttp://pffc-online.com/mag/paper_latitudes_lean/http://www.rollingstone.com/artists/dokken/photos/collection/photo/1http://chocolateheaven.org/http://chocolateheaven.org/http://chocolateheaven.org/http://www.flickr.com/photos/wisdoc/123640339/http://www.flickr.com/photos/wisdoc/123640339/http://www.laughinsam.com/1980Images/MotleyCrue.jpghttp://www.laughinsam.com/1980Images/MotleyCrue.jpghttp://www.flickr.com/photos/captkodak/272746539http://www.flickr.com/photos/captkodak/272746539http://www.flickr.com/photos/wisdoc/3212710310/http://www.flickr.com/photos/wisdoc/3212710310/http://blackandwtf.tumblr.com/http://blackandwtf.tumblr.com/http://www.flickr.com/photos/dyannafstop/2025899850/http://www.flickr.com/photos/dyannafstop/2025899850/http://www.flickr.com/photos/cryodigital/3060730616/http://www.flickr.com/photos/cryodigital/3060730616/http://www.building-your-model-railroad.com/model-railroad-operation.htmlhttp://www.building-your-model-railroad.com/model-railroad-operation.htmlhttp://pffc-online.com/mag/paper_latitudes_lean/http://pffc-online.com/mag/paper_latitudes_lean/http://www.rollingstone.com/artists/dokken/photos/collection/photo/1http://www.rollingstone.com/artists/dokken/photos/collection/photo/1http://www.flickr.com/photos/billselak/2388252659/http://www.flickr.com/photos/billselak/2388252659/http://www.flickr.com/photos/ironrodart/3841677517/http://www.flickr.com/photos/ironrodart/3841677517/http://www.flickr.com/photos/17972620@N00/2956076614/http://www.flickr.com/photos/17972620@N00/2956076614/http://www.rudysarzo.com/images/bio/Randy-Rhoads.jpg