SlideShare a Scribd company logo
1 of 101
Download to read offline
Get Lean
  Slimming Down with Rails
            Marty Haught
                @mghaught
          http://martyhaught.com




http://github.com/mghaught/getlean
tutorial’s goal

• introduce lean concepts
• discuss the how and why
• demonstrate Rails-specific techniques
• give you a starting place to go further
session guidelines

• questions are welcome at any point
• let’s be interactive
• encourage conversations
• we’ll have breaks
context for today

• limited resources (time & money)
• uncertain of solution
• unknown market
outline
1.   lean overview
2.   rails basics
3.   focusing on value
4.   minimize effort
5.   measuring
6.   delivering fast
tutorial material


http://github.com/mghaught/getlean
flingr!

      tutorial/install.md

http://flingr.martyhaught.com
http://ciflingr.martyhaught.com
Boulder Ruby




Longmont, Colorado
why lean?




consulting   entrepreneurship
other reasons


• bloated, inefficient agile projects
• building software no one wants or uses
rockin with ramen




   (pictured with Dokken)
1. lean overview




“from manufacturing to software”
discovering lean




  Mary Poppendieck
http://www.poppendieck.com/
history of lean

• emerged from manufacturing in the 50s
• Toyota production system
• translated for software projects in 90s
• influenced agile thinking
lean startups

“translating your startup vision into a successful
 business as quickly and efficiently as possible”



                  Eric Ries
 http://www.startuplessonslearned.com/
customer development




       Steve Blank
    http://steveblank.com/
new ‘translation’




http://www.custdev.com/
changed my view

• much like when I discovered XP in 2004
• think just as much about the business as
  the technical
• engineers should ‘own’ the business side
2. rails stack




“preaching to the choir”
why rails/sinatra

• great for prototyping
• can be minimal or full stack
• change is easy
• start simple but can grow
community assets

• helpful
• easy to pick up new resources
• constantly improving
automation

• automated testing
• continuous integration
• data migrations
• deployment
• notifications
master your stack

• practice your art to get faster
• use plugins and gems for common
  functionality
• anything to let you focus more on what’s
  important
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 more
 testing and process than a twitter-based web app.”
context changes
• what worked for the start of the project
  may not fit once you enter into
  maintenance mode
• the larger the organization, the more the
  process
• accept that you will likely have to re-
  evaluate
3. focusing on value




  “work on the right things”
defining your product

• knowing your vision
• clarify and agree as a team
• what is your value?
• why are you creating this software?
business value

• how do you define success?
• how do you measure it?
• will people use it?
• who?
agile’s customer

• dev team takes direction from client
• no questioning of business motives in
  feature requests
• engineers don’t ‘own’ the business side
ice cream glove
drinking your kool-aid?
webbchange story
of excess
of too many features
valuing web content
demo time
everything but ...




Getting in all the features before launching
Built too much?!?
my mistake
will people use it?
got eyeballs on it
too complex
ran out of money
lessons learned

• start simple and launch early
• validate against real use
• get out of the building and talk to people
minimum viable product

• rails rumble or startup weekend
• starting place for validated learning with the
  least effort
• should be embarrassing
• early adopters see the potential
mvp exercise


• what is flingr’s mvp?
• what about webbchange?
learning process

• make progress by reaching users
• don’t just execute a plan
• use feedback
• pivot as you learn
Eric Ries’ feedback loop
4. minimize effort




     “less is more”
simplicity

• strip features to the essence that achieves
  value
• spiking large features
• “do the simplest thing that could possibly
  work”
delay commitment

• pushing off decisions, commitment until the
  last possible moment
• yagni - you ain’t going to need it
• no really, be militant about pushing things
  off
reducing waste

• core value of lean, eliminating waste
• does your current task add business value?
• eliminate activity that doesn’t contribute to
  progress
