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

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
[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
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
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
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
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
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
[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
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
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
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

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