Analytics and ROIThe Black Art of Reusing SoftwareBy 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 “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 “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 Build a culture around software reuse “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. |
ADVERTISEMENT Related ContentFast Fact
"It doesn’t make sense to reuse everything. Pick and choose. Be very careful." Podcast Audio ContentCIO Strategy Center is now available in audio format. This week's feature topic is: Preparing for a DisasterPlaytime: 8 min 07 sec |