Set Based Development, Open Source, and Distributed Revision Control

OK, so this is the blog entry that I have been trying to write all week.

Over at Toyota and Honda they design cars with an interesting model which I’ll call the “Lean Product Development” model. This is model is very different from the traditional processed used in product design, and the studies show that Lean Product Development is significantly more productive that the traditional processes. In other words Toyota and Honda can design more cars with better quality per year than their traditional counterparts, and they do it with significantly smaller design teams.

But, what the heck does this have to do with Open Source development? Well, in several important ways the open source development methodology mirrors the Lean Product Development methodology. This relationship is a huge topic, and one I can’t claim to have understood fully or to be able to cover completely today.

So for today, I’ll focus on the idea of Set Based Development. Toyota designs some specifications for interfaces between components, and then they design multiple engines, multiple transmissions, multiple alternators, etc concurrently. Then they document the various trade-offs for each of the components, and they bring them together in a series of integration events, where they refine the interfaces, and eventually select the best engine from the pool for this particular model.

This has several advantages, Toyota can work on a revolutionary hybrid engine, with almost no risk, because should the hybrid engine not work or fail to meet the design goals of the car, there is always another choice.

So, this morning Martin Pool showed of bazaar-ng, which is important because it is an example of open source set based development, and because it is an great tool for doing set based development. About a year ago, Canonical decided that they would like to have better tools for distributed revision control. They then started two projects bazaar and bazaar-ng. Bazaar was a conservative project based on incementally improving the best available tool, and Bazaar-NG was research project to see what revolutionary improvements were possible.

This is what Ubuntu Linux does all day do all the time, they have various pre-release events, where all the various packages which might be in the distribution, and if some new package isn’t cutting it they can roll back to something more stable.

For example, it turns out Bazaar-NG is now faster than Bazaar, has a better interface, is easier to extend, and is generally better. So after a lot of testing, Canonical is switching entirely over to Bazaar-NG.

I’ll write more later about why bazaar, and distributed version control, is such an important for set based development.

0 Responses to “Set Based Development, Open Source, and Distributed Revision Control”


  1. No Comments

Leave a Reply