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.

Related Articles

Getting IoT savvy

With connected devices on the rise, it came as no surprise that IoT was a core ...

Loose threads

Timing can be tricky in embedded systems. Shortly after it touched down on the ...

Change based testing

A major cause of software bugs is inefficient and incomplete testing. This ...

Connected car MCU

STMicroelectronics is looking to make connected cars safer, more flexible, and ...

XCP protocol

Vector and Lauterbach are offering an integrated solution for ECU software ...

The changing face

A year of seismic social and political change 1968 saw anti-Vietnam war ...

Life without GitHub?

The software development platform and code sharing repository GitHub celebrates ...

Teach them to fish

Last year was dubbed the “worst ever” by the Online Trust Alliance for data ...