Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not...

46
Lean IT and agile practices towards cost effectiveness Nageswara Nakka

Transcript of Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not...

Page 1: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Lean IT and agile practices towards cost effectiveness

Nageswara Nakka

Page 2: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Agile

Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic

Page 3: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Agile

Page 4: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.
Page 5: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.
Page 6: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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.

Page 7: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Agenda

Introduction: What is Lean IT?History of LeanPrinciples of Lean Software DevelopmentLSD Implementation aspects

Page 8: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Agenda Lean IT: Implementation Aspects

SpeedWasteValue

QualityKnowledgePeople

Partners

Page 9: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

History

Page 10: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

History

Interchangeable partsInterchangeable peopleThe Toyota Production System

Just-in-time, autonomation(jidoka)“Economies of scale”, “Variety(complexity)”stop-the-line

Non-stock productionZero inspection

Page 11: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Just-in-Time

Page 12: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Key Lesson – Stop trying to maximize local efficiencies (utilization)

Page 13: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Lean Family Tree – Lean Supply Chain

Page 14: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Principles and Practices

Page 15: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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

Page 16: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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.

Page 17: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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.

Page 18: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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:

Page 19: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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

Page 20: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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.

Page 21: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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

Page 22: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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.

Page 23: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Principle 4: Defer Commitment

Page 24: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Principle 5: Deliver Fast

Page 25: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Principle 6: Respect People

Page 26: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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.

Page 27: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Value

Page 28: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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

Page 29: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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.

Page 30: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.
Page 31: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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

Page 32: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Value StreamHigh Priority feature Change Request (Organization A)

Page 33: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Value StreamHigh Priority feature Change Request (Organization B)

Page 34: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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

Page 35: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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.

Page 36: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Speed – Deliver Fast

Speed is the absence of waste

Queuing Theory – Little’s Law (stable systems)

Page 37: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Variation and UtilizationStable systems (checkout lanes)High utilization (traffic jam)

Page 38: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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?

Page 39: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Pull Scheduling

Checkpoints

Does your organization measure “resource utilization”? Focus on release schedule? Or Project size?

Page 40: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

People Edward Deming’s 4 main points

Appreciation for SystemKnowledge about variationTheory of knowledge (PDCA)Psychology • Skill• Pride• Expertise• Confidence• cooperation

Page 41: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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.

Page 42: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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

Page 43: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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

Page 44: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

21-step program

Eliminate Waste1. Provide market and technical leadership2. Create nothing but value3. Write less code

Page 45: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

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

Page 46: Nageswara Nakka. Agile – adjective: quick and well coordinated in movement active, lively not awkward, not lethargic.

Q &A