• re-evaluate the value of what you’re doing
seven wastes of lean
Develop only for the current
Overproduction            Extra Features
                                                            story

                                                  Story cards are detailed only
   Inventory          Backlog, Requirements
                                                    for the current iteration

Extra Processing           Extra Steps             Code directly from stories

                                                   Have everyone in the same
    Motion             Finding Information
                                                    room; customer included

                                                  Test first; including acceptance
    Defects        Defects not caught by tests
                                                                tests

    Waiting        Waiting, Including Customers    Deliver in small increments

                                                  Developers work directly with
Transportation              Handoffs
                                                           customers
5. measuring




“know when you’re making progress”
pirate metrics
not vanity metrics
must be actionable


“should help you make decisions”
AARRR!
                        by Dave McClure
http://www.slideshare.net/dmc500hats/startup-metrics-for-pirates-long-version


     • acquisition
     • activation
     • retention
     • referral
     • revenue
flingr metrics

• unique visits (acquisition)
• signups (activation)
• repeat use (retention)
• fling backs (referral)
• pro upgrade (revenue)
skip services for now

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


• MixPanel http://mixpanel.com/


• KISSMetrics    http://kissmetrics.com/


• others
diy metrics

• you control the data
• can track any event in your system
• good enough for actionable metrics
• start simple, 5 at most
metrics exercise


 tutorial/metrics.md
what to measure?

• will the new story add value?
• how will you measure progress?
• define when new stories are created
• best when it’s one of your core metrics
split testing

  “presenting two or more variations and
measuring user behavior to determine value”
benefits


• best mechanism to truly measure progress
• can answer internal debates
pitfalls

• can lead to a mess if not well-guided
• may not get conclusive reports
• don’t go overboard
• don’t let it replace your vision
split test exercise

 tutorial/abingo.md
 tutorial/vanity.md
take away


• limited to a single metric/conversion
• best when you can analyze all aarrr metrics
6. delivering fast




     “speed wins”
small batches
“amount of finished work that can be shipped”


   • reduce to smallest, meaningful chunks
   • reduces integration costs
   • helps avoid overproduction
   • think hours not days
kanban

• a pull-based system for continuous flow of work
• expression of just in time
• emphasis on flow

     http://www.limitedwipsociety.org/
science behind it

• queueing theory
• theory of constraints
• proven in world of manufacturing
• working in software projects
agile’s iteration

• fixed time box, such as two weeks
• IPM to cover a set of stories
• make estimates
• velocity to determine what fits
reducing waste

• no need to estimate
• no need to force stories to fit
• just in time meetings
• no big batch of stories
kanban exercise
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
why not?


• cultural
• green or undisciplined team
• other reasons?
kanban-tracker hybrid
• one week iterations
• ultra light weight complexity ‘estimates’
• continuously add stories to backlog as
  needed
• no ipm, just in time discussions
• deploy stories when complete
kanban




continuous deployment
continuous deployment


“automatic flow of completed features”
agile way

• batch up all stories for iteration
• separate integration step
• explicit sign off process
• qa -- staging -- production
not lean

“the larger the gap between ‘trunk’ and
 production, the heavier the process”
classic stack

• source control with commit hook
• continuous integration
• deploy/rollback script
• real time alerts
• root cause analysis
Commit




Monitor            Test



          Deploy
go lighter


• deploy to a ‘dev’ instance
• no monitoring
faking it


• nothing’s automated
• once you commit a feature, deploy
monitoring


• pingdom
• nagios with business metrics
• stop the line on alert
five whys


• determine source of issue
• take small steps to prevent
benefits

• eliminates waste on shipping code
• features go live sooner
• reduce shelf time for finished work
• find integration issues quickly in isolation
cd exercise


tutorial/contdeploy.md
take away

• deliver code faster
• focus on features, not integration
• reduces fear of pushing to production
• quality does not have to decline
why we test exercise



        ?
test all the f’n time?

