Regulatory Resource   Threat Intelligence      Resilient IT      Boardroom Strategies      
Resilient IT / Analytics and ROI

The Black Art of Reusing Software

By Jodi Mardesich

As computing power and network bandwidth increase exponentially, the most labor-intensive and costly aspects of putting these technologies to use are in software design. One of the ways to circumvent designing new software each time you want to develop a new application is to reuse existing programs or their components -- language, structure, programming models or processes. Software reuse is an art form that involves a bit of software development magic, but it can save organizations money in the end.

Software reuse has been a Holy Grail for decades. From the days of reusing libraries and subroutines; to reusing objects, components and frameworks; to today, with the reuse of shared services, many developers are embracing reuse because it promises to save money, produce results more quickly and improve the quality of software. Still, at a recent IT conference, attendees were divided about 50-50 in their views of reuse, says Mike Gualtieri, senior analyst at Forrester.

“There were two types of responses: One, professionals who were fans of software asset reuse because it worked at their company, and two, skeptics who have seen the promise unrealized after much effort,” Gualtieri says.

Some roadblocks to successful software reuse include developer pride. They believe they can write better code than anyone else. There are few incentives from IT organizations to tackle reuse. And there currently is no way in many organizations to monitor or measure the benefits of software reuse.

“These and other factors have led to a perennial failure for reuse initiatives to live up to expectations and hype, giving many such initiatives a bad name,” Gualtieri says.

Still, other forces are making reuse more common.  The “view source” option in Web applications gives developers inspiration or ideas on how to proceed.

More important, however, is the popularity of open source software. IT organizations are “using open source like crazy,” Gualtieri says. “They’re Googling, finding stuff and downloading it.”

Often, the CIO doesn’t even realize the extent of software reuse. Gualtieri advises CIOs to use tools like Transact, from Black Duck Software, which scans the software in a company and finds the open source code being used, so that CIOs know what is actually happening in their development environments.

How can a CIO influence department heads that recycling code is the best way to go? A new report suggests a series of best practices, including getting support from business leaders, establishing organization-wide processes for reuse, encouraging design for reuse and building a culture around the concept of reusing software.

Get support from business leaders
To gain support for software reuse in an organization, it helps to make a business case. Explain the business benefits of reusing code, components or services. Don’t advocate reuse for the sake of reuse.  

“It doesn’t make sense to reuse everything,” Gualtieri says. “Pick and choose. Be very careful.”

CIOs should ask: How much is it going to cost to make this code reusable? How many times will this code be reused? However, the business case isn’t always in cost savings, Gualtieri says.

“What businesses want even more than cost savings is agility -- time to market, to get projects done quicker and to respond to customer demand and competitive pressure quicker,” he says. “One way to do that is to reuse software that has already been created.”

By reusing code or other assets, how much more quickly will you be able to finish a project?

Establish processes for reuse
To improve the chance of success of a reuse project, make sure the tools are in place for developers.

“Establish a catalog of reusable assets that enables application development professionals, including business analysts, architects and developers, to easily find relevant assets,” Gualtieri advises.

Also, take advantage of regular architecture reviews to pinpoint areas of reuse, and set up a process for managing change and releasing new versions of reusable software assets, he says.

Encourage design for reuse
Taking a step back and looking for how software can be designed for reuse helps an organization shift the focus from lower-level technology processes to higher-level business processes, Gualtieri says. Business units and other groups often will find common needs that can be addressed by designing for sharing. Perhaps look for a standard platform or framework -- such as Java -- but take care not to let standardization inhibit creativity, he says.

Build a culture around software reuse
Setting up processes for reuse and encouraging design for reuse will help, but the best way to embrace reuse is to create a culture that takes it to heart, he says. Create a reuse leader, someone who is empowered to drive initiatives. Start with an architecture road map, Gualtieri advises. Get developers involved so that they have a sense of ownership and pride in their efforts. And finally, encourage staff to think of other methods of reuse. Code is one area, but there are other types of reusable artifacts, including use cases, design patterns and templates.

“Everyone in the organization should seek out new and innovative ways to introduce reuse,” he says. “Leaders should encourage this behavior.”

While software reuse can be challenging, it is becoming a more attractive strategy, especially as the service-oriented architecture (SOA) gains prominence.  While the group of IT professionals Gualtieri polled was divided on the benefits of software reuse, they saw eye to eye when asked about service-oriented architecture.

“Both agreed that SOA changes the game,” he says. 

As SOA gains traction in corporations, look for reusable services as well as software code to save time and money, get applications to market more quickly and improve the quality of software.

 

Jodi Mardesich writes about business and technology. Her writing has appeared in The New York Times, Fortune, San Jose Mercury News, The Advocate, Salon, and Slate.

IT Strategy Center is a daily editorial resource offering innovative insights and strategies for building an integrated, secure and resilient IT infrastructure.

Articles by Topic
Network and Infrastructure
Analytics and ROI
Strategies
Related Content
Fast Fact

"It doesn’t make sense to reuse everything. Pick and choose. Be very careful."
--Mike Gualtieri, senior analyst, Forrester

Sponsor Tools
Podcast Audio Content

CIO Strategy Center is now available in audio format.

This week's feature topic is:


Risks of Wireless Email
Playtime: 8 min 23 sec



Download | Subscribe