In this week's column, Jeff Patton sends a reminder that software developers who neglect the practices of "iteration" and "incremental" will get caught either delivering poor quality software or delaying schedules in order to make time to iterate. We kick ourselves, or others, for not "getting [software] right up front" when we all know that the hardest part of software development is figuring out what to build. But there's hope, and it comes in the form of prototypes and frequent iterations.
Despite the fact that iterative approaches to software development are increasingly used, most of the people paying for IT software developmet have an expectation that we should be able to tell them—before coding starts—"what's it going to do, what's it going to cost, and when's it going to be ready?" This article exlains why that's an unattainable expectation and corrects the misleading "product-lifecycle-model" for estimating.
Adaptive Software Development (ASD) is targeted for software teams where competition creates extreme pressure on the delivery process. Many process improvement techniques (CMM, ISO) are focused on optimizing practices that involve steadily increasing rigor. In contrast, ASD emphasizes producing high-value results based on rapid adaptation to both external and internal events. Listen as Jim Highsmith explains how the focal point of ASD is fundamentally different from traditional software process improvement approaches. Learn why "a little bit less than just enough" is ASD's guideline for implementing rigor.
This paper describes how an iterative software development process has been adopted in RAFAEL, based on the Unified Software Development Process (USDP) introduced by Rational Inc. The paper identifies the core differences between iterative and waterfall software development, addresses the possible difficulties in applying the iterative
process and details the elements of an iterative software development process tailored to RAFAEL, in view of its activities, work products, reviews and other terminology
The Rational Unified Process (RUP) advocates an iterative or spiral approach to the software development lifecycle, as this approach has again and again proven to be superior to the waterfall approach in many respects. But do not believe for one second that the many benefits an iterative lifecycle provides come for free. Iterative development is not a magic wand that when waved solves all possible problems or difficulties in software development. Projects are not easier to set up, to plan, or to control just because they are iterative. The project manager will actually have a more challenging task, especially during his or her first iterative project, and most certainly during the early iterations of that project, when risks are high and early failure possible.