I sat down for a Q&A with Pat Gibney, IBM Director, Software Group Componentization to dig into IBM's Community Source development strategy. IBM has been touting the benefits of open source and for years has been delivering solutions built on open standards for maximum flexibility and extensibility in heterogeneous environments. Taking that to the next level, IBM developers are now applying a methodology borrowed from the open source community to create its own commercial software.
Called Community Source, this development model mimics the collaborative style found in the open source model, with one result being that IBM is now able to bring its commercial software to market about 30% faster. With 100 Community Source projects underway, this internal open source model has never been attempted on this scale in a commercial enterprise, for as broad a product portfolio as IBM's.
Today, more than 3,000 IBM developers are working with the community source framework. The community source approach is essential in bridging the time, skill and geographic variations among 40 IBM software development labs and disparate teams worldwide staffed by 25,000 programmers.
Q: What is Community Source?
A: Community Source is a collaborative, open-source-style development environment for shared, distributed development and testing within IBM in which we've taken lessons from the open source world and applied them in-house.
With so many developers, in different brands and product groups, spread across different time zones, Community Source is an extremely effective way for developers and business units to collaborate and contribute.
By combining the reach and speed of the open source programming model with the rigor of internal processes used in "traditional" development, IBM is able to have interconnected players across brands, divisions and time zones contribute and build code. We promote code reuse and can leverage broader IBM skills worldwide to deliver more function on potentially shorter schedules.
Q: What is different about a componentization approach to software development?
A: Componentization is thinking of software as a series of re-usable, modular components, making them more efficient for re-use in other software so that new software doesn't have to be rewritten from the ground up. Community Source has made it easier for IBM developers to create and trade Lego-like components of code that can be plucked from a library, quickly assembled and re-used later - far different from the traditional hierarchical approach.
Componentization is the way we build software - as a community, across brands and geographies. It's about collaboration, sharing our knowledge and expertise and being horizontal rather than vertical in our development. Also, by involving the potential consumers of a component more directly in its development, it is more likely to meet diverse requirements, and, consequently, be more reusable.
Q: How do you enable different teams to work together on Community Source?
A: Community Source has tools to help IBM teams collaborate (including message forums and mailing lists), tools to create and control access to source code (management repositories), and facilities for managing file releases, document management, issue tracking, and task management. It does not displace any of the development tools we use today, rather it complements what we have with stronger support for community and collaboration.
Q: How is Community Source used across IBM?
A: Community is the core attribute of the open source movement, and an organizing thought for the 25,000 IBM software developers, as well as the structure for linking IBM to the broader set of ISVs and to vertical industries. Through Community Source infrastructure and processes, the team members from various functions are able to bring together producers and consumers of reusable components together in a collaborative effort to produce results that are delivered more quickly and are more innovative and responsive to market demands.
Q: What are some IBM products that have resulted from Community Source?
A: The IBM development tools like WebSphere Studio have benefited from code produced in Community Source. Also, the WebSphere Integrated Runtime, WebSphere Application Servers, Lotus Workplace, Rational Application Developer, and WebSphere Portals have all used or utilize Community Source as part of their development cycles.
Q: Is Community Source just for new products?
A: The components that are produced are used in both current products and new products, as well as emerging technologies such as those on IBM's alphaWorks emerging technology site.
Q: What was the impetus for creating Community Source?
A: The open source world is rich with success stories about large scale reuse enabled by the collaborative efforts of the communities that develop around particular pieces of software, and associated assets. We want to enable in IBM software development that very same collaboration dynamic that exists in open source development outside of IBM.
Q: When did Community Source begin?
A: The Community Source program was officially started around August of 2002. The program originated from the IBM Internal Open Source Bazaar which was established in Jan 2000. Since 1999, alphaWorks and developerWorks have offered technology previews and an IBM open source infrastructure available for outside participation. So the concept and culture of open, collaborative development has been around IBM for quite some time.
Q: How have customers benefited from Community Source?
A: Customers benefit when IBM delivers software that meets their needs. Componentization is a strategy to help us meet their needs. Community Source is a key enabler of that strategy. So, customers benefit from improved consumability, increased speed of delivery and higher quality.
Because Community Source leads to increased awareness of reusable assets, we maximize the probability that similar capabilities needed across different product lines will be satisfied by the same shareable component. This improves horizontal integration which then improves overall consumability. It also increases speed of delivery. For any development effort, having access to the right reusable component allows for faster delivery, even if changes need to be made.
Q: How many Community Source projects exist today?
A: The target in 2004 was to have 20-25 projects in Community Source. Today there are 266 active projects, involving 3,100 of our 25,000 developers.
Q: What benefits have you seen from Community Source?Teams have found it easier to collaborate and this has led increased efficiency and faster time to market - I'd average it out to 30 percent faster. Often teams will be working on a project, and discover that someone else is Community Sourcing a component that they need, and can use - which saves them the time and effort of building something from scratch.
Q: Can partners and ISVs get involved in Community Source?
A: Community Source is our internal development environment, but we often contribute relevant projects to the open source community. Some of these components can be found in the more than 120 projects to organizations like Eclipse, Globus, Apache and SourceForge. It's like coming full circle: we've learned from the open source community - and we give back to the community. In the process, we benefit from the collaborative nature of development in the open source community and learn to make IBM development more efficient.
Thanks for taking the time to talk with us about IBM's new methodology Pat!