lean practices for software development

11
Lean Practices for Software Development @ Sandeep Yadav

Upload: sandeep-yadav

Post on 22-Apr-2015

98 views

Category:

Software


2 download

DESCRIPTION

Lean Practices For Software Development

TRANSCRIPT

Page 1: Lean Practices For Software Development

Lean Practices for Software Development

@ Sandeep Yadav

Page 2: Lean Practices For Software Development

What is Lean?

• Practices to maximize customer value while minimizing waste.

• Deliver Quality products with sustainably shortest lead time.

Page 3: Lean Practices For Software Development

Source of Software Development Principles

Page 4: Lean Practices For Software Development

Reduce Waste

Waste Description ExamplePartially 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 reviewsMotion 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

Page 5: Lean Practices For Software Development

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.

Page 6: Lean Practices For Software Development

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

Page 7: Lean Practices For Software Development

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.

Page 8: Lean Practices For Software Development

Reduce Batch Size

• Larger batch size creates longer cycle time, increase risk , increase variability, lowers quality.

• Slice stories -points.

Page 9: Lean Practices For Software Development

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.

Page 10: Lean Practices For Software Development

Accelerate Feedback

• Facilitated by Small batches. • Truncates unsuccessful paths quickly.• Reduces risk.• Improves efficiency of learning.

Page 11: Lean Practices For Software Development

SUMMARY

• Reduce Waste.• Take an Economic View. • Actively Manage Queues.• Exploit Variability.• Reduce Batch Size.• Apply WIP Constraints.• Accelerate Feedback.