• don’t blindly follow some guideline
• does 100% coverage have business value?
• are all tests valuable?
• cost of writing/maintaining all tests?
• cost of failure/bugs?
value of testing


• not all project phases value testing equally
• larger the team, the greater the need
• context really matters
phases of a startup
                  Kent Beck
http://www.threeriversinstitute.org/blog/?p=251


    1. Taxi (find a need)
    2. Takeoff (validate need has a problem)
    3. Climb (scaling)
    4. Cruise (manage)
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
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
go forth and rock!
thank you

  Marty Haught
      @mghaught
 mghaught@gmail.com
http://martyhaught.com
image credits
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/1
Lean Overview - http://pffc-online.com/mag/paper_latitudes_lean/
Rails Stack - http://www.building-your-model-railroad.com/model-railroad-operation.html
Gold Heart - http://www.flickr.com/photos/cryodigital/3060730616/
Ice Cream Glove by Ali G - Sacha Baron Cohen
Kool-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/272746539
Motley Crue - http://www.laughinsam.com/1980Images/MotleyCrue.jpg
Running Dog - http://www.flickr.com/photos/wisdoc/123640339/
Chocolate Peanut Butter Cups - http://chocolateheaven.org
Randy Rhoads - www.rudysarzo.com/images/bio/Randy-Rhoads.jpg

More Related Content

What's hot

DevOps Picc12 Management Talk
DevOps Picc12 Management TalkDevOps Picc12 Management Talk
DevOps Picc12 Management TalkMichael Rembetsy
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Kris Buytaert
 
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...Bert Jan Schrijver
 
Automate Everything! (No stress development/Tallinn)
Automate Everything! (No stress development/Tallinn)Automate Everything! (No stress development/Tallinn)
Automate Everything! (No stress development/Tallinn)Arto Santala
 
Turning Human Capital into High Performance Organizational Capital
Turning Human Capital into High Performance Organizational CapitalTurning Human Capital into High Performance Organizational Capital
Turning Human Capital into High Performance Organizational CapitalJohn Willis
 
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...Bert Jan Schrijver
 
All daydevops 2016 - Turning Human Capital into High Performance Organizati...
All daydevops   2016 - Turning Human Capital into High Performance Organizati...All daydevops   2016 - Turning Human Capital into High Performance Organizati...
All daydevops 2016 - Turning Human Capital into High Performance Organizati...John Willis
 
DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.Bert Jan Schrijver
 
The agile elephant in the room
The agile elephant in the roomThe agile elephant in the room
The agile elephant in the roomAgileDenver
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsMike Brittain
 
Immutable Service Delivery Shenzhen 2016
Immutable Service Delivery   Shenzhen 2016Immutable Service Delivery   Shenzhen 2016
Immutable Service Delivery Shenzhen 2016John Willis
 
Minimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a StartupMinimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a StartupRandy Shoup
 
Django production
Django productionDjango production
Django productionpythonsd
 
An Agile Approach to Machine Learning
An Agile Approach to Machine LearningAn Agile Approach to Machine Learning
An Agile Approach to Machine LearningRandy Shoup
 
Damn... we missed the date again
Damn... we missed the date againDamn... we missed the date again
Damn... we missed the date againSudipta Lahiri
 
Agile Evangelist 22 - Freddie Quek - How Not To Do Agile
Agile Evangelist 22 - Freddie Quek - How Not To Do Agile Agile Evangelist 22 - Freddie Quek - How Not To Do Agile
Agile Evangelist 22 - Freddie Quek - How Not To Do Agile Arrows_Group
 
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver SoftwareBeyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver SoftwareChris Weldon
 
DevOps - It's About How We Work
DevOps - It's About How We WorkDevOps - It's About How We Work
DevOps - It's About How We WorkRandy Shoup
 
Support and Initiate a DevOps Transformation
Support and Initiate a DevOps TransformationSupport and Initiate a DevOps Transformation
Support and Initiate a DevOps Transformationdev2ops
 

