Software reuse: making it work

At DTE Energy, 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 non proprietary 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."

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

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 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.

DTE Energy saved $US75,000 last year by reusing components, Smith estimates. So far this year, four new projects have incorporated 10 components each on average, or about 40 percent 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.

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

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.

Join the newsletter!


Sign up to gain exclusive access to email subscriptions, event invitations, competitions, giveaways, and much more.

Membership is free, and your security and privacy remain protected. View our privacy policy before signing up.

Error: Please check your email address.

More about ApacheBossCutter Consortium

Show Comments