Software Is New Product Development

Consider building mobile phones on an assembly line: It is possible to unambiguously define the specifications and construction steps. After building some phones and measuring things, it is possible to reliably estimate and schedule the building of future phones.

A different problem: Build a custom house. The owner wants to use new environmentally friendly materials and methods, but isn't exactly sure what they want, and is going to change or clarify their decisions as they see the house, costs, and weeks unfold.

At one end of the spectrum, such as manufacturing phones, there are problems with low degrees of novelty or change, and high rates of repeated identical or near-identical creation mass manufacturing or predictable manufacturing.

At the other end, there are problems with high degrees of novelty, creativity, and change, and no previous identical cases from which to derive estimates or schedules. This is the realm of new product development or inventive projects.

The development process, management values, planning and estimation models appropriately associated with these two domains are different (Table 1.1).

Table 1.1. predictable vs. inventive projects

Predictable Manufacturing

New Product Development

It is possible to first complete specifications, and then build.

Rarely possible to create up-front unchanging and detailed specs.

Near the start, one can reliably estimate effort and cost.

Near the beginning, it is not possible. As empirical data emerge, it becomes increasingly possible to plan and estimate.

It is possible to identify, define, schedule, and order all the detailed activities.

Near the beginning, it is not possible. Adaptive steps driven by build feedback cycles are required.

Adaptation to unpredictable change is not the norm, and change-rates are relatively low.

Creative adaptation to unpredictable change is the norm. Change rates are high.

Of course, the point is,

Most software is not a predictable or mass manufacturing problem. Software development is new product development.

Plus, many projects use new and buggy technologies that exacerbate the degree of novelty and unpredictability. Note also it is a new product for the inexperienced even if it has been done before.

Since predictable manufacturing is the wrong paradigm for software, practices and values rooted in it are not helpful.

This mismatch lies at the heart of many of the challenges associated with traditional approaches to running a software project.

A "waterfall" lifecycle, big up-front specifications, estimates, and speculative plans applicable to predictable manufacturing have been misapplied to software projects, a domain of inventive, high-change, high-novelty work.

Factors [CP86] preventing reliable up-front specifications include:

  • The clients or users are not sure what they want.

  • They have difficulty stating all they want and know.

  • Many details of what they want will only be revealed during development.

  • The details are overwhelmingly complex for people.

  • As they see the product develop, they change their minds.

  • External forces (such as a competitor's product or service) lead to changes or enhancements in requests.

This deep appreciation that building software is complex, new product development with high change rates, and not predictable manufacturing is at the heart of the motivation for agile and iterative methods.

Certainly, another driving force is the desire to compete and win. Iterative and agile methods foster flexibility and maneuverability a competitive advantage. In Agile Competitors and Virtual Organizations [GNP97] the authors examine the limitations of the mass manufacturing model and the need for agility:

Agility […] is about succeeding and about winning: about succeeding in emerging competitive arenas, and about winning profits, market share, and customers in the very center of the competitive storms many companies now fear.



Agile and Iterative Development (Agile Software Development Serie. A Manager's Guide2003)
Agile and Iterative Development (Agile Software Development Serie. A Manager's Guide2003)
ISBN: N/A
EAN: N/A
Year: 2004
Pages: 156

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net