What's hot (20)

DevOps Picc12 Management Talk
DevOps Picc12 Management TalkDevOps Picc12 Management Talk
DevOps Picc12 Management Talk
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.
 
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
 
Automate Everything! (No stress development/Tallinn)
Automate Everything! (No stress development/Tallinn)Automate Everything! (No stress development/Tallinn)
Automate Everything! (No stress development/Tallinn)
 
Turning Human Capital into High Performance Organizational Capital
Turning Human Capital into High Performance Organizational CapitalTurning Human Capital into High Performance Organizational Capital
Turning Human Capital into High Performance Organizational Capital
 
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
 
All daydevops 2016 - Turning Human Capital into High Performance Organizati...
All daydevops   2016 - Turning Human Capital into High Performance Organizati...All daydevops   2016 - Turning Human Capital into High Performance Organizati...
All daydevops 2016 - Turning Human Capital into High Performance Organizati...
 
DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.
 
The agile elephant in the room
The agile elephant in the roomThe agile elephant in the room
The agile elephant in the room
 
DevOps Requires Agility
DevOps Requires AgilityDevOps Requires Agility
DevOps Requires Agility
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty Details
 
Immutable Service Delivery Shenzhen 2016
Immutable Service Delivery   Shenzhen 2016Immutable Service Delivery   Shenzhen 2016
Immutable Service Delivery Shenzhen 2016
 
Minimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a StartupMinimum Viable Architecture -- Good Enough is Good Enough in a Startup
Minimum Viable Architecture -- Good Enough is Good Enough in a Startup
 
Django production
Django productionDjango production
Django production
 
An Agile Approach to Machine Learning
An Agile Approach to Machine LearningAn Agile Approach to Machine Learning
An Agile Approach to Machine Learning
 
Damn... we missed the date again
Damn... we missed the date againDamn... we missed the date again
Damn... we missed the date again
 
Agile Evangelist 22 - Freddie Quek - How Not To Do Agile
Agile Evangelist 22 - Freddie Quek - How Not To Do Agile Agile Evangelist 22 - Freddie Quek - How Not To Do Agile
Agile Evangelist 22 - Freddie Quek - How Not To Do Agile
 
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver SoftwareBeyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver Software
 
DevOps - It's About How We Work
DevOps - It's About How We WorkDevOps - It's About How We Work
DevOps - It's About How We Work
 
Support and Initiate a DevOps Transformation
Support and Initiate a DevOps TransformationSupport and Initiate a DevOps Transformation
Support and Initiate a DevOps Transformation
 

Similar to Get lean tutorial

Project Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerProject Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerRightScale
 
Bootstrapping your startup & building it lean: stop wasting time
Bootstrapping your startup & building it lean: stop wasting timeBootstrapping your startup & building it lean: stop wasting time
Bootstrapping your startup & building it lean: stop wasting timeJoel Gascoigne
 
Lessons Learned From Cloud Migrations
Lessons Learned From Cloud MigrationsLessons Learned From Cloud Migrations
Lessons Learned From Cloud MigrationsMandi Walls
 
CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010Joel Gascoigne
 
Kanban testing
Kanban testingKanban testing
Kanban testingCprime
 
Top Devops bottlenecks, constraints and best practices
Top Devops bottlenecks, constraints and best practicesTop Devops bottlenecks, constraints and best practices
Top Devops bottlenecks, constraints and best practicesMike Kavis
 
Agile Data Warehousing
Agile Data WarehousingAgile Data Warehousing
Agile Data WarehousingDavide Mauri
 
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps worldLucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps worldDevOps Enterprise Summit
 
Final spiralmodel97
Final spiralmodel97Final spiralmodel97
Final spiralmodel97akshay8835
 
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps JourneyGartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps JourneyKelly Looney
 
