Research by a Canterbury University student suggests companies which reuse software components can double their productivity.
Warwick Irwin, whose research is for a Master of Computer Science, says his work should help organisations discover what the return on investment (ROI) is from reusing software components.
For some in software development, reusing software components has been a “holy grail”, he says. Irwin says despite wide acknowledgment that it’s logical - and despite object orientation (OO) being hyped as a huge advance - reuse is not happening very much.
He says his research is not a silver bullet, but should help managers manage reuse projects so they know if it’s worth the investment. Irwin believes reusing components can double a company's development productivity and those which don't will be developing at half the pace of their competition and may not survive.
Irwin says other industries reuse components and the analogy often used is that of electrical engineering. However, he says software components are far more complex, and there are cultural issues as well. While OO technically makes reuse much easier, Irwin believes the reason reuse has been slow is that a cultural and organisational change is needed.
“People who develop software expect to create the software themselves, and it’s a very big change to their mindset to go out and look through existing catalogues of software to find bits they can assemble.”
There are also economic issues. “If you reward developers by how many lines of code they write, then it’s a disadvantage for them to reuse existing code.”
Irwin began his research with the help of a Technology New Zealand Graduates in Industry Fellowship last year, which allowed him to work in the industry with Christchurch-based (US-owned) Trimble Navigation, a GPS developer.
Irwin built a model to measure what components were being reused from Trimble’s reuse library for each product, and how much that cut development time.
Working out the ROI was challenging, however. Developing reusable software costs about 50% more than non-reusable software because it has to cope with all the different combinations it will be exposed to. It also has to be tested well. “If you don't [test well] and there’s a problem in there you don't mess up just your own product, you mess up all the products that reuse it.”
Another complicating ROI factor is that reusable software does have a cost. To reuse a component, it costs about 20% of what it would cost to develop a that component from scratch. To get a pay-off the component needs to be reused a number of times. Therefore, it’s important to accurately choose which components should be made reusable.
Irwin says doing the research within the industry has fundamentally changed his work and made it a lot more difficult, but hopefully more relevant.
“A lot of people involved in this academically really don’t understand how huge real-world software developments are and how staggeringly complex they are.”
Irwin says it’s difficult to say how many companies are reusing software components at present. He says some would be cutting and pasting rather than formerly using a reuse library.