Lee Nackman, VP of product development for IBM's Rational tools unit, said Tuesday that IBM has built commercial code by adopting some of the democratic, open source-style practices with its developers behind the IBM firewall.
There's no intent to make the resulting code open source. But using some open-source principles in IT governance--that is, setting the decision-making structure of a project along open-source lines—tends to lead to favorable results, he said.
"It's not good governance to be counting keystrokes like the boss in (the comic strip) Dilbert," said Nackman in a keynote at the Software Development West 2006 conference in Santa Clara, Calif. It's better if the acknowledged leaders of a group become committers, reviewing code submitted by individual developers and deciding when it's ready to be incorporated into a build of the project, he said.
Nackman didn't produce code for Eclipse, the open-source development framework initiated by IBM, but he helped sponsor the move to make it open source. Eclipse started as a single workbench for the many software tools being produced inside IBM across product lines. Nackman urged that it be made open source as a host for Java tools that couldn't work together. By following Eclipse conventions on file sharing, Java and other language tools can work together when plugged into Eclipse. Nackman was a founding member of the Board of Stewards of the eclipse.org open-source project.
IBM has developed some components of its Rational tools in an open-source manner, letting the most eager and vocal advocates of a feature become its developers. One example is the drawing mechanisms that underlie Rational tools' ability to do Unified Modeling Language models or business process designs. The mechanisms are based on the same drawing software, developed collaboratively, regardless of the tool, he said.
But Nackman stopped short of saying that either IBM or its customers could afford to convert their internal software development into processes that left it up to developers whether to opt in or opt out, as in open-source projects.
How democratic can enterprise code management get? "That's a good question," Nackman said in an interview after his speech. "I can't tell people the right way to do it. But I can say the process merits experimentation."
Nackman's address was titled, "IT Governance: What It Means, Why You Should Care and How It Can Help You." Most of his remarks were directed at making the software development process less rigid and more adaptable to changes in a business.
"Developers tend to view governance as an onerous thing," Nackman said in an interview, but it merely sets the process "on how decisions get made."
An area where more concrete decisions need to be made in software development is compliance. Organizations need to set procedures to follow carefully before deploying code, such as recording test results. Knowing what modules of code have gone into a version about to be deployed is also a requirement, one that can be met with a team development tool that keeps an audit trail of who contributed what lines. IBM's Rational ClearCase is such a tool, with others offered by Microsoft and Borland Software.
Part of IT governance requires getting developers to buy into other code-enhancing procedures, such as listening to frequent feedback from the business stakeholders of the project, meeting frequent system "build" deadlines so that the project keeps moving forward, and getting versions of a system into the hands of its potential users early and often.
Nackman pictured a more competitive world in which companies with a brittle software infrastructure find themselves at a disadvantage, especially if they work along traditional lines of slow development. Long lead times to add to or change applications may soon be unacceptable, as new competitive powers rise around the world, he said.
Open-source development as practiced by the Apache Software Foundation and other groups has a concrete, merit-based governance process. Instead of a set of requirements being handed down by a boss, developers identify and opt to do the next feature needed on a system through a peer-based, collaborative process, he said in his keynote.
But the key objective is getting IT governance to do the things it must do centrally, such as set an architecture, then free up developers of individual systems to innovate within that architecture. The latter process has to be decentralized, with developers given latitude to make decisions, for a business to come up with the software it needs quickly, he said.
"Good IT governance means IT is able to respond to the changes in the world," he said.