Lean Development
Introduction
• Lean software development has evolved from lean production process in the
automotive industry.
• A lean process consider the expenditure of resources for any goal other than
the creation of value for the end customer.
• A lean process intensify the resources to be wasteful and have a target for
elimination.
• Value is defined as any function or process that a customer would be willing
to pay for.
• Lean manufacturing is a management philosophy best exemplified by the
Toyota Production System (TPS).
• Toyota defined three broad types of waste: muda(waste), mura(unevenness)
and muri(unreasonable work imposed by management).
• Muri focuses on planning the process and on what work can be avoided
through design.
• Mura then focuses on how the work design is implemented and the
elimination of fluctuations in volume or quality.
• Muda then identifies the process is in operation through the fluctuation in
output.
The Seven Muda
• Transport: Having to move things that are not actually required out
of the way so as to perform the processing.
• Inventory: Raw material, work in progress and finished products
that are no longer being processed.
• Motion: People, material or equipment having to move more than is
required to perform the processing.
• Waiting: Idle time while waiting for some other production process to
be completed.
• Overproduction: Producing something before it is actually needed.
• Over Processing: Additional activities required due to poor design
or poor tools.
• Defects: The efforts involved in inspecting for defects and then fixing
it.
Lean Principles
• Eliminate Waste
• Amplify Learning
• Decide as late as possible
• Deliver as fast as possible
• Empower the team
• Build Integrity
• See the whole
Eliminate Waste
• Unnecessary code: Extra code, partially done code, abandoned
code, extra features not used by customers are waste.
• Unclear requirements: Poorly defined or imprecise
requirements.
• Inadequate Testing: Insufficient or inadequate testing can lead
to the wasted work needing to be corrected or rewritten.
• Bureaucracy: Management bureaucracy, such as unnecessary
documentation, that can hinder the rapid development of code is a waste.
• Poor communication: Delay internal communication which
can result in wasted efforts.
Amplify Learning
• Software development is a continuous learning process. It requires an
exploratory approach for problem solving and the result of this will
provide learning. The learning is also spreading over the team.
• Show and tell process can help in understanding the code and features by
showing and telling the customers. Also get the instant feedback.
• Set-based development is another technique for the learning process. It
focuses on the constraints of future solution.
Decide late
• Software development is always associated with some degree of
uncertainty. Therefore better results should be achieved by making
decisions as late as possible. Means all the available options are kept open
until decision can be made.
• Iterative approach
• Planning
• Set-based design
Deliver Fast
• Short iterations
• Just in time
Team Empowerment
• Work Out: The manager are taught how to listen to the developers, so
they can explain better what action might be taken, provide suggestion for
the improvements.
• Human resources
• Self organization
• Customer access
Build integrity
• Perceived integrity: Customer having overall understanding of
the product.
• Conceptual integrity: How well system’s separate
components will function together as a whole. It can be well understood
by considering each part of the problem and solving it at the same time.
• Architectural integrity: It is best achieved by refactoring.
Refactoring aims to keep code simple, clear and with the minimum
number of features.
• Automated integrity: In automated integrity the development
should be accompanied by a complete and automated test suite.
See the whole
It can be shown as big picture. It shows how different parts or components
work together or interact with each other during deployment of the product.

Lean Development Presentation Slides.pptx

  • 1.
  • 2.
    Introduction • Lean softwaredevelopment has evolved from lean production process in the automotive industry. • A lean process consider the expenditure of resources for any goal other than the creation of value for the end customer. • A lean process intensify the resources to be wasteful and have a target for elimination. • Value is defined as any function or process that a customer would be willing to pay for. • Lean manufacturing is a management philosophy best exemplified by the Toyota Production System (TPS). • Toyota defined three broad types of waste: muda(waste), mura(unevenness) and muri(unreasonable work imposed by management). • Muri focuses on planning the process and on what work can be avoided through design. • Mura then focuses on how the work design is implemented and the elimination of fluctuations in volume or quality. • Muda then identifies the process is in operation through the fluctuation in output.
  • 3.
    The Seven Muda •Transport: Having to move things that are not actually required out of the way so as to perform the processing. • Inventory: Raw material, work in progress and finished products that are no longer being processed. • Motion: People, material or equipment having to move more than is required to perform the processing. • Waiting: Idle time while waiting for some other production process to be completed. • Overproduction: Producing something before it is actually needed. • Over Processing: Additional activities required due to poor design or poor tools. • Defects: The efforts involved in inspecting for defects and then fixing it.
  • 4.
    Lean Principles • EliminateWaste • Amplify Learning • Decide as late as possible • Deliver as fast as possible • Empower the team • Build Integrity • See the whole
  • 5.
    Eliminate Waste • Unnecessarycode: Extra code, partially done code, abandoned code, extra features not used by customers are waste. • Unclear requirements: Poorly defined or imprecise requirements. • Inadequate Testing: Insufficient or inadequate testing can lead to the wasted work needing to be corrected or rewritten. • Bureaucracy: Management bureaucracy, such as unnecessary documentation, that can hinder the rapid development of code is a waste. • Poor communication: Delay internal communication which can result in wasted efforts.
  • 6.
    Amplify Learning • Softwaredevelopment is a continuous learning process. It requires an exploratory approach for problem solving and the result of this will provide learning. The learning is also spreading over the team. • Show and tell process can help in understanding the code and features by showing and telling the customers. Also get the instant feedback. • Set-based development is another technique for the learning process. It focuses on the constraints of future solution.
  • 7.
    Decide late • Softwaredevelopment is always associated with some degree of uncertainty. Therefore better results should be achieved by making decisions as late as possible. Means all the available options are kept open until decision can be made. • Iterative approach • Planning • Set-based design
  • 8.
    Deliver Fast • Shortiterations • Just in time
  • 9.
    Team Empowerment • WorkOut: The manager are taught how to listen to the developers, so they can explain better what action might be taken, provide suggestion for the improvements. • Human resources • Self organization • Customer access
  • 10.
    Build integrity • Perceivedintegrity: Customer having overall understanding of the product. • Conceptual integrity: How well system’s separate components will function together as a whole. It can be well understood by considering each part of the problem and solving it at the same time. • Architectural integrity: It is best achieved by refactoring. Refactoring aims to keep code simple, clear and with the minimum number of features. • Automated integrity: In automated integrity the development should be accompanied by a complete and automated test suite.
  • 11.
    See the whole Itcan be shown as big picture. It shows how different parts or components work together or interact with each other during deployment of the product.