Trimming The Fat
An Intro to Lean Software Development
Conduct
Questions OK
 Raise Hand
Who Am I?
         Local Entrepreneur
1530 Technologies & A Part-Time CTO
    Organizer Lean Startup Circle
     Lean Proponent Since 2003
Assumptions
Team based development vs. solo
     Ideology still valuable
Lean Software
   Development
( While touching on Lean Manufacturing )
“Lean” vs. Lean
Lean Origins
1.Started in Japanese Manufacturing & Auto Industries
2.Crystalized in Toyota Production System

  However, the TPS is Lean, but Lean is NOT the TPS
Software vs.
Manufacturing
  Crucial Differences
Heterogeneous vs.
 Homogeneous
  Economies of Scale vs. Scope
Eliminate Failure
Total Quality Management (TQM), etc...
Wrong!
If you’re not failing, you’re not learning.
Donald G. Reinertsen
 “Failure is actually a good thing in learning systems, as
  this is one the most information is generated, so we
actually want ways of generating an appropriate ratio of
  failure to success, if we have too much of either the
     system is not generating enough information to
             properly learn” - LeanSSC 2010
Reduce Variability
     Six Sigma, etc...
Wrong!
 Reduce Economic Impact of Variability
Feature differentiation & Economies of Scope
Eliminate Bugs &
    Defects
    Sig Sigma, etc...
Wrong!
Preventing defects has a cost. Need to weigh that cost
                      with fixing
So There Are Some
    Critical Differences
Lean Software Development Follows Spirit, Not Letter,
                     of Lean
So what is Lean?
The Lean Methodology
Waterfall


Agile (XP, etc..)
                    Vs.   Lean


Custom Process


      RUP
Forget your current
Process / Methodology!
Lean

                       Waterfall


      Lean                            Lean
                     ( Not Really )
Agile (XP, etc..)                     RUP


                          Lean

                    Custom Process
Lean
                Principles


          Culture
Kanban

                Practices
There is no
  ‘Finished‘
Kaizen or Continuos Improvement
Relies on Cultural
         Changes
Internalization is key. It’s most important than any
        process you follow or certification.
Principles
1. Add nothing but value (Eliminate Waste)
2. Build Quality In
3. Create Knowledge (Focus on Learning)
4. Defer Commitment
5. Deliver Fast
6. Respect People
7. Optimize the Whole, Not the Parts
Waste
“Reduce the time from Order to Cash.” - Taiichi Ohno
Bugzilla vs. Trac
   Should We Migrate?
7 Types of Waste
1. In-Process Inventory - Anything other than the finished product

2. Over-Production - Anything produced but not sold / used.

3. Extra Processing - Rework, reprocessing

4. Transportation - Unnecessary movement of materials / product.

5. Motion - Extra steps.

6. Waiting - Downtime because an upstream activity is late.

7. Defects - Product not conforming to specs.
1. Partially Done Work
      In-Process Inventory
2. Extra Features
    Over Production
3. Re-learning
   Extra-Processing
4. Handoffs
  Transportation
5. Task Switching
      Motion
6. Delays
  Waiting
7. Defects
   Defects
How can you
identify waste?
Value Stream Mapping
       Identify Waste
Example:
  Text
2. Build Quality In
“Do not look where you fell, but where you slipped.”
                African Proverb
Build in Testing
The job of QA is NOT to find defects.
3. Create Knowledge
“Do not look where you fell, but where you slipped.”
                African Proverb
Early, Rapid Feedback
1.Automated Builds
2.Automated Testing
3.Release Early w/ Minimum Feature Set (MVP)
PDCA -
Dr. W. Edwards Deming
     Plan - Do - Check - Act
4. Defer Commitment
 “Plans are nothing; planning is everything.”
          – Dwight D. Eisenhower.
OODA Loop -
Col. John Boyd USAF
   Observe - Orient - Decide - Act
5. Deliver Fast
“A good plan, violently executed today, is better than a
     perfect plan next week.”- George S. Patton
Batch Size Reduction
1. Feature
2. Release
3. Iteration
4. Story / Requirement / Task
5. Source Control Check-Ins
6. Etc...
Example:
    Software Releases
Def: Transaction Costs - Hand off / switching costs
  Def: Holding Costs - WIP before it’s released
Transaction Costs
1.Release Notes Creation
2.System Downtime
3.Customer Notifications
4.System Migrations
5.Source Control Churn
6.Employee Overtime
Holding Costs
1.Defects
2.Missed Migration Steps
3.Rework
4.Broken Regression Tests
5.Missed Customer Feedback
6.Source Control Churn
Continuous
Deployment
   Seriously.
6. Respect People
Push Decision Making
      Down
Those with the most information should make
                decisions.
Respect All Opinions
US Military: Lowest Ranking Member Speaks First
7. Optimize the whole,
    not the parts
“Local optimization leads to global inefficiencies” -
               Eliyahu M. Goldratt
Systemic Thinking
Under how things influence one another within a
                    whole.
Root Cause Analysis
“At a fulfillment center recently, one of our Kaizen
experts asked me, “I’m in favor of a clean fulfillment
 center, but why are you cleaning? Why don’t you
     eliminate the source of dirt?” - Jeff Bezos
5 Whys
Facilitates Root Cause Analysis
Theory Of Constraints
  Cost Accounting vs. Throughput Accounting
Theory of Constraints
1.Identify The Constraint
2.Exploit The Constraint
3.Subordinate Everything To Constraint
4.Elevate The Constraint
5.Repeat / Find New Constraint
(Create 10/day)   (Process 8/day)

      Machine 1       Machine 2         Customer

Day
 1       10                 8               8

                         .........
Day
 5       10                 8               8


      End of Week Inventory: 10 Leftover Widgets
(Create 10/day)    (Test 8/day)

       Dev                QA            Customer

Day
 1      10                  8               8

                         .........
Day
 5      10                  8                8


       End of Week Inventory: 10 Leftover Tasks
Flash Demo!
Many many thanks to Tom Looy
Kanban
Pull Based Product Production
Kanban Cards
Physical cards signaling the need for an activity
Kanban Board
Divergence from Agile
With pull-based product development, iterations
               become useless.
There’s a lot more
Kaizen, Sensei, muda / muri /mura (waste)
Lean Startup
Bringing Lean/Agile practices to Marketing / Sales
Resources
Questions?
I love hearing from people, so please reach out:
     Email: gcaprio@1530technologies.com
                 Twitter: gcaprio
Final Thought
   “In product development we want to trade-off
 variability with cycle time and we should focus on
useful patterns rather than methodologies.” - Don G.
              Reinertsen, LeanSSC 2010

Intro to Lean Software Development