Monday, March 31, 2008

Waterfall v Iterative Development - whether or not to deliver software projects on time

In 1970, Winston W. Royce has written an article in which he describes a sequential mode for the development of software, in which the development of flows, cascades-like, through the phases of needs, d & 39 analysis, design, implementation, testing and maintenance. He then explained the reason why this model can not work, and described an iterative process as a much better solution. Inexplicablement, not just the software on the lever to the concept of " case d & 39; " water, but they have even credited d & 39; Royce have suggested. A common feature of cascading projects is that they tend & 39, in & 39; failure - 18% d & 39; cancellation, 53% of delay, the excesses of descoped budgets or - worse for the large projects (Standish Group Report).
The approach, which is then used and was generally known under the name of Cascade " method based on the principle of & 39; completion in detail, each step before proceeding with the next, l & 39; optimistic assumption is that the customer knows, and to express, the detailed requirements for & 39; out that the software requirements can be implemented and predictable that the requirements do not change, only development .
Royce stressed that during the phase d & 39; attempts that occurs at the end of the development cycle, c & 39; is the first time that the system developed is to know the difference analyze. In cases in which the system & 39; n not delivered what was planned, or certain requirements were missed, then a reconfiguration & 39; n is necessary. At least the design of the system should be reviewed, in response to the presentations of the weaknesses or errors in the tests, but when the n & 39; external criteria is not met, then it must be changed (descoped) or l & ; amp;; 39; entire system must be revised. He commented & quot; Because of the development process is back to the original & 39, 39 and & n & 39; you can expect an excess of 100 % in the table and / or costs ".
Royce accepted that the sequence & 39; events is logically sound, but that the principle of completion of each step before the next begins, it is wrong. His sketch alternative proposal includes 5 steps:
1) insert program in the phase of design and & 39; analysis of the requirements of the software, while it should be on the basis of incomplete information (as it n & 39; & 39; Is no analysis), he is in a position to the non-functional requirements of this fundamental rights, the performance and volume, creating a series of restrictions on the analysis.
2) The design documentation That Phases work & 39; to a municipality, well-defined specification.
3) Are twice. The construction & 39, a pilot system, the contents of which depend on the & 39; extent and the nature of the problem criticism. C & 39; is the second version, which will be delivered to & 39; customer.
4) plan, control and monitoring Testing.
5) do to the customer & 39 ; that it is committed to the & 39; way for the development is in the process as soon as possible stage.
In jargon of modern times, this approach would be considered a risk, and the iterative.
The majority of software projects are today & 39; today to the case d & 39; water, perhaps with some adjustments, and are often accompanied by intimidation & 39; methods and standards, its complexity means sophistication: can be misleading. Characteristics of these projects include in the rule:
-The biggest problems occur during the phase & 39; integration, usually too late to deal with the timetable of the project. L & 39; tends, in fact, either a project descoping delivery to schedule a & quot; squeeze & quot; at the time for tests to try & 39; d & 39; reach exceeded dates, or a combination of all or a portion of the L-these.
& 39; trend in the construction of detailed project plans, & 39; to the end of the project, which at the earliest possible stage. These are quickly outdated and are usually under frequent and time consuming revised. This quota has implications in terms of the disruption of the & 39; team and the working hours are often morale.
-Too many & 39; optimism in the early stages in terms of quantity, which ultimately necessary to further and l & 39; inadequacy of planning further.
potential to separate the users between the provisions for the collection and delivery of the fact lapse.
and last time, but certainly not least
-L & 39; insistence of the administration, & 39, a accurate estimate of the cost, timing and the necessary resources will be before the work is starts.
THE ITERATIVE ALTERNATIVE
Royce preparation for iterative development, but you have to admit that & 39; n is not a new concept: the others scientific disciplines and d & 39 Engineering has an iterative approach for generations, if often informal. The simple reason is that if you have something new, d & 39, first the borders and the technical limitations caused by experiments & 39;, or other means, if you know what is technically viable, L & 39; examination of the draft with the customer and confirm that both technical and functional content are admissible and justified. Few of us can not remember a number of large projects in the public sector, which was at an early stage was the actual costs and ultimately cost known.
Of been consulted, and many things have changed since Royce wrote in his article in 1970. Languages for the development of software and tools, the architectural concepts, reusable components, the hardware costs and benefits, the technical sophistication of modeling - and in the development of techniques for an iterative development is relatively small (and relatively successful) community.
The share of iterative development process takes & 39; logical sequence of events, the cascade style, but he follows the life cycle several times in a single project. Each iteration through the activities of the requirements of & 39; analysis, design, coding, the & 39; integration and testing of the product and production of software quality at the end & l 39; repetition. The content of each iteration is in accordance with the risk - the new, much more difficult, and most elements are primarily built, usually by a team of the most experienced practitioners, so that the true nature of the project and its impact in terms of cost and the time to constantly & 39; study. This increases security, since the project - or, if the development of & 39; more viable, it can be stopped at an early stage and at least cost.
The actual number of repetitions for & 39; One project depends on the type of project, in particular, the share of content considered risky, but it is probably d & 39; are between 3 and 10 One important aspect is that each repetition is & quot; time-Box " - s & 39; provides for the inclusion of 4 weeks, then it is no longer up to the end of this period. L & 39; later iteration integrates all work unfinished, but with & 39; advantage of the experience in the implementation of its & 39; developments predecessor.
ITERATIVE DEVELOPMENT SUMMARY
Iterative displayed these characteristics:
more high-risk built first
change is planned accommodation, but occurs controlled
testing Pr coces and often
-time repetitions are not framed-boxed
function respond quickly, deliver often
-Deliver quality of the production of software each time
Some advantages: Early
risk of discovery and d & 39; Accommodation:-mitigation
caused the change and the rapid detection of change
-Manageable complexity
confidence from the outset repeatedly success
-Early partial product
-predictability
better progress and better quality less defects
software users needs
the best quality results and the small improvement
-process communication and regular & 39; commitment demanded
prototyping and feedback process encouraged
A widespread, based on the iterative approach is IBM Rational Unified Process , known RUP but often misapplied.
Winston Royce original l & 39; article can in pdf format from the University of Maryland & 39; website: http://www.cs. umd. edu/class/spring2003 / Cmsc838p/Process/waterfall.pdf.
Acknowledgments & quot; manage the development of the software system & quot;, Dr. Winston W. Royce, the University of Maryland & 39;; CHAOS population and project Resolution 2004, Standish Group.
Copyright FCSL 2006. All rights reserved. Http: / / www.fcslTech.com
Reprint rights This article can be freely disseminated or published in its entirety, and not have the name of the author & 39;, copyright and the rights of the owner & 39 ; author Web showed Above.
About l & 39; Author Mike Bianchi has 30 years of experience in & 39; software development, response to almost every role as chief developer of the leadership, and has helped some of the largest organizations d & 39; improve their processes for software development. A consultant principal FCSL since 1996, he can MikeBianchi@fcslTech.com FCSL or through our website, http://www.fcslTech.com. marvel echo



Bookmark it: del.icio.usdigg.comreddit.comnetvouz.comgoogle.comyahoo.comtechnorati.comfurl.netbloglines.comsocialdust.comma.gnolia.comnewsvine.comslashdot.orgsimpy.com

No comments: