Lean Software Development | Igor Ramos | 11-17-2008
-
Upload
igor-ramos -
Category
Software
-
view
575 -
download
0
Transcript of Lean Software Development | Igor Ramos | 11-17-2008
Agenda
� Classical software development model
� Forms of waste
– Defects and its Financial Impact
– Importance of requirements and software reviews
� Agile methods + Lean thinking
– TAKT time analogy
– Kaizen
� Roadmap
� Q&A
Waterfall model - Value Stream Map
� Phases of development proceeds in strict order
� Pros: managerial control, departmentalization
� Cons: does not allow for much revision, difficult to go back and change something that was not well-thought out
Types of Waste
Task Switching Transportation
Partially Done Work Inventory
Extra FeaturesOverproduction
Extra Processes Extra Processing
MotionMotion
DefectsDefects
WaitingWaiting
Software DevelopmentManufacturing
Are Requirements that important?
� “About 80% of rework comes from 20% of
defects.”
– Major sources avoidable rework: requirements
[2]
[2]
Importance of Reviews
� “Peer reviews catch 60% of the defects”[2]
– Make it an habit, on good and bad times!
– Should not be just a “final step”, or “upon emergency”, else:
[11]
Agile Software Development
� Lean thinking is all about eliminated non value added steps in processes.
� Agile are methods to achieve that. It promotes: – frequent inspection (reviews)– Adaptation
� Leadership philosophy that encourages team work, self-organization and accountability;
� Business approach that aligns development with customer needs and company goals.
� A set of engineering best practices that allow for rapid delivery of high-quality software;
The Weakest Link
� From experience:
– "A chain is as strong as its weakest link“
– Identify high-stake constrains
– Overlooked items
� Lean thinking:
– “Any link stronger than what is needed, is waste”
– Identify over engineered items
– Underutilized resources
TAKT Time Analogy
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
Requirement 1 Requirement 2 Requirement 3 Requirement 4 Requirement 5
Idle resources
i.e.: unused memory
Idle resources
i.e.: Idle Machinery
Software DevelopmentManufacturing
Don’t meet requirementsCan’t meet demand
Customer ExpectationsProduct Performance
Customer DemandProduction Rate
� The challenge is discipline:
– Perform a thorough engineering analysis on each requirement!
Reducing Waste the Kaizen way
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
Requirement 1 Requirement 2 Requirement 3 Requirement 4 Requirement 5
Demand/Resources
Target
1st segment
2nd segment
Remove “requirements defects”
• Upgrade constrainReduce unused resources
• Downgrade
kaizen kaizen
Roadmap
� Management commitment
– Up to 50% higher programming cost, however lower maintenance and operation costs[2]
� Project Leader � Value-Stream Manager
– Must know about costumer needs and
– Technical details of requirements
� Everyone: Teamwork is the key!
Questions?
� References:
1. Mary Poppendieck and Thomas David Poppendieck, Lean Software Development: An Agile Toolkit, Addison-Wesley, 2003
2. Barry Boehm and Victor R. Basili, "Software Defect Reduction Top 10 List," IEEE Computer, January 2001, 135-17, link
3. Cost of change in traditional processes, by Scott W. Ambler
4. Wikipedia, "Lean Software Development," , link
5. Takeuchi, Hirotaka; Nonaka, Ikujiro (January-February 1986). "The New New Product Development Game" (PDF). Harvard Business Review. Retrieved on 2008-09-26.
6. Clean room Software Engineering, link
7. SearchSoftwareQuality.com, link
Further reading: