One the interesting aspects of the open source world,
particularly for us, is how it's proving to be a fascinating
research community. Open source projects come in many guises, but a
fair number of them are taking an idea and programming around it to
see where it goes and whether it has value. That's a notion that
sounds strange if you believe that design and programming are
separated, but makes a lot of sense if you accept that they are tied
together.

This effect has been particularly noticeable in the enterprise
java world. Much of the interesting new developments in that space
(IBatis, Hibernate, JUnit, CruiseControl, Spring, Sitemesh, Webwork,
Tapestry, ...) has come from open source developers.

Open source research fits very well at ThoughtWorks, which is why
so many ThoughtWorkers are actively working on open source
projects. It fits in with our philosophy of
OpenIntellectualProperty. We don't have the people who
are interested in writing lots of papers for academic conferences -
we tend to have people who want to build things. So the open source
world is their way of publishing. If it really catches on they turn
it into a product, usually with the help of more people. Much of
this research and development is done with non-ThoughtWorkers - and
that's fine with us. We're looking to explore and publish ideas - we
sell our day work for our clients.

One of my ambitions is to give people more time for this kind of
research. At the moment most of this goes on in people's spare
time. Since most ThoughtWorkers are in this business because they
love it this does work. But I hope that one day we can afford to
give people time during the working day to spend on this kind of R&D.

Some people criticize the open source world because of many projects that
just fade away, never making it to a real version 1. If you think of
them as R&D, then it makes sense that many, indeed most,
projects don't make it into a real product. R&D is all about
generating ideas and working with them. A successful R&D isn't
measured by what proportion of their ideas turn into products, but
rather by how many great products they generate and how great they
are. Someone who starts three projects and turns them all into
mediocre products isn't as good as someone who starts a dozen
projects and turns only one of them into a killer app.