Software Reuse: Making It Work

DTE Energy may have cracked the cultural side of reusable software.

At DTE Energy Co., lone wolves need not apply. "Lone-wolf developers" is actually what Lynne Ellyn calls them, and she says they are the reason so many companies fail at software reuse. Ellyn, a senior vice president and CIO at DTE Energy, claims that her company has found a better way -- one that marries the principles of open-source software with keen insights into how people learn and what motivates them.

Ellyn says the Detroit-based diversified energy company has set up an internal "open-source" software operation. Developers across the $7 billion company add their creations to a reuse library and take needed components from it. Sometimes they put the components back after improving them. The spirit of the program borrows heavily from the external open-source movement that's behind the Linux operating system, the Apache Web server and other popular pieces of nonproprietary software.

DTE Energy has focused on the concept of "meritocracy," one of the underpinnings of the open-source movement, according to Ellyn. Meritocracy has two basic tenets at the company: First, items submitted for inclusion in the reuse library must be reviewed and judged to be of high quality, or they won't be accepted. Second, the people whose submissions are accepted are held in high esteem by the development communities of which they are a part.

This spirit of meritocracy, and the sense of community that goes with it, are the missing ingredients in most failed software-reuse efforts, Ellyn says.

The review and approval function at DTE Energy is performed by a panel of five senior developers. "They are all pretty universally admired within the organization for their excellence in software development," Ellyn says, "so they have some stature with our community."

Some of the components included in the reuse library have been volunteered by programmers who developed them for a project and saw the possibility for broader use. In other cases, a development team has been commissioned by the review panel to develop something specifically for reuse. The panel reviews requirements at the beginning of all projects, looking for reuse opportunities.

"Either way," Ellyn says, "[the component] still has to be judged, and the process of acceptance is one of recognizing the excellence in people. The dynamic is around public recognition of merit, and that's very energizing."

Separate Code

DTE Energy's software-reuse program is based on the notion of shared services, in which various functions common to multiple applications -- such as security, logging, lookup or configuration -- are carved off as separate code (usually Java) that can be invoked as services by new applications as they are built.

Developers meet quarterly and sometimes more often to discuss ideas, problems and best practices. And meetings of "development communities," as for Java, happen once a month, says Phillip Smith, one of the five technical architects on the review panel. "Supervisors don't own our meetings; the practitioners own them," he says. "So it's not your boss disseminating things; it's a peer-to-peer type of communication."

People who have earned industry certifications, such as for J2EE, are recognized at these meetings, as are those who have contributed to the reuse repository. "We say, 'This person has done great work. Let's applaud that,' " Smith says.

Developers also extensively use internal mailing lists and discussion groups. Some of the 15 or so lists are devoted to specialized groups, while others include all 400 developers, Smith says. "Someone will send out a question like, 'I'm struggling trying to get this inserted in the database. Has anyone out there come across this problem?' Regardless of the solution, it's owned by the whole group. Everything is focused on community," Smith says. Project teams are "cross-pollinated" with developers from different Michigan offices and with people of varying levels of ability, he says.

No Hierarchy

Although contributors are publicly recognized, the company takes pains not to establish a hierarchy of developers. "We try to steer away from status, because status just divides people," Smith says. "We definitely applaud [reuse] and celebrate it, but it's not like, 'Oh, this person has submitted three components, and this other person has only submitted two.' "

DTE Energy saved $75,000 last year by reusing components, estimates Smith. So far this year, four new projects have incorporated 10 components each on average, or about 40% of their total application code.

Without the kind of cultural support DTE provides, reuse is likely to succumb to any number of technical pitfalls, says Tom Welsh, an analyst at Cutter Consortium in Arlington, Mass.

"DTE is going in the right direction. Reuse is a corporate team business and cannot usually be undertaken by individuals or even small groups," says Welsh.

Vamsi Dantulari is a Java programmer working on a voice-response development project at DTE Energy. She says the project has used four source-code components from the reuse library. Some of them would have taken weeks of development effort had she coded them from scratch, she says.

Dantulari hasn't yet contributed a component to the reuse library, but she did contribute to the development community recently by helping to set up a Java training program. "Two years back, not many people knew about me," she notes. "But I got a lot of recognition for that."

Copyright © 2005 IDG Communications, Inc.

7 inconvenient truths about the hybrid work trend
Shop Tech Products at Amazon