Agile and Lean Software Development
Agile and Lean Software DevelopmentAgile and Lean Software Development
Agile and Lean Software DevelopmentTathagat Varma
 
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learned
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learnedRebuilding Legacy Apps with Domain-Driven Design - Lessons learned
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learnedKacper Gunia
 
Minimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good EnoughMinimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good EnoughRandy Shoup
 
Adopting Agile
Adopting AgileAdopting Agile
Adopting AgileCoverity
 
Concept to Completion: an Entrepreneurs Guide to Creating a Software Product
Concept to Completion: an Entrepreneurs Guide to Creating a Software ProductConcept to Completion: an Entrepreneurs Guide to Creating a Software Product
Concept to Completion: an Entrepreneurs Guide to Creating a Software ProductLee Jones
 
Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014Mandi Walls
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsMike Long
 

Similar to Get lean tutorial (20)

Project Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerProject Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on Docker
 
Bootstrapping your startup & building it lean: stop wasting time
Bootstrapping your startup & building it lean: stop wasting timeBootstrapping your startup & building it lean: stop wasting time
Bootstrapping your startup & building it lean: stop wasting time
 
Lessons Learned From Cloud Migrations
Lessons Learned From Cloud MigrationsLessons Learned From Cloud Migrations
Lessons Learned From Cloud Migrations
 
CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010
 
Kanban testing
Kanban testingKanban testing
Kanban testing
 
Top Devops bottlenecks, constraints and best practices
Top Devops bottlenecks, constraints and best practicesTop Devops bottlenecks, constraints and best practices
Top Devops bottlenecks, constraints and best practices
 
Whats my MVP?
Whats my MVP?Whats my MVP?
Whats my MVP?
 
Agile Data Warehousing
Agile Data WarehousingAgile Data Warehousing
Agile Data Warehousing
 
DevOps Days Ohio
DevOps Days OhioDevOps Days Ohio
DevOps Days Ohio
 
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps worldLucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
 
Final spiralmodel97
Final spiralmodel97Final spiralmodel97
Final spiralmodel97
 
Agile ux fullday-uxpa2016
Agile ux fullday-uxpa2016Agile ux fullday-uxpa2016
Agile ux fullday-uxpa2016
 
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps JourneyGartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
 
Agile and Lean Software Development
Agile and Lean Software DevelopmentAgile and Lean Software Development
Agile and Lean Software Development
 
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learned
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learnedRebuilding Legacy Apps with Domain-Driven Design - Lessons learned
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learned
 
Minimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good EnoughMinimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good Enough
 
Adopting Agile
Adopting AgileAdopting Agile
Adopting Agile
 
Concept to Completion: an Entrepreneurs Guide to Creating a Software Product
Concept to Completion: an Entrepreneurs Guide to Creating a Software ProductConcept to Completion: an Entrepreneurs Guide to Creating a Software Product
Concept to Completion: an Entrepreneurs Guide to Creating a Software Product
 
Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014Design Reviews for Operations - Velocity Europe 2014
Design Reviews for Operations - Velocity Europe 2014
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy Projects
 

