Tuesday, February 4, 2014

Lean software development - similarities and differences with agile

Lean manufacturing strategies have been successfully implemented in a wide variety of Industries other than manufacturing industries.  Amazing examples are from Food chain restaurants such as Subway to product development in IT Industry.

Lean software overview : http://www.youtube.com/watch?v=P3A9JPb3KqQ
The seven principles of lean manufacturing can be applied to optimize the whole IT value stream. These principles are:
1.     Eliminate waste.  What’s a waste? Any activity that does not directly add value to the finished product.
Sources of waste in software development are the addition of
Unrequired features ( fancy features which is called Gold Plating : http://en.wikipedia.org/wiki/Gold_plating_(software_engineering)
Project churn and
Crossing organizational boundaries (different teams)
Development teams should be able to self-organize, change plans, quit working for a feature which is identified as not required.
Reduction of scrap and rework late in the lifecycle is also required to reduce Project churn.
2.     Build in total quality: To build quality software the testing has to be done for every features and module based. Testing along with development is the best option if we do not want to see huge number of defects during the first release. A testing team, aligned with development team can do the job in a better way. The policy is to build a feature, test it, fix any issues with it and iterate this for every feature.  It is also called test driven development.
3.     Create knowledge.  Knowledge management is critical for a products success. This can be referred to the cross-functional knowledge between teams and knowledge about what customer or stakeholders want or what kind of problems we are going to solve. This knowledge gives deeper visualization and helps to build revolutionary products.
4.      Deferring commitment: It’s probably better to start development without a complete specification on features and time because we know scope creep happens. The teams, architecture should be fliexible enough to adopt any changes.
5.     Deliver quickly.  Work load for teams should be limited based on team’s capacity. In Agile based development the team chooses which functionality to build. Here the time is fixed. In agile method teams don’t try to do more than they are capable of, but instead they self-organize and determine what they can build. This way the teams can actually show valuable deliverables and in less time shippable product can be made.
6.     Engaged people:  More productivity with a higher quality can be achieved only by an engaged work force who think critically.  Higher motivation, less control over the team can create an engaged work force which is again an idea comes from agile.

7.     Total Optimization: Scrum master or product manager should be able to view the whole picture supporting the vision. A highly sustainable and high quality product can be made by managing programs, team, multiple projects, business processes and interrelated systems, and this way the IT value stream can be improved.

Here is a video how Toyota Lean strategies are incorporated in Lean software development

Lean process goes well with agile development though there are multiple similarities and dissimilarities:

The differences are very technical. Therefore I am proving a link for the people who want to know the technical differences between agile and lean-

Lean is important for scaling agile in several ways:
1.     Lean is probably an explanation why agile works
2.     It provides techniques for identifying waste which makes agile more flexible and effective
3.     Lean offers insight into strategies for improving the software process
  1. Value stream mapping ( Find more http://www.youtube.com/watch?v=HKxL_S47yJg)

Can you think of specific types of software products where only Agile or only Lean have more chances of success?


1 comment:

  1. Great presentation this very necessary for us to be have the knowledge all about this, really appreciable blog!
    Kaizen Training


Note: Only a member of this blog may post a comment.