I am updating my original post to clarify exactly WHEN ThoughtWorkers work on OSS software. Note: I am NOT stating that we OSS ANYTHING written on clients time / dime. Changes are in bold below.
So, while on my current project in New York, I took the opportunity to connect with some associates that live in New York that I haven’t met in real life before.
So, the other week, I decided to have dinner with Mark Pollack, one of my fellow Spring.Net developers. He and I got to talking about Spring.Net, New York, development, and other typical topics ( and sometimes atypical topics…don’t ask… )
I mentioned that I was working for ThoughtWorks and he seemed excited to ask my opinion of the company, from someone who was new to the company. Since he was coming back from a conference where he got to talk to Martin Fowler for a little while ( and, in his own words, must have come across as a nut job ), he wanted to bounce some of Martin’s responses off of me.
One question he asked was about ThoughtWorks and it’s contributions to the OSS community. He said that while the amount of OSS code coming from ThoughtWorks was quite impressive, he was curious as to why it seemed that ThoughtWorks spawned projects never seemed to get finished. It seemed as though there is this flurry of activity, and then the code it turned over to the community and the community is expected to sustain the project. If, after all, ThoughtWorks was the great bastion of OSS, why was this the case? Why were / are ThoughtWorkers not given time to dedicate to working on their OSS-spawned projects?
This got me thinking about projects and what it means to be “finished”. While I put aside trying to define what “finished” meant, I told Mark that what he stated about ThoughtWorkers projects should be true of any OSS project. Without community support, a project will ( and should die ). Isn’t the lure of OSS software sort of software darwinism? The best projects & code will rise to the top and thrive, the useless ones will curl up and die. The circle of life I would expect. It seems like a very democratic way of producing software, and if ThoughtWorks came along and started to force its’ projects on the community, without the community support, that would see to kill the spirit of OSS in a way, and that’s certainly not ThoughtWorks’ focus.
As for “finishing“ OSS projects, are software projects every really finished? I have been through enough “Just add a button“ requests to know that software is a living entity.
In short, this is how I answered Marks’ concerns. Tell me if I have this right or not. I wondered if I should be answering such an important question, after only a short time with ThoughtWorks:
ThoughtWorkers are very smart people. Often times, at clients, ThoughtWorkers work after hours to refine and polish tools they might find helpful during client projects. When we feel like a tool is of some sort of use to the community, we release it as OSS. But the focus always remains on the client. No tools or software is developed for sheer OSS benefits or without some sort of value to the clients. Once a clients’ project is concluded, the business value of the OSS diminishes. As such, ThoughtWorkers are not really given dedicated time to work on OSS projects, without some sort of business value. So, either the community embraces a project or the ThoughtWorker works on the project in its own time. Regardless, ThoughtWorks as a company always focuses on business value, with OSS production a great residual.
What does everyone think? Is this a good representation of ThoughtWorks and its stance on OSS?