Lean Principles And Software Production:
Essay by 24 • January 1, 2011 • 1,473 Words (6 Pages) • 1,252 Views
Introduction:
Lean operating system or lean principles has been implemented in countless manufacturing companies and also adapted for industries as diverse as insurance and healthcare. Lean principles were developed as Toyota production system by Toyota motor company earlier known as Toyoda. The concept behind lean principles is to produce goods using less of everything compared to mass production: less human effort, less manufacturing space, less investment in tools, and less engineering time to develop a new product. Wipro an Indian software company introduced lean principles in software development in Indian IT industry. This paper discuses in detail the implications and benefits of applying the Lean principles to software development.
Software Development:
Development is the process of transforming ideas into product and this process of transforming can be classified as either deterministic or empirical. The deterministic process starts by creating a complete product definition, and then creates a realization of that definition. The empirical process starts with a high-level product concept and then establishes well-defined feedback loops that adjust activities so as to create an optimal interpretation of the concept. The concept behind Toyota product development system or Lean manufacturing is the empirical process of development.
Any development process that deals with a changing environment should be an empirical process, because it provides the best known approach for adapting to change. Software by its very nature should be designed to adapt to change both during initial development and over its lifecycle. Thus, software development should be an empirical process and hence the principles of lean manufacturing should apply to software development.
Application of Lean Principles to software development:
Principle 1: Eliminate Waste
There is a timeline between when an order is received from a customer and when the product is delivered to the customer. As per the lean production system all the non-value added wastes are removed so as to reduce the timeline. Software development is different from operations and logistics. The first hurdle for Wipro was to identify wastes in software development before it can eliminate them. Some of the wastes in software development are:
Partially done work: In manufacturing inventory is waste because it gets lost, it grows obsolete, has quality problems and ties up money. In software development, partially done work is inventory and it has all the evils of manufacturing inventory.
Requirement churns: The first step in software development is to fully understand the requirements of the customer. Sometimes half way through software development the team realizes that this is not what the customer wants which leads to requirement churns.
Extra features: Only about 20 percent of the features and functions in typical custom software are used regularly. Something like two-thirds of the features and functions in typical custom software are rarely used. There is a huge cost to developing extra features in a software system. They add complexity to the code base that will drives up its cost, making it more and more expensive to maintain.
Principle 2: Build Quality in
When software is being developed there is bound to be defects. The normal practice was to move these defects to a defect tracking queue and later on at the test and fix cycle these defects were removed. The goal should be to build quality into the code from the start, not test it in later. The focus should not be on putting defects into a tracking system but avoid creating defects in the first place. Wipro totally eliminated the defect tracking queue and removed the defect at the development point itself. They inspected the product at every step so that defects can be identified immediately after they occur.
Principle 3: Create knowledge
Wipro evaluated two projects - good and a bad project. The good project was run by-the-book. It had an optimized design, and the resulting system was very close to the initial specification. The bad project underwent constant change as the development team struggled to understand and respond to changes in the market. Surprisingly the "good" project scored poorly in quality, productivity, and market acceptance while the "bad" project was a market success. The team that learned from the market throughout development created a better product. As a result Wipro incorporated a development process that encourages systematic learning throughout the development cycle.
They identified the following and incorporated the following four processes:
- Early release of a minimum feature set to customers for evaluation and feedback
- Daily builds and rapid feedback from integration tests
- A team and/or leader with the experience and instincts to make good decisions
- A modular architecture that supports the ability to easily add new features
Principle 4: Defer Commitment
In the process of software development there are times when the development team has to make decisions which are irreversible. While developing the early features of a system, it is necessary to avoid making decisions that will lock in a critical design decision that will be difficult to change. A software system doesn't need complete flexibility, but it does need to maintain options at the points where change is likely to occur. At Wipro irreversible decisions are scheduled for the last responsible moment. Wipro hires individuals who can not only work in a team but have wide experience in the domain and the technology and have good instincts and know where to maintain
...
...