January 07, 2009

Avoiding the high cost of bad code

Enterprises face overbudget app dev efforts that please no one. Good management is the answer.

While software development technologies continue to advance on multiple fronts, the complexity of software and its management remains a complicated, expensive problem. For instance, too many developers can become involved in a project, and those developers may not be around later to maintain the code they wrote. Plus, software requirements can change, and it can be difficult to track what, exactly, the software was supposed to do.

"The further along a project gets, the harder it is to understand what the original intent was," says Norman Guadagno, director of Microsoft's Visual Studio Team System product line for application lifecycle management.

[ An emerging key challenge facing developers is developing apps for multicore processors. Learn about the key issues in InfoWorld's "Multicore: New chips mean new challenges for developers." ]

"Developers often don't know how the entire system is supposed to [be] organized or how parts of the system should depend on other parts of the system," said Ben Chelf, CTO at Coverity, a software development management vendor.

"Absolutely, [software code maintenance is] costly," says analyst Theresa Lanowitz, founder of research firm Voke. Probably 80 percent of an IT budget is spent on maintenance rather than on new development, she says. Issues arise in areas such as code reuse, where a piece of faulty software can get used in three different projects, for example, and perpetuate an error in three different software products, she adds. Security vulnerabilities present another problem.

"In general, less than 40 percent of software projects meet the desired goals that were set out," says Scott Hebner, vice president of marketing and strategy at IBM Rational. Worse, "the cost of maintaining and operating the applications is growing [in] double digits at a time when the budgets for new application development are shrinking," he adds.

Tools help develop and maintain code
The only way to get around all these issues is to be more effective at application development and maintenance, says Hebner. Analyst Lanowitz agrees, advising IT to use tools to automate the process of finding defects, as well as to use source code maintenance tools. The need to better manage software development and maintenance is critical, she says, because today "software runs the business."

There's no one way to develop and maintain software better, and various vendors propose their own approaches to address various aspects of the problem. For example, IBM Rational offers Rational Requirements Manager to impose discipline in requirements definition in collaborative environments.

Microsoft offers Visual Studio Team System Architecture Edition to help developers understand what is going on with the code, which is often written quickly and thus suffers from poor requirements planning and documentation, Microsoft's Guadagno says. As the code is reused and revised, and as developers move on, the problem gets worse, he adds.

And Coverity offers Architecture Analyzer and Prevent to specify how components in software should interact to reduce code dependencies that can cause execution flaws, then analyze possible code execution paths to see where developers have made mistakes in code interaction.

Close

On Twitter now

Code change management

Powered by Twitter

White Paper

D2D Virtual Tape Library Replication Primer

This whitepaper explains the terminology and concepts behind Data Replication technologies and establishes some sizing rules through worked examples. Learn the new paradigm in disaster tolerance—protect data anywhere.

Download now »

White Paper

An Alternative to Virtualization for Datacenter Cost Savings

Server virtualization is a popular option for dealing with mounting datacenter costs. Another equally promising approach is the use of an Application Delivery Controller. Citrix NetScaler provides a low-cost way for organizations to reduce their server count and accrue cost savings from a reduction in space, cooling, power and personnel.

Download now »

White Paper

Why Your Firewall, VPN, and IEEE 802.11i Aren't Enough to Protect Your Network

The emergence of WLANs has created a new breed of security threats to enterprise networks.

Included in HP ProCurve WLAN solutions is security technology that alleviates threats from WLANs through:
* Monitoring wireless activity inside and out of the enterprise
* Classifying WLAN transmissions into harmful and harmless
* Preventing transmissions that pose a security threat to the enterprise network
* Locating participating devices for physical remediation

Download now »

White Paper

Bringing the Edge to the Data Center

Effectively address data protection challenges, implementing solutions that help store and protect business–critical data while cutting costs and improving efficiency and reliability.

Download now »

Sign up to receive InfoWorld Resource Alerts

Subscribe to the Developer World Newsletter

Receive a weekly roundup about the art and science of software development.

©1994-2009 Infoworld, Inc.