Eclipse is an extensible Java-based development environment created from a basic core plus plug-ins. Using Java means that the project is cross-platform, while modularity provides the ability to draw on other plug-ins for functionality and permits a classic open source distributed development approach. Often thought of as a Java IDE (Integraded Development Environment), Eclipse can also be used as an environment for other languages like C++ and Ruby, as a framework for consolidating tools of any kind, and as a Rich Client Platform (RCP) for creating desktop or server applications.
Today, kudos are in order: this may be the largest Agile open source project delivered yet, and it has arrived on time. Its quality, of course, has yet to be tested by the masses :-) Just how big IS Callisto? Ian Skerrett, Director of Marketing with the Eclipse Foundation has posted a few statistics, including:
- Number of commiters: 262
- Number of countries where commiters reside:
- 12 - Canada, US, Finland, Turkey, China, France, Russia, Czech, India, Germany, Austria, Switzerland
- 72,000 resolved bugzilla entries
- Over 6 million lines of code
"It seems to me the Eclipse community, with leadership from the Platform team, has nailed the art of milestones and release candidates. Having the drumbeat of releases, on a predictable schedule, ensures the projects stay on track and the community can provide timely input."Mike Milinkovich, executive director of the Eclipse Foundation since 2004, said in an interview: "Doing your software development transparently has massive advantages... We use agile methods within Eclipse." This is a turnaround for Milinkovich, who originally thought Callisto risky and did not support it. He now says: "Callisto demonstrates that the open source development model is very effective in delivering a platform for software development." Note that not all open source projects use predominantly Agile practices, although in some circles the terms are used interchangeably.
It's not clear whether all of the Callisto projects used Agile practices, as they worked collaboratively but autonomously. But by way of example, the homepage of the Data Tools Platform Project does include this principle:
Agile development: We will strive to incorporate into our planning process innovations that arise once a project is underway, and the feedback from our user community on our achievements to date. We think an agile planning and development process, in which progress is incremental, near-term deliverables are focused, and long-term planning is flexible, will be the best way to achieve this.And Erich Gamma, in his JavaOne 2006 keynote, quoted the Agile Manifesto, and emphasised that "The key theme throughout our process is rhythm. That's the heartbeat of the process, and a set of practices that get us into a healthy state of mind to make continuous progress towards our milestones."
One proponent maintains that the Eclipse development process gives them a "considerable advantage over closed-source IDEs (like Visual Studio) and platforms."
Whatever they did, it seems to have worked - though it has yet to be formalized, Eclipse is considering yearly synchronized releases, so look for "Europa" about this time next year.