Lean IT and Agile Practices Towards Cost Effectiveness

Download Report

Transcript Lean IT and Agile Practices Towards Cost Effectiveness

Nageswara Nakka
Agile – adjective:
quick and well coordinated in movement
active, lively
not awkward, not lethargic
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.
Introduction: What is Lean IT?
History of Lean
Principles of Lean Software Development
LSD Implementation aspects
Value
Waste
Speed
People
Knowledge
Quality
Partners
Interchangeable parts
Interchangeable people
The Toyota Production System
Just-in-time,
autonomation(jidoka)
“Economies of scale”, “Variety(complexity)”
stop-the-line
Non-stock production
Zero inspection
Principles 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: 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.
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 waste
In manufacturing – inventory is waste.
In software development – partially done work is
waste.
Myth: Early Specification Reduces Waste
We set the rules:
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.
Inspections after the fact
Control conditions not to allow defects
Inspections to prevent defects
Inspect the product after each small step
Catch the defect immediately after they occur
When defect is found, stop-the-line, fix-it
immediately
Defect tracking systems are queues of partially done
work
In lean paradigm queues are collection points for
waste
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
system
Avoid creating defects in the first place.
Takes a highly disciplined organization to do that.
A release cycle scenario from 4 months to 6 weeks.
Software Development is a knowledge creation
process
Knowledge in the form of Requirements (puzzling)
Architecture and higher level design before coding
As the code is being written
Architecture is validated
Detailed design occurs even if detailed design document
was written prior
Detailed design cannot anticipate the complete
complexity, cannot account for the feedback
Good project, Bad project
Myth: Predictions Create Predictability
We need more discipline in here, not less.
Don’t focus on putting defects into a defect tracking
system
Avoid creating defects in the first place.
Takes a highly disciplined organization to do that.
A release cycle scenario from 4 months to 6 weeks.
Myth: Optimization by Decomposition
A lean organization optimizes the whole value
stream
Organizations have a tendency to optimize
something less than a value stream (suboptimize)
Decomposition approach – optimize all individual
measurements.
Deep Customer Understanding
Mind meld between business and technical
Flow of information between market team and
development team
Provide Leadership, Empower a complete team
Existence of a champion
Governance: Assigning a Decision maker
Project model (vs) Product model
Product model fosters more collaboration
Internal: Absence of competitive pressure can weaken
the intense customer focus (core competency)
IT – Business collaboration is essential for survivability
Internal IT organizations – problem of accountability
Root cause – a good candidate “Complexity”
Prescription is simple – “Write Less Code”
Complexity
Cost of complexity – is exponential
Increasing code base
Complex array of products
Complex Organizational structures
Justify every feature
Minimum useful feature set
Don’t automate (business process) complexity
Candidate for automation should be clarified and simplified
Root Cause: No one has been conditioned to think complexity as bad.
Every line of code costs money to write and to support.
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
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 releases
Organization B – accumulating code changes for 2 weeks
before integration
Every organization usually has more work than it can possibly do.
However far more work can be done, faster and with higher quality
By 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 is the absence of waste
Queuing Theory – Little’s Law (stable systems)
Stable systems (checkout lanes)
High utilization (traffic jam)
1. Even out the arrival of work
2. Minimize the number of things in process
3. Minimize the size of things in process
4. Establish a regular cadence
5. Limit work to capacity
6. Use pull scheduling
Does your organization measure “resource utilization”?
Focus on release schedule? Or Project size?
Checkpoints
Does your organization measure “resource utilization”?
Focus on release schedule? Or Project size?
Appreciation for System
Knowledge about variation
Theory of knowledge (PDCA)
Psychology
•
•
•
•
•
Skill
Pride
Expertise
Confidence
cooperation
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.
Optimize the Whole
1. Implement lean across an entire value stream and the
complete product
2. Restructure the measurements
3. Reduce the cost of crossing boundaries
Respect People
1. Train team leaders/supervisors
2. Move responsibility and decision making to the lowest
possible level
3. Foster pride in workmanship
Deliver Fast
1. Work in small batches
2. Limit work to capacity
3. Focus on cycle time, not utilization
Defer Commitment
1. Abolish the notion that it is a good practice to start
development with a complete specification
2. Break dependencies
3. Maintain options
Create Knowledge
1. Create design-build teams
2. Maintain a culture of constant improvement
3. Teach problem-solving methods
Build Quality In
1. Synchronize
2. Automate
3. Refactor
Eliminate Waste
1. Provide market and technical leadership
2. Create nothing but value
3. Write less code
Implementing Lean Software development: From
Concept to Cash – Mary and Tom Popendieck
Publisher: Addison-Wesley Professional
The Agile Culture: Leading through Trust and
Ownership
By: Pollyanna Pixton; Paul Gibson; Niel Nickolaisen
Publisher: Addison-Wesley Professional