Businesses are spending more money on software development as the complexity of applications increases. But as the economy plunges into recession, IT directors will find it increasingly difficult to retain a programming team capable of sustaining complex internal application development. Users need to focus on improving the quality of software development to tackle escalating costs, warns Melinda-Carol Ballou, an analyst at IDC.
An IDC survey of 149 IT departments found that 63% of users were running software development projects that were more complex now than in the past two years. Complexity has been rising due to the growth in service oriented architectures and multicore hardware, which can complicate software development and the increasing use of open source, which involves greater collaboration and co-ordination among software developers.
Downtime arising from poorly tested software is expensive. In one example from the study, IDC estimates the average cost of fixing a defect in a production system at £1,093, assuming it takes 30 man-hours to find and repair the bug.
Assuming a 40-hour work week, IDC estimates the annual cost of debugging ranges from £2.8m for a business with 100 developers to £12m, in a company with over 400 developers.
The survey respondents placed security, quality, code integrity and business relevance as the most important factors on which to focus software development. However 72% of the people asked told IDC that the software debugging processes used to improve the quality of their application was flawed. A large number of IT departments (59%) checked source code manually for errors.
However, Ballou recommends that businesses use static analysis tools, which allow developers to analyse their code automatically. Such tools do not require the coding team to build complex test suites to check application software. "Static analysis tools let developers test incomplete code. Different types of quality defects can be identified."
Daniel Dresner, the National Computing Centre's information assurance analyst, believes that in modern software development there is now less tolerance for errors. He says the common errors businesses face include poorly stated objectives and requirements. IT managers need to ensure correctly defined requirements will be carried through the lifecycle of the software. "The lack of understanding of how to assure software quality is actually preventing the uptake of good practices. There seems to be a lack of awareness of how to take up risk mitigating measures as part of day-to-day software development activities."
In Dresner's experience, programmers still have the mentality of, "Let's cut code first," and testing is put off to another day.
The challenge for IT directors is how to maintain high quality software development practices during the difficult trading conditions businesses are now facing.
IDC's Ballou recommends IT managers use automated software tools. She says these can greatly improve the task of checking for code defects, design flaws, and vulnerabilities in a software development project. However, it is vital this testing is conducted extremely early in the application development life cycle, to reduce the risk of avoidable errors finding their way into the production system, which can be costly to repair.