Lean management and manufacturing practices are driven by the necessity and willing to create an approach, which allows reducing waste on various stages of production. Lean theory is a philosophy based on significant time reduction in the customized process started from client’s request and accomplished at the time of delivery. Lean strategy consists from continuing improvements made in established operational process within special state of mind that allows fulfilling customers’ demands in short period of time and with moderate percentage of waste.
Lean organizational methodology is differentiated by its ability to create a model of learning organization with manufacturing methods completely built in accordance with customers’ requests. Understanding of Lean Lean approach is an actual topic in software development since the beginning of the 21st century. Lean oriented production has emerged on the market just after World War II. The set of organizational improvements were developed by Toyota Motors Company in order to enhance the company productivity and survive on post war Japanese market.
Lean methodology is also well known as a Toyota Production System, which includes just in time production concept, smoothed attitude to production, usage of Kanban production control system, the principals of reduced set up time, dedicated approach to quality control along with developed quality circles (Ambler, Kroll, 2007). The core idea of lean methodology is included in Japanese view of productivity. Every cost that might involve the additional waste in production process should be excluded. This means that every component of production, which doesn’t bring the additional value to the end product, should be reduced.
While the reduction system dictated by lean practices is concerned with overproduction, waiting, processing, inventory, defects and corrections; its basic principles took their foundation in agility manifests. Emerging of Agile principals at the beginning of 1990s became a revolution of methods and industrial approaches for Western management of enterprises. All traditional principles were criticized and forgotten. At the same time all management faults were prescribed to waterfall method in software development particularly as the reason caused management failures.
Non-agility became a label for almost all previously written software engineering methodology. Almost all the works written previously on iterative and incremental development including people oriented approach presented by Jerry Weinberg in 1969 were ignored. The main statement of Agile approach has underlined the perfection as main criteria for software development process improvement. “Good enough” was not rated as good anymore. Later in 1991 the Capability Maturity Model (CMM) with its 5 levels of differentiations was published (Agile Alliance, 2001).
The main idea of CMM process is the link between project success and process maturity. All the processes built in company should be repeatable and predictable. The organization has to be mature enough to be able to define the process. At this level the organization is ready to deliver the planned outcome and reach the desired level of success in project oriented activity. Accuracy of estimates gives the opportunity to build predictable and repeatable process in such project oriented environment as software engineering.
Willing to reach perfection in eliminating uncertainty and breakage in development chain involves many additional methods and approaches designed to fulfill the gap in informational analysis. Pursuing the perfection of end results many additional documents, which predicted the code writing were created. Mostly they were diagrams created with tools like Visio and only later in 1997 the UML diagrams came in use. They have already synchronization with written code. At that time software engineering over came the balance in relationship between additional efforts spent on analysis and overall benefit from business activity.