IBM Applies Open Source Lessons to Commercial Apps

IBM is borrowing some important pages from the Open Source playbook in its pushes to re-architect its most valuable software assets, including Websphere and Tivoli.

OET speaks with Doug Heintzman, head of IBM’s Community Source program, to learn more about what Open Source approaches Big Blue finds the most valuable as they move from tightly-coupled to component-based appdev.

IBM software execs have aggressive goals in place to convert many of their core software products, including Websphere and Tivoli, from tightly-coupled offerings to a collection of integratable loosely-coupled component-based apps.

To get their software inventory to that destination, IBM managers have invoked some tried-and-true software development practices from the Open Source arena. The result: IBM’s aptly-dubbed “Community Source” Program. Doug Heintzman, director of Technical Strategy for IBM Software Group, said Community Source has been in existence for more than 2 years and now involves just over 10% of IBM’s 25,000 in-house developers, and involves more than 100 projects.

How Open Source is Helping IBM’s SOA Sea Change
Heintzman conceded that Community Source has been “like turning a big boat,” as far as getting long-time IBM programmers to update how the think about, design and do appdev. But, with the “sea change” coming from SOA and composite apps, it’s an important turn for Big Blue’s boat to make.

Community Source addresses a challenge that is really related to the bigger fact that as we need to componentized our software assets to a higher degree as SOA and web services technologies more robust,” Heintzman said. “Componentization will give us more code reuse and more flexibility in products, and let us do all that in a more timely way.”

But, to get there, Heintzman added, IBM needed to “optimize our development environment.” One target: “We needed higher degrees of transparencies between IBM development labs around the world,” he said. “The way you develop components is really very different from the way you develop an already integrated product, and so we found early on that for our components programs to work better we needed a more efficient mechanism that would give our worldwide developers a better way to collaborate. After all, these people are scattered all over the world working on bits and pieces of all sorts of [software] technology projects.”

That requirement for better worldwide transparency – and the sharing of code and ideas implicit in that visibility – led Heintzman and his staff to focus on Open Source approaches and Best Practices to community and code sharing.

“Open Source is an obvious model for how you develop in a collaborative environment, so we’ve borrowed a lot from the Open Source community — tools, processes, collaborative mechanisms and even some culture, and then we replicated those things internally for letting our labs to better work together,” Heintzman said. “And, The result is what we call today ‘Community Source.’”

The biggest difference between open Source and Community Source is the definition of “community. For now, IBM does not let outside developers into the Community Source community, nor does IBM intend to release software from Community Source out into the Open Source community. “We built Community Source to help improve our internal development efforts, so today the process is not meant to have much to do with developing Open Source software or collaborating with Open Source communities.”

Moving Away from Top-Down Development
Heintzman concedes that one of the most important benefits IBM has gotten from Open Source is an orderly way to step away from its long-time top-down approach to software development.

“A lot of our traditional development at IBM has been very top-down, Heintzman said. “We get market intelligence, then we figure out this [market] will be an important space, then we get a bunch of architects and they architect stuff and we hand that over to developers to build stuff, and they hand it to testers to test stuff and they hand it to sales guys to sell stuff,” Heintzman said. “And that has worked very well for IBM. Everything is self-contained and you can track revenue flows and service and support the software using traditional methods.”

But with SOA, the world is changing. “We need to be able to more quickly harness individual creativity, and drive high-quality bottom-up,” Heintzman said. “That bottom-up approach, we feel, will lend itself well to the approach to a component philosophy we have adopted.”

Enter the Open Source approach to community. “An Open Source has a self-organizing principal, which is almost like a beehive. There is no master architect, but instead a self-organizing principal based on simple rules that can create amazing things. And, it’s all based on the meritocracy of the community. That’s what we are tapping into,” Heintzman said.

Nest issue, in IBM Uses Open Source Playbook for Internal AppDev – Part II, Open Enterprise Trends looks at just which Open Source technologies are giving IBM the biggest bang. And, we’ll also look at how IBM is getting their appdevs to change their way of looking at enterprise projects. The list includes some of IBM’s most high-visible apps, including many modules for WebsphereMQ and Tivoli.