Software unsafe at any speed

Market pressures mean much software is rushed into use. The subsequent risks are becoming too great to accept

Cisco's voice over IP products are vulnerable to attack due to programming error. Hardly news these days, but this familiar state of affairs disguises the seriousness of the situation.

Software engineering is hard to do well. As in all human endeavours, mistakes can get in at any stage from earliest concept to final product, and the real world rarely proves as benign as the laboratory. That's no excuse for shoddy software, though: with appropriate methodologies and management, software can be reliably written and rigorously tested to a high standard. That we do not expect this is a sign that our expectations have been carefully managed by companies who have found a strong marketing message to be an effective and cheap substitute for proper engineering.

This is no longer acceptable. VoIP telephony is a very good case in point: it is cheaper and much more amenable to new services and integration than circuit-switched telephony, advantages that have given it an unanswerable advantage in the market. It will displace all other telephony at all levels, if not in five years then in ten. But that advantage has been bought, to some extent, at the price of reliability.

Even if Cisco did not foresee today's problem during design and implementation, there are types of testing that would have revealed it prior to launch. Those tests were not done, or were not done properly; the product came to market cheaper and sooner as a result.

If we do not want our future communications to be built out of components that have been selected purely on such factors, we must insist on properly engineered software. Software producers have been getting a free ride on product liability, but increasingly lives will rely on the stack in the phone just as much as they do on the leak-free fuel tank or the insulation on the power lead. This can't be signed away with a licence agreement.

Bad engineering in critical applications should result in corporate pain. If companies want their products to be used in the construction of the online world, they must accept the responsibility of making them fit for the job — and the consequences of cutting corners.