Recently uploaded

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Get lean tutorial

  • 1. Get Lean Slimming Down with Rails Marty Haught @mghaught http://martyhaught.com http://github.com/mghaught/getlean
  • 2. tutorial’s goal • introduce lean concepts • discuss the how and why • demonstrate Rails-specific techniques • give you a starting place to go further
  • 3. session guidelines • questions are welcome at any point • let’s be interactive • encourage conversations • we’ll have breaks
  • 4. context for today • limited resources (time & money) • uncertain of solution • unknown market
  • 5. outline 1. lean overview 2. rails basics 3. focusing on value 4. minimize effort 5. measuring 6. delivering fast
  • 7. flingr! tutorial/install.md http://flingr.martyhaught.com http://ciflingr.martyhaught.com
  • 9. why lean? consulting entrepreneurship
  • 10. other reasons • bloated, inefficient agile projects • building software no one wants or uses
  • 11. rockin with ramen (pictured with Dokken)
  • 12. 1. lean overview “from manufacturing to software”
  • 13. discovering lean Mary Poppendieck http://www.poppendieck.com/
  • 14. history of lean • emerged from manufacturing in the 50s • Toyota production system • translated for software projects in 90s • influenced agile thinking
  • 15. lean startups “translating your startup vision into a successful business as quickly and efficiently as possible” Eric Ries http://www.startuplessonslearned.com/
  • 16. customer development Steve Blank http://steveblank.com/
  • 18. changed my view • much like when I discovered XP in 2004 • think just as much about the business as the technical • engineers should ‘own’ the business side
  • 19. 2. rails stack “preaching to the choir”
  • 20. why rails/sinatra • great for prototyping • can be minimal or full stack • change is easy • start simple but can grow
  • 21. community assets • helpful • easy to pick up new resources • constantly improving
  • 22. automation • automated testing • continuous integration • data migrations • deployment • notifications
  • 23. master your stack • practice your art to get faster • use plugins and gems for common functionality • anything to let you focus more on what’s important
  • 24. 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 more testing and process than a twitter-based web app.”
  • 25. context changes • what worked for the start of the project may not fit once you enter into maintenance mode • the larger the organization, the more the process • accept that you will likely have to re- evaluate
  • 26. 3. focusing on value “work on the right things”
  • 27. defining your product • knowing your vision • clarify and agree as a team • what is your value? • why are you creating this software?
  • 28. business value • how do you define success? • how do you measure it? • will people use it? • who?
  • 29. agile’s customer • dev team takes direction from client • no questioning of business motives in feature requests • engineers don’t ‘own’ the business side
  • 34. of too many features
  • 37. everything but ... Getting in all the features before launching
  • 43. ran out of money
  • 44. lessons learned • start simple and launch early • validate against real use • get out of the building and talk to people
  • 45. minimum viable product • rails rumble or startup weekend • starting place for validated learning with the least effort • should be embarrassing • early adopters see the potential
  • 46. mvp exercise • what is flingr’s mvp? • what about webbchange?
  • 47. learning process • make progress by reaching users • don’t just execute a plan • use feedback • pivot as you learn
  • 49. 4. minimize effort “less is more”
  • 50. simplicity • strip features to the essence that achieves value • spiking large features • “do the simplest thing that could possibly work”
  • 51. delay commitment • pushing off decisions, commitment until the last possible moment • yagni - you ain’t going to need it • no really, be militant about pushing things off
  • 52. reducing waste • core value of lean, eliminating waste • does your current task add business value? • eliminate activity that doesn’t contribute to progress • re-evaluate the value of what you’re doing
  • 54. Develop only for the current Overproduction Extra Features story Story cards are detailed only Inventory Backlog, Requirements for the current iteration Extra Processing Extra Steps Code directly from stories Have everyone in the same Motion Finding Information room; customer included Test first; including acceptance Defects Defects not caught by tests tests Waiting Waiting, Including Customers Deliver in small increments Developers work directly with Transportation Handoffs customers
  • 55. 5. measuring “know when you’re making progress”
  • 58. must be actionable “should help you make decisions”
  • 59. AARRR! by Dave McClure http://www.slideshare.net/dmc500hats/startup-metrics-for-pirates-long-version • acquisition • activation • retention • referral • revenue
  • 60. flingr metrics • unique visits (acquisition) • signups (activation) • repeat use (retention) • fling backs (referral) • pro upgrade (revenue)
  • 61. skip services for now • Google Analytics http://www.google.com/analytics • MixPanel http://mixpanel.com/ • KISSMetrics http://kissmetrics.com/ • others
  • 62. diy metrics • you control the data • can track any event in your system • good enough for actionable metrics • start simple, 5 at most
  • 64. what to measure? • will the new story add value? • how will you measure progress? • define when new stories are created • best when it’s one of your core metrics
  • 65. split testing “presenting two or more variations and measuring user behavior to determine value”
  • 66. benefits • best mechanism to truly measure progress • can answer internal debates
  • 67. pitfalls • can lead to a mess if not well-guided • may not get conclusive reports • don’t go overboard • don’t let it replace your vision
  • 68. split test exercise tutorial/abingo.md tutorial/vanity.md
  • 69. take away • limited to a single metric/conversion • best when you can analyze all aarrr metrics
  • 70. 6. delivering fast “speed wins”
  • 71. small batches “amount of finished work that can be shipped” • reduce to smallest, meaningful chunks • reduces integration costs • helps avoid overproduction • think hours not days
  • 72. kanban • a pull-based system for continuous flow of work • expression of just in time • emphasis on flow http://www.limitedwipsociety.org/
  • 73. science behind it • queueing theory • theory of constraints • proven in world of manufacturing • working in software projects
  • 74. agile’s iteration • fixed time box, such as two weeks • IPM to cover a set of stories • make estimates • velocity to determine what fits
  • 75. reducing waste • no need to estimate • no need to force stories to fit • just in time meetings • no big batch of stories
  • 77. 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
  • 78. why not? • cultural • green or undisciplined team • other reasons?
  • 79. kanban-tracker hybrid • one week iterations • ultra light weight complexity ‘estimates’ • continuously add stories to backlog as needed • no ipm, just in time discussions • deploy stories when complete
  • 81. continuous deployment “automatic flow of completed features”
  • 82. agile way • batch up all stories for iteration • separate integration step • explicit sign off process • qa -- staging -- production
  • 83. not lean “the larger the gap between ‘trunk’ and production, the heavier the process”
  • 84. classic stack • source control with commit hook • continuous integration • deploy/rollback script • real time alerts • root cause analysis
  • 85. Commit Monitor Test Deploy
  • 86. go lighter • deploy to a ‘dev’ instance • no monitoring
  • 87. faking it • nothing’s automated • once you commit a feature, deploy
  • 88. monitoring • pingdom • nagios with business metrics • stop the line on alert
  • 89. five whys • determine source of issue • take small steps to prevent
  • 90. benefits • eliminates waste on shipping code • features go live sooner • reduce shelf time for finished work • find integration issues quickly in isolation
  • 92. take away • deliver code faster • focus on features, not integration • reduces fear of pushing to production • quality does not have to decline
  • 93. why we test exercise ?
  • 94. test all the f’n time? • don’t blindly follow some guideline • does 100% coverage have business value? • are all tests valuable? • cost of writing/maintaining all tests? • cost of failure/bugs?
  • 95. value of testing • not all project phases value testing equally • larger the team, the greater the need • context really matters
  • 96. phases of a startup Kent Beck http://www.threeriversinstitute.org/blog/?p=251 1. Taxi (find a need) 2. Takeoff (validate need has a problem) 3. Climb (scaling) 4. Cruise (manage)
  • 97. 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
  • 98. 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
  • 99. go forth and rock!
  • 100. thank you Marty Haught @mghaught mghaught@gmail.com http://martyhaught.com
  • 101. image credits 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/1 Lean Overview - http://pffc-online.com/mag/paper_latitudes_lean/ Rails Stack - http://www.building-your-model-railroad.com/model-railroad-operation.html Gold Heart - http://www.flickr.com/photos/cryodigital/3060730616/ Ice Cream Glove by Ali G - Sacha Baron Cohen Kool-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/272746539 Motley Crue - http://www.laughinsam.com/1980Images/MotleyCrue.jpg Running Dog - http://www.flickr.com/photos/wisdoc/123640339/ Chocolate Peanut Butter Cups - http://chocolateheaven.org Randy Rhoads - www.rudysarzo.com/images/bio/Randy-Rhoads.jpg