Agile and Formal software methodologies

by Dafydd Rees

image of binary codeAs 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.


Extreme Programming and "Agile Methods"

The agile methods talk focused on extreme programming or "XP". Although several different agile methods were mentioned there was little discussion of the differences and similarities between them. It wasn't obvious for example that the SCRUM agile method has more to do with managing teams of people and can be implemented fairly quickly whereas XP provides much more support for the technical concerns of programmers but can take many months to introduce properly.

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."


A more "formal" method

The formal method presented was the "Unified Software Development Process" or "USDP", and the talk concentrated on a customisation of USDP for safety-critical work for medical devices.

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.


Some conclusions

While there are interesting stories to be told with both methods, about teams, customers and things that happened along the way that would illustrate the ideas behind each method, both presenters chose to take a purely academic approach to their subjects. Real-world illustrative examples were notable by their absence from both talks.

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.


An "extreme challenge"

At one point Dave Jennings mentioned that he could be as agile with his "formal" method as Rob Gittins could do with XP. It's tempting to imagine what would happen if both presenters took up the challenge of developing some system.

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.


Menu: Home, Services, Events, Features, Interviews, Profiles, Reviews, News, Resources, Press