O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
© 2008, Igor Ramos
Lean Software Development
Igor Ramos
November 17, 2008
Agenda
Classical software development model
Forms of waste
– Defects and its Financial Impact
– Importance of requirements...
Waterfall model - Value Stream Map
Phases of development
proceeds in strict order
Pros: managerial control,
departmentaliz...
Types of Waste
Task SwitchingTransportation
Partially Done WorkInventory
Extra FeaturesOverproduction
Extra ProcessesExtra...
Cost of a Defect
Goal: Fix it early!
[2]
Figure by S. Ambler, text by B. Boehm
Are Requirements that important?
“About 80% of rework comes from 20% of
defects.”
– Major sources avoidable rework: requir...
Importance of Reviews
“Peer reviews catch 60% of the defects”[2]
– Make it an habit, on good and bad times!
– Should not b...
Agile Software Development
Lean thinking is all about eliminated non value
added steps in processes.
Agile are methods to ...
Impact of Agile on cost
Agile
Traditional
Length of Feedback Cycle
Cost
Worst case
scenario!
Agile Value Stream Map
Shorter feedback cycle
How to segment tasks?
Think lean…
The Weakest Link
From experience:
– "A chain is as strong as its weakest link“
– Identify high-stake constrains
– Overlook...
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
Id...
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 Requ...
Roadmap
Management commitment
– Up to 50% higher programming cost, however
lower maintenance and operation costs[2]
Projec...
Questions?
References:
1. Mary Poppendieck and Thomas David Poppendieck, Lean Software
Development: An Agile Toolkit, Addi...
Próximos SlideShares
Carregando em…5
×

Lean Software Development | Igor Ramos | 11-17-2008

1.315 visualizações

Publicada em

Back in 2008 I took a Lean Manufacturing course as part of my MS in Engineering Management at the University of Missouri-Rolla. At the time I was working as a Software Engineer at Caterpillar's Advanced Engineering unit.

My job was to take bleeding edge concepts related to machine and engine controls and rapid prototype them using embedded controllers and software. I typically had to juggle working on 3-5 projects at a time. Often requirements were very loose.

In an effort to improve my workflow and become more efficient delivering solutions customers actually needed, I decided to take on the challenge of "translating" the well established Lean Manufacturing principles into the software world. Keep in mind that in 2008 Agile and Scrum were not part of the vocabulary of large companies such as Caterpillar. The old Waterfall method was king on software development. Meanwhile Lean Manufacturing was all around Caterpillar’s Production System (CPS).

My presentation on Lean Software Development was something new to both my classmates and coworkers, but most concept were easy to grasp and my team put it into practice, helping us to deliver solutions on time, and above it prevented us wasting time on unneeded features.

One success story always comes to mind: a customer sent in the requirements for a new fuel injection system. It required a time resolution of 8uS. Instead of developing the system right away, I instead performed an analysis and informed the customer: "We can deliver 7uS in 4months. But we can do 9uS in 1 week". The current microcontroller architecture was the limitation. To achieve better resolution we’d need to implement a new platform. The customer was ok with 9uS and very happy we had the system shipped in one week. I was happy I was not working on something that did not add value.


Above is just one example of Lean thinking in practice. The most exciting application of the method was a couple years later. I was the software architect of Caterpillar’s first hybrid excavator, a VERY visible project. My team had to deliver the Energy Storage System. High management was about to inform the customer that it would be impossible to deliver software on time for the first machine key-on.
I raised my hand and said “… I have a solution. Lets phase out our software deliveries. Our first delivery will be a safe-offline. By the time hydraulic check out is complete we’ll deliver version two.”

I’m glad to see that lean / agile / scrum methods are now standard practices in software development in several companies, including Caterpillar.

Publicada em: Software
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Lean Software Development | Igor Ramos | 11-17-2008

  1. 1. © 2008, Igor Ramos Lean Software Development Igor Ramos November 17, 2008
  2. 2. 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
  3. 3. 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
  4. 4. Types of Waste Task SwitchingTransportation Partially Done WorkInventory Extra FeaturesOverproduction Extra ProcessesExtra Processing MotionMotion DefectsDefects WaitingWaiting Software DevelopmentManufacturing
  5. 5. Cost of a Defect Goal: Fix it early! [2] Figure by S. Ambler, text by B. Boehm
  6. 6. Are Requirements that important? “About 80% of rework comes from 20% of defects.” – Major sources avoidable rework: requirements [2] [2]
  7. 7. 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]
  8. 8. 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;
  9. 9. Impact of Agile on cost Agile Traditional Length of Feedback Cycle Cost Worst case scenario!
  10. 10. Agile Value Stream Map Shorter feedback cycle How to segment tasks? Think lean…
  11. 11. 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
  12. 12. 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 Expectations Product Performance Customer Demand Production Rate The challenge is discipline: – Perform a thorough engineering analysis on each requirement!
  13. 13. 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 constrain Reduce unused resources • Downgrade kaizen kaizen
  14. 14. 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!
  15. 15. 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:

×