Sharing knowledge helps build better software
For software engineers finding and fixing “bugs” is an expensive and time-consuming affair and it’s better by far if they can be eliminated when programmes are first developed.
Working closely with international software developers BancTec, Brunel computer scientists Dr Steve Counsell and Dr Tracy Halt showed that a common software technique counter-intuitively caused more faults and another was actually beneficial even though previously there had been no hard evidence that it would be.
They first looked at the use of design patterns – which can be likened to car engines – designs that are well understood and can be easily and quickly modified for different models in a range.
Common sense would dictate modifying a basic design should reduce errors. But what the academics found is that because design patterns are so well understood they become a target for changes. And by making frequent changes more faults creep in.
However another technique - refactoring - brings substantial benefits. To extend the automotive analogy it is the software engineering equivalent of a regular service. A developer does not change what a piece of code does when refactoring but will make changes to boost its efficiency and/or improve its readability.
Detailed analysis many thousands of lines of code showed that, as expected, refactoring minimises the likelihood of faults.
Not only did the research have an immediate and dramatic effect on the work practices of the partner company but the findings have now gone industry-wide.