Business Services Industry
Lean object-oriented software development
SAM Advanced Management Journal, Spring, 2004 by Jack Cook, Victoria Semouchtchak
Software failures can be dramatic, expensive, and catastrophic. The London Stock Exchange was developed eleven years late and 13,200% over budget (Corr 2002). A catastrophic software failure in February 1998 interrupted the New York Mercantile Exchange and phone service in several East Coast cities (NIST 2002). All industries need software development process improvement. Of 800 business technology managers responding to an Information Week survey, 97% reported problems with software bugs in the past year and nine out of 10 reported higher costs, lost revenue, or both as a result (Hayes 2002, p. 40). A study commissioned by the Department of Commerce's National Institute of Standards and Technology (NIST) estimated that software bugs cost the U.S. economy $59.5 billion annually, or approximately 0.6% of the gross domestic product (NIST 2002). Organizations are so dependent on software for virtually every aspect of business that any failure carries the threat of irreparable harm, especially for systems that operate around the clock (Hayes 2002). Development, production, distribution and after-sales support of products and services all depend on software.
Software systems should satisfy customer requirements at the agreed cost within the established timeframe. However, it is very difficult to estimate the cost and time needed to develop new and increasingly complex software applications. Hence, poorly understood projects are consistently late and over budget. The Standish Group (Corr 2002) found that 31% of all software development projects are cancelled due to defects. The average cost for "failed" projects is 189% of the original estimate, almost double what was budgeted. Average time for software development projects is even more than double the original estimate. Finally, an average project delivers only 61% of the specified functions and requirements. Only 16% of software development projects are successful. Process throughput times and the quality of finished goods would be unacceptable if manufacturing performed this poorly.
Software sales in the U.S. exceed $180 billion annually, supported by approximately 1.3 million software engineers and computer programmers (NIST 2002). Due to the difficulties of monitoring progress, defining the problem as well as alternative solutions, the degree of precision required, and the rapid pace of technological advances, many software developers have accepted that projects will be late and over budget. But software is more than code. It has a life cycle similar to manufactured products. Maintenance costs for software often exceed 60% of the total cost. Imagine the nightmare if cars were not designed to be maintained over the life of the product. Software is no different.
The high demand for software, shortage of skilled developers, limited financial resources, and the need for quality systems, requires the software development process be re-examined. Current economic conditions and increased competition make the case for change. Increased IT outsourcing will force developers to reconsider how they create systems. Better tools and management techniques can help if they reduce complexity and support the software project throughout its entire life cycle. Applying lean manufacturing techniques to software development is one alternative. The transformation of object-oriented software development (OOSD) from traditional to lean using techniques and examples from lean manufacturing is innovative and challenging.
OOSD clearly has parallels to manufacturing, and these similarities facilitate the application of lean techniques. Lean thinking is not a quick fix for software quality. The journey is long and difficult and may not suit every company. This paper explains major lean techniques and their successful application to software development. It is aimed at decision-makers who initiate software development projects, the users assigned to assist developers, and the project leaders charged with the task of developing systems. The introductory sections discuss basic lean techniques, their benefits, and requirements. Subsequently, the need for lean thinking in the current software development environment is established. Finally, preliminary steps and recommendations for implementing lean procedures in application development are provided.
Lean Manufacturing techniques
The four principle concepts of lean are eliminate waste, standardize work, produce zero defects, and institute one-piece flow (Piszczalski 2000). The APICS online dictionary (apics.org) defines "lean" as a
philosophy of production that emphasizes the minimization of the amount of all the resources (including time) used in the various activities of the enterprise. It involves identifying and eliminating nonvalue-adding activities in design, production, supply chain management, and dealing with the customers. Lean producers employ teams of multi-skilled workers at all levels of the organization and use highly flexible, increasingly automated machines to produce volumes of products in potentially enormous variety. It contains a set of principles and practices to reduce cost through the relentless removal of waste and through the simplification of all manufacturing and support processes.
Most Recent Business Articles
- Multiple criteria evaluation and optimization of transportation systems
- Multi-criteria analysis procedure for sustainable mobility evaluation in urban areas
- A two-leveled multi-objective symbiotic evolutionary algorithm for the hub and spoke location problem
- Multi-criteria analysis for evaluating the impacts of intelligent speed adaptation
- The development of Taiwan arterial traffic-adaptive signal control system and its field test: a Taiwan experience
Most Recent Business Publications
Most Popular Business Articles
- FAS 109: a primer for non-accountants - Financial Accounting Standards Board's "Statement 109: Accounting for Income Taxes"
- LIFO vs. FIFO: a return to the basics
- Too Young to Rent a Car? - 25-years-old the minimum age for car renting - Brief Article
- Design a commission plan that drives sales - Sales Commissions
- Using object-oriented analysis and design over traditional structured analysis and design


