Phillip Su, a Microsoft Program Manager, has written a very interesting and frank blog about the challenges of shipping Vista. At the end he asks the question ‘Are Vista-scale software projects essentially uncontrollable by nature?’ I personally think the answer to the question is ‘no they are controllable’ and Callisto is a great example of how to do it.
Granted Callisto is not the size of Vista but it is over 7 million LOC, so it is still a substantial size project. As an observer to the Callisto process, I think there were three success factors:
1) Architecture. The Eclipse component model and the focus on api’s and extension points make it possible for teams to work independently, yet be inter-dependent.
2) Governance. Each Eclipse project is responsible for their own destiny. The individual projects decide what gets built and included in each release. There is no top-down management structure trying to add value.
3) Process. 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.
I think Callisto is a great story and answers Phillip’s question. For obvious reasons, I think that shipping large software projects is doable and Callisto is proving it. What do you think?