Contact Us



Thoughts on Software Development

This image is a reference to the Weblog RSS feed.

Michael Stiefel's thoughts and opinions on software development.

Send comments to

Monday, October 24, 2005

Risk Based Software Development

Agile based software development methodologies often remind me of the story about the person who jumps off a 100 story building, and passing the 45th floor yells out "No problems yet!"

Agile based software methods have many good ideas. Their critique of the waterfall method has great merit. The best documentation is the code itself. Document based solutions do not work. But it does no good to demolish one myth only to have it be replaced by another.

To imagine that because the attempt to completely design everything up front is futile, the idea that you can iterate every few weeks and wind up with an adequate design is often wrong. That might work for a project that is strongly user interface or end-user driven. I doubt it would work for designing an air traffic control system, or system software such as Microsoft's Windows Communication Foundation. These kinds of projects have strong lifecycle requirements about safety, security, performance, or scalability. Often they require individuals to acquire new areas of knowledge or expertise.

Barry Boehm's spiral model of software development is a much better approach.1 The idea behind the spiral model is that at each choice point in the software development process one assess the risk that the project could fail to meet its goals. Based on that analysis the next step is to mitigate that risk. It might mean doing a prototype, refining the requirements, or doing more testing. Some of these tasks may be done concurrently. Analyzing the results of these steps might cause the development process to backtrack. In all cases, the views of all the project stakeholders (customers, developers, marketing, etc.) are considered at each analysis point.

Given this approach, the classic view (from Boehm's original paper) looks like a spiral:



Since the spiral model is a risk driven process, some circumstances might dictate an agile methodology. Other cases would require other approaches. By making risk the focus, rather than a manifesto of principles there is a higher probability of making the correct choices.

Let risk mitigation guide your development process.

1. Boehm's original paper appeared in IEEE Computer 21(5) 61-72 in 1988. In 2000 he updated the model at the "Spiral Development: Experience, Principles, and Refinements Spiral Development Workshop".

Archives

02/29/2004 - 03/06/2004   03/14/2004 - 03/20/2004   06/13/2004 - 06/19/2004   06/27/2004 - 07/03/2004   08/08/2004 - 08/14/2004   10/31/2004 - 11/06/2004   12/12/2004 - 12/18/2004   12/19/2004 - 12/25/2004   03/06/2005 - 03/12/2005   03/27/2005 - 04/02/2005   07/31/2005 - 08/06/2005   10/23/2005 - 10/29/2005   11/13/2005 - 11/19/2005   02/05/2006 - 02/11/2006   03/12/2006 - 03/18/2006  

This page is powered by Blogger. Isn't yours?


All Content (c) 2000 - 2004 Reliable Software, Inc. All rights reserved.