Something else which cropped up at the recent Certification Together International Conference in Toulouse was so-called “agile” or “extreme” programming. Here’s the idea and what it might mean for anyone interested in software certification / qualification.
The current approach to qualification usually follows the “waterfall” model. Engineers develop the tool and write a lot of documents and reports. Then they review everything and offer the tool to customers or certification authorities. The whole process, typically described as “predictive” and “plan-driven”, involves a lot of manual work and qualification is always done at the end.
Now imagine a world where programming and tool qualification are completed at the end of a “timebox”. Typically, a timebox could last anything from one day to one month. In theory this means tools can be ready at lightning speed and customers can react to changing circumstances much quicker than if they are using an inflexible tool devised over a long period of time. This is “adaptive” or “agile” tool development.
In practice the idea is controversial; small teams communicating on a face-to-face basis, without too much documentation, effectively producing software which is a work in progress, not the finished article. This flies in the face of everything we know about traditional software development.
On the other hand, using agile techniques could mean less effort when a customer asks you to take part in their overall certification process. Some of the documentation will be ready, and tests will already exist which verify the tool does what it is supposed to do. What do you think?