Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not...
-
Upload
ashley-benson -
Category
Documents
-
view
216 -
download
0
Transcript of Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not...
Lean IT and agile practices towards cost effectiveness
Nageswara Nakka
Agile
Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic
Agile
What is Lean IT?
Lean – adjective: efficient and with no wastage
Lean IT is the expansion of lean manufacturing and lean service principles to software development and management of information technology(IT).
Is the elimination of waste, where waste is the work that adds no value to a product or service.
Agenda
Introduction: What is Lean IT?History of LeanPrinciples of Lean Software DevelopmentLSD Implementation aspects
Agenda Lean IT: Implementation Aspects
SpeedWasteValue
QualityKnowledgePeople
Partners
History
History
Interchangeable partsInterchangeable peopleThe Toyota Production System
Just-in-time, autonomation(jidoka)“Economies of scale”, “Variety(complexity)”stop-the-line
Non-stock productionZero inspection
Just-in-Time
Key Lesson – Stop trying to maximize local efficiencies (utilization)
Lean Family Tree – Lean Supply Chain
Principles and Practices
Principles and PracticesPrinciples are underlying truths that don’t change over time or space
Practices are realizations of the principles that can and should differ as we move from one environment to the next. They also change as a situation evolves.
Learn-by-doing approach
Understand-before-doing approach
Combined approach - “tailor” practices to fit to the need
Software, DevelopmentSoftware: Is that part of the product that is expected to change.
Development: is the process of transforming ideas into products.
Deterministic school of thought: starts by creating a complete product definition and then creates a realization of that definition
Empirical school of thought: Starts with a high level product concept and then establishes well defined feedback loops that adjust the activities so as to create an optimal interpretation of the concept.
Principle 1: Eliminate Waste
Look at the timeline. Timeline clock (start, stop).LSD focuses on the timeline by reducing waste.To eliminate waste first we need to recognize the waste.Waste is anything that does not add value.Develop a keen sense what value really is.Good software development organizations develop a deep sense of customer value and delight their customers.Next step is develop a capability to really see wasteIn manufacturing – inventory is waste.In software development – partially done work is waste.
Principle 1: Eliminate Waste
Myth: Early Specification Reduces Waste
Will you, valued customer, please give us a list of everything you want the software to do? We will write it down and ask you to sign off on the result. After that, if you want changes or additions, you will have to go through an arduous process called “change management” to get a change approved. So you had better think of everything want right now, because we have to know about it at the beginning in order to develop good software.
We set the rules:
Principle 2: Build Quality In
Inspections after the factControl conditions not to allow defectsInspections to prevent defectsInspect the product after each small stepCatch the defect immediately after they occurWhen defect is found, stop-the-line, fix-it immediatelyDefect tracking systems are queues of partially done workIn lean paradigm queues are collection points for waste
Principle 2: Build Quality In
Myth: The Job of Testing is to find Defects
We need more discipline in here, not less.Don’t focus on putting defects into a defect tracking systemAvoid creating defects in the first place.Takes a highly disciplined organization to do that. A release cycle scenario from 4 months to 6 weeks.
Principle 3: Create Knowledge
Software Development is a knowledge creation processKnowledge in the form of Requirements (puzzling)Architecture and higher level design before codingAs the code is being written
Architecture is validatedDetailed design occurs even if detailed design document was written prior
Detailed design cannot anticipate the complete complexity, cannot account for the feedbackGood project, Bad project
Principle 3: Create Knowledge
Myth: Predictions Create Predictability
We need more discipline in here, not less.Don’t focus on putting defects into a defect tracking systemAvoid creating defects in the first place.Takes a highly disciplined organization to do that. A release cycle scenario from 4 months to 6 weeks.
Principle 4: Defer Commitment
Principle 5: Deliver Fast
Principle 6: Respect People
Principle 7: Optimize the Whole
Myth: Optimization by Decomposition
A lean organization optimizes the whole value streamOrganizations have a tendency to optimize something less than a value stream (suboptimize) Decomposition approach – optimize all individual measurements.
Value
Value - Customer Focused Organization
Deep Customer Understanding Mind meld between business and technicalFlow of information between market team and development teamProvide Leadership, Empower a complete team
Existence of a championGovernance: Assigning a Decision makerProject model (vs) Product modelProduct model fosters more collaborationInternal: Absence of competitive pressure can weaken the intense customer focus (core competency)IT – Business collaboration is essential for survivabilityInternal IT organizations – problem of accountability
Waste in Software DevelopmentRoot cause – a good candidate “Complexity”Prescription is simple – “Write Less Code”Complexity
Cost of complexity – is exponentialIncreasing code baseComplex array of productsComplex Organizational structuresJustify every featureMinimum useful feature setDon’t automate (business process) complexityCandidate for automation should be clarified and simplifiedRoot Cause: No one has been conditioned to think complexity as bad.Every line of code costs money to write and to support.
Mapping the Value Stream
Value Stream Map is a timeline of the major events that occur from the time the clock starts until it stops.Objective is to reduce the development timeline by removing non-value adding wastes.Wastes are exposed as delays in the flow.Long delays and loop backs (churn) in the process.Value stream maps are diagnostic tools to help find waste
Value StreamHigh Priority feature Change Request (Organization A)
Value StreamHigh Priority feature Change Request (Organization B)
Value Stream – lessons to take away
Even though both organizations are equally busy, Organization A is better organized.Organization is focusing on making some developers available to drop low priority work to tackle high-priority requests (JIT)Organization B was focusing so hard on resource utilization which actually is driving the utilization down.Organization A was doing periodic short releasesOrganization B – accumulating code changes for 2 weeks before integration
Future Value Stream
Every organization usually has more work than it can possibly do.However far more work can be done, faster and with higher qualityBy eliminating the waste seen in most value streams.Draw a future value stream map to create a plan for removing the biggest wastes.Future map should not be an ideal map, should be a path for immediate improvement.Pick the biggest delays or the longest queues first that can be implemented in near future with one to three key changes.Repeat the process once benefits are realized, this is a continuous process.
Speed – Deliver Fast
Speed is the absence of waste
Queuing Theory – Little’s Law (stable systems)
Variation and UtilizationStable systems (checkout lanes)High utilization (traffic jam)
Reducing Cycle Time
1. Even out the arrival of work2. Minimize the number of things in process3. Minimize the size of things in process4. Establish a regular cadence5. Limit work to capacity6. Use pull scheduling
Does your organization measure “resource utilization”? Focus on release schedule? Or Project size?
Pull Scheduling
Checkpoints
Does your organization measure “resource utilization”? Focus on release schedule? Or Project size?
People Edward Deming’s 4 main points
Appreciation for SystemKnowledge about variationTheory of knowledge (PDCA)Psychology • Skill• Pride• Expertise• Confidence• cooperation
People Deming’s 14 points
1. Provide for the long-range needs of the company; don’t focus on short-term profitability. The goal is to stay in business and provide jobs.2. The world has changed, and managers need to adopt a new way of thinking. Delays, mistakes, defective workmanship, and poor service are no longer acceptable.3. Quit depending on inspection to find defects, and start building quality into products while they are being built. Use statistical process control.4. Don’t choose suppliers on the basis of low bids alone. Minimize total cost by establishing long-term relationships with suppliers that are based on loyalty and trust.5. Work continually to improve the system of production and service. Improvement is not a one-time effort; every activity in the system must be continually improved to reduce waste and improve quality.6. Institute training. Managers should know how to do the job they supervise and be able to train workers. Managers also need training to understand the system of production.7. Institute leadership. The job of managers is to help people do a better job and remove barriers in the system that keep them from doing their job with pride. The greatest waste in America is failure to use the abilities of people.8. Drive out fear. People need to feel secure in order to do their job well. There should never be a conflict between doing what is best for the company and meeting the expectations of a person’s immediate job.9. Break down barriers between departments. Create cross-functional teams so everyone can understand each-other’s perspective. Do not undermine team cooperation by rewarding individual performance.10. Stop using slogans, exhortations, and targets. It is the system, not the workers, that creates defects and lowers productivity. Exhortations don’t change the system; that is management’s responsibility.11. Eliminate numerical quotas for workers and numerical goals for people in management. Eliminate arbitrary deadlines for development teams. This is management by fear. Try leadership.12. Eliminate barriers that rob the people of their right to pride of workmanship. Stop treating hourly workers like a commodity. Eliminate annual performance ratings for salaried workers.13. Encourage education and self-improvement for everyone. An educated workforce and management is the key to the future.14. Take action to accomplish the transformation. A top management team must lead the effort with action, not just support.
21-step programOptimize the Whole1. Implement lean across an entire value stream and the complete
product2. Restructure the measurements3. Reduce the cost of crossing boundaries
Respect People4. Train team leaders/supervisors5. Move responsibility and decision making to the lowest possible
level6. Foster pride in workmanship
Deliver Fast7. Work in small batches8. Limit work to capacity9. Focus on cycle time, not utilization
21-step programDefer Commitment1. Abolish the notion that it is a good practice to start
development with a complete specification2. Break dependencies3. Maintain options
Create Knowledge4. Create design-build teams5. Maintain a culture of constant improvement6. Teach problem-solving methods
Build Quality In7. Synchronize8. Automate9. Refactor
21-step program
Eliminate Waste1. Provide market and technical leadership2. Create nothing but value3. Write less code
References
Implementing Lean Software development: From Concept to Cash – Mary and Tom Popendieck
Publisher: Addison-Wesley ProfessionalThe Agile Culture: Leading through Trust and Ownership
By: Pollyanna Pixton; Paul Gibson; Niel Nickolaisen
Publisher: Addison-Wesley Professional
Q &A