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.
 

BNET TalkbackShare your ideas and expertise on this topic

Please add your comment:

  1. You are currently: a Guest |
  2.  

Basic HTML tags that work in comments are: bold (<b></b>), italic (<i></i>), underline (<u></u>), and hyperlink (<a href></a)

advertisement
advertisement
  • Click Here
  • Click Here
  • Click Here
advertisement

Content provided in partnership with Thompson Gale