What it takes to deliver quality on time

In the race to introduce the very latest software developments, quality can be compromised for the sake of speed. IBM's Mark...

In the race to introduce the very latest software developments, quality can be compromised for the sake of speed. IBM's Mark Cathcart explains what his company is doing to make sure its products do exactly what is expected of them whilst still being delivered on time.

At IBM, as with many large software houses, maintaining software quality among hundreds of products is an increasingly complex task. Mark Cathcart, a member of IBM's corporate strategy team, recognises the trade-off developers face between the speed and quality of development.

This trade-off can threaten software quality. Cathcart observes that at IBM: "We need to strike a balance between developing software with no defects and an acceptable level of defects." This affects the way software is released. There is constant debate at the company over whether to ship enhancements to a product as new-version software or simply to release a patch. The problem for users, as Cathcart notes, is "it can take more than a year to roll out new software".

Today, thanks to rapid application development tools, he says, "modern software can be developed extremely quickly". What is apparent to Cathcart is that rather than simplifying the development process, such tools have enabled software developers to create far more complex applications than were possible with earlier generations of software tools and programming languages. "Testing now takes far longer than writing software," he says.

Testing therefore forms the crux of software quality. In 1986, when Cathcart was working in the IT department for a bank in New York, a tight disclosure process - where software developers had to declare their intentions - was used to minimise the risk of a software enhancement affecting other parts of the IT system.

Any software enhancement requires several levels of testing. Functional testing is used to ensure the enhancements correctly perform the tasks they have been designed for. System level testing checks if the software enhancements affect any other part of the IT system.

For IBM, the drive to improve the quality of software development began in 1992 when Big Blue said it would make a commitment to quality through its 6x quality improvement programme. "We needed a relentless approach to quality," says Cathcart. "There is no point producing software that doesn't work." The 6x quality programme led to rigorous new processes within IBM.

It was bigger than ISO 90002," says Cathcart, and involved a complete refocus on software development processes. For Cathcart, the 6x programme has led to a significant improvement of productivity in software development. "Since 1994 we have been able to deliver two releases of software per year, including two annual releases of our mainframe operating system that comprises 110 different sub-systems," he says.

Quality is driven through IBM's software design council, an organisation set up within the company to co-ordinate high-level design. With software development facilities on every continent, the council meets every six weeks, to monitor changes in software design. "Some of our operating systems represent 25 years' worth of development effort. In terms of quality, it is important that the impact of adding a new feature is thoroughly understood," says Cathcart.

Failures in software occur when design teams fail to communicate effectively, he says. "With some of our products we need to work with 15 to 20 different components, so it is important to get everyone involved at the start."

With heavy involvement in Linux and open-source development, Cathcart says IBM has been studying the way software such as Linux and Apache is in development on the Internet. "We are making a very large investment in Linux," he adds, "and we want to be compatible with open source." For Cathcart, that means establishing a central body or organisation that controls software development projects - mirroring the way Linus Torvald oversees Linux development - and letting everyone have access to the source code.

On the non-open source side of the business Cathcart says tools known as software repositories can help companies improve the quality of their source code. Software developers store source code for their applications within such repositories, allowing the same code to be used repeatedly. As bugs are fixed within this piece of code, the fixes can be propagated to any software project using it.

Read more on Software development tools