Lean Practices for
Software Development
@ Sandeep Yadav
What is Lean?
• Practices to maximize customer value while
minimizing waste.
• Deliver Quality products with sustainably
shortest lead time.
Source of Software Development
Principles
Reduce Waste
Waste Description Example
Partially done work Work started but not complete. Code waiting for testing.Specs waiting for
development
Extra processes Extra work that does not add value Unnecessary approvals.Unused
documentation.
Extra features Features that are not required or are thought of
as “Nice to haves”
Gold plating.Technology Features.
Task Switching Multitasking between several different projects
when there are context switching penalties
People on multiple projects
Waiting Delays waiting for reviews and approvals Waiting for approvals.Waiting for reviews
Motion The effort required to communicate or move
information or deliverables from one group to
another; if teams are not co-located this effort
may need to be greater
Distributed teams. Handover
Defects Defective software that need correction Incorrect Requirements. Software bugs
Take an Economic View
• If you want to quantify one thing ,Quantify the
Cost of Delay.
• Cost Of Delay=Business Value + Time Criticality +
Risk Reduction/Opportunity enablement.
Manage Queues
• Queues create longer cycle time, increase risk ,
increase variability, lower quality, decreases
motivation.
• Little's Law:
Avg wait time = avg queue length / avg processing rate
• Faster processing time decreases wait
• Control wait times by controlling queue lengths
• Make invisible visible
Exploit Variability
• Reducing variability impacts innovation and
hence the profitability.
• Use Spikes, Cadence, Synchronization ,
Forecasting.
• Don’t remove variability manage the economic
impact-maintain portfolio.
Reduce Batch Size
• Larger batch size creates longer cycle time,
increase risk , increase variability, lowers quality.
• Slice stories -points.
Apply WIP Constraints
• Context Switching cost.
• WIP limits help to control cycle time, identify
blockers, make wait times predictable and
prevents uncontrolled expansion of work.
Accelerate Feedback
• Facilitated by Small batches.
• Truncates unsuccessful paths quickly.
• Reduces risk.
• Improves efficiency of learning.
SUMMARY
• Reduce Waste.
• Take an Economic View.
• Actively Manage Queues.
• Exploit Variability.
• Reduce Batch Size.
• Apply WIP Constraints.
• Accelerate Feedback.

Lean Practices For Software Development

  • 1.
    Lean Practices for SoftwareDevelopment @ Sandeep Yadav
  • 2.
    What is Lean? •Practices to maximize customer value while minimizing waste. • Deliver Quality products with sustainably shortest lead time.
  • 3.
    Source of SoftwareDevelopment Principles
  • 4.
    Reduce Waste Waste DescriptionExample Partially done work Work started but not complete. Code waiting for testing.Specs waiting for development Extra processes Extra work that does not add value Unnecessary approvals.Unused documentation. Extra features Features that are not required or are thought of as “Nice to haves” Gold plating.Technology Features. Task Switching Multitasking between several different projects when there are context switching penalties People on multiple projects Waiting Delays waiting for reviews and approvals Waiting for approvals.Waiting for reviews Motion The effort required to communicate or move information or deliverables from one group to another; if teams are not co-located this effort may need to be greater Distributed teams. Handover Defects Defective software that need correction Incorrect Requirements. Software bugs
  • 5.
    Take an EconomicView • If you want to quantify one thing ,Quantify the Cost of Delay. • Cost Of Delay=Business Value + Time Criticality + Risk Reduction/Opportunity enablement.
  • 6.
    Manage Queues • Queuescreate longer cycle time, increase risk , increase variability, lower quality, decreases motivation. • Little's Law: Avg wait time = avg queue length / avg processing rate • Faster processing time decreases wait • Control wait times by controlling queue lengths • Make invisible visible
  • 7.
    Exploit Variability • Reducingvariability impacts innovation and hence the profitability. • Use Spikes, Cadence, Synchronization , Forecasting. • Don’t remove variability manage the economic impact-maintain portfolio.
  • 8.
    Reduce Batch Size •Larger batch size creates longer cycle time, increase risk , increase variability, lowers quality. • Slice stories -points.
  • 9.
    Apply WIP Constraints •Context Switching cost. • WIP limits help to control cycle time, identify blockers, make wait times predictable and prevents uncontrolled expansion of work.
  • 10.
    Accelerate Feedback • Facilitatedby Small batches. • Truncates unsuccessful paths quickly. • Reduces risk. • Improves efficiency of learning.
  • 11.
    SUMMARY • Reduce Waste. •Take an Economic View. • Actively Manage Queues. • Exploit Variability. • Reduce Batch Size. • Apply WIP Constraints. • Accelerate Feedback.