Academic journal article SAM Advanced Management Journal

Lean Object-Oriented Software Development

Academic journal article SAM Advanced Management Journal

Lean Object-Oriented Software Development

Article excerpt

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. …

Search by... Author
Show... All Results Primary Sources Peer-reviewed

Oops!

An unknown error has occurred. Please click the button below to reload the page. If the problem persists, please try again in a little while.