comment on this article

Spot the difference

How software configuration management can help developers track code variations. By Dave Robertson.

What do virus writers and commercial software producers have in common? Not much, at first glance. But, in reality they share a preoccupation with rewriting and extending code into many different versions. When a virus writer produces a piece of malware, researchers find many variants appearing in a very short time.
Luckily, virus writers are notoriously bad at managing those variants. Code is often duplicated and program structure becomes unnecessarily complex. Before long, inexperienced coders ‘enhancing’ other people's viruses produce nightmarish collections of spaghetti code that are inefficient, inelegant and bug prone.
Commercial software developers must also manage many variants. Commercial pressures force developers to evolve their ideas to solve slightly different problems and to meet varying business requirements. Different versions may be needed for different operating systems, cpu types, local languages and applications. The problems they face as they try to document and manage many variants are similar but, unlike their misguided counterparts, commercial developers have to make their software work properly. They must apply discipline and rigour to the problem.
Where does variant management start? Finding a baseline – an element of the code base common to all variants – is the first step. This also lets developers infer the variant specific parts of the code. To do this, development teams need a good software configuration management (SCM) tool, but these are not created equal. Various SCM tools take different approaches to the problem and solve slightly different challenges.

Dave Robertson

Related Downloads
12609\Spot the Difference.pdf

Comment on this article

This material is protected by MA Business copyright See Terms and Conditions. One-off usage is permitted but bulk copying is not. For multiple copies contact the sales team.

What you think about this article:

Add your comments


Your comments/feedback may be edited prior to publishing. Not all entries will be published.
Please view our Terms and Conditions before leaving a comment.