by Dafydd Rees
As part of the Software in Wales Conference held by ITWales on the 14th
of March 2007, two presentations were given on the subject of software methods.
The first, given by Rob Gittins of ITWales, described agile methods concentrating on the method known as "Extreme Programming". This was followed a presentation on a more formal method by Dave Jennings of Trosolwg Systems & Software, describing an approach based on the "Unified Software Development Process" customised for safety-critical work.
Both speakers described the history of software engineering methods and gave statistics about the general failure of software projects, but proposed fundamentally different approaches to address the failures and inadequacies of the software development business at large.
There are many different agile methods, but they all have the "agile manifesto" in common:
"We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
That is, while there is value in the items on the right, we value the items on the left more.
Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas
© 2001, the above authors
This declaration may be freely copied in any form, but only in its entirety through this notice."
This way of working emphasises the importance of being able to trace requirements that come from specifications, standards and legal requirements right through each stage of the development process so that we can be sure that the end product meets those requirements.
Several sophisticated software tools were mentioned that are used to keep track of these requirements and to make the work of tracing them through the development process easier. There was some mention of code generation from models of the software, and of being able to simulate the behaviour of the software using models of the system.
Both methods have their strengths and weaknesses, although I'm not certain that it did justice to either method to present them in direct conflict. For example it's perfectly possible to use extreme programming for safety-critical work. In fact, I know some professionals who do just that.
I also saw several signs of agility in the "formal" approach that was presented. The very fact that the original formal method was modified suggests some degree of adaptability, and the use of tools to ensure that changes are made in a consistent way is yet another sign that the method might be used in a way that is more change-tolerant than it might first appear.
Given the audience - developers, managers, customers, academics and students that may soon enough be developers or entrepreneurs themselves - perhaps the most interesting point raised by both talks was that of agility.
Is "agility" something that we could benefit from using in Wales? Many small companies envy and try to copy the ways of larger companies. Perhaps a "guerilla" approach that capitalises on the advantages of being small and adaptable might be a better approach. It might just prove to be the advantage that allows a small company to run rings around bigger and clumsier competitors.
Let's say from a previously unseen brief over the course of a few hours. I'm sure it'd make an exciting event for ITWales but somehow I doubt they'd ever agree on a representative problem to tackle.
Perhaps that exposes the core issue here: They're both concentrating on solving different types of problems. The "formal" method presented seemed to be concentrating on addressing the problem of tracing requirements to ensure that the product is safe whereas an unmodified implementation of XP focuses on responding to change - changes in requirements, changes in technology and changes in people.
About the Author
Dafydd Rees is a software developer specialising in object-technology and agile methods. He welcomes feedback on this article at www.dafydd.net/feedback.php, or to ITWales at editor@itwales.com.