Callisto and Vista: Shipping large software projects

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?

6 Responses to Callisto and Vista: Shipping large software projects

  1. John O'Shea says:

    Oh I don’t know if Callisto qualifies in the same league at all – for one it isn’t one commercial product, nor does it have “more than 50 dependency layers”.

    Still though, it is a step in the right direction…

  2. Ryan Lowe says:

    In response to John’s comment:
    Callisto projects like Eclipse are used in many (mature) commercial products, like the IBM/Rational commercial IDEs and countless other closed-source commercial products made by ISVs. If this isn’t well known, maybe Eclipse should start bragging louder?

    In response to Ian’s original blog post:
    When you say “Eclipse community” you mean the users too, right?

    The Eclipse user community has a substantial positive impact on the process and quality of the Eclipse/Callisto products by a) keeping the Eclipse development team honest because the code and processes are transparent b) submitting enhancement ideas, bug reports and patches to an open database c) using early milestone releases, providing a large early feedback and testing team than is practical (or cost effective) for a closed source project d) being vigilent: once the product has shipped, the low communication overhead to the team allows defects to be found, reported and subsequently fixed quickly in maintenance releases.

    Without the user community doing all of those things, I doubt Eclipse would be close to the product it is today. No offense meant to the Eclipse team by that — it just would have been too much of a manpower effort to get the same end result with closed source software. Surely the Eclipse users are also a success factor.

  3. Ian Skerrett says:

    Ryan,

    Absolutely, I think the Eclipse user community has been a ley part in the success. This is what I meant by ‘process’ but your clarification gets the heart of the comment.

  4. Ryan Lowe says:

    Yeah I thought so, I just wanted to make it explicit.ūüôā It gives the Eclipse development process a considerable advantage over closed-source IDEs (like Visual Studio) and platforms…

    I made a spelling mistake in: c) using early milestone releases, providing a *largeR* early feedback and testing team than is practical (or cost effective) for a closed source project.

  5. Ian Skerrett says:

    I also realized that I made a number of spelling mistakes in my comment. I can’t seem to convice blogger to allow me to edit comments. Maybe that is a good thing….

  6. Ryan Lowe says:

    Yeah, it probably is a good thing.ūüôā

%d bloggers like this: