4 August 2004
There are many reasons why I'm comfortable about working at ThoughtWorks, much of it is because most of the people here share a broad set of principles with me. One that's caused some debate over the years is our attitude to our own intellectual property - in essence we give it away.
An example of this is our approach and tools around Continuous Integration. Some felt we should keep the expertise and tooling we developed in house. Instead we've written and talked about what we've learned and put our useful tools into the open source community. To some people, particularly those with a financial background, this seemed strange behavior - certainly not what a mature consulting company would do.
I went through similar thoughts in my time as an independent consultant. Some colleagues preferred to not talk too much about their best ideas, so that they could charge clients for using them. Others would freely pass on every tip they ran into. My number one mentor in my career was Jim Odell, who has always followed the philosophy of giving ideas away. I liked how things worked out for him and thus did much the same myself. It's very much the philosophy that Jerry Weinberg follows.
Now I'm not claiming that either I or ThoughtWorks do this for altruistic reasons. We're not trying to be some kind of cyber-saint selflessly giving away our every possession. Open Intellectual Property is a principle that can be enormously rewarding.
One of the most obvious rewards is that of publicity. The best ideas in the world can't bring in piles of cash if nobody knows about them. By talking about your ideas you find people who want to hire you. Offering general ideas is valuable, but there are LimitationsOfGeneralAdvice, so people are likely to hire you to apply the general ideas to specific situations. Others may prefer the ideas packaged differently, so people will bring in someone to do training courses for material that's available in other sources.
Even if the particular ideas you talk about aren't applicable, writing about them gives others opportunity to understand your general way of thinking. As a result you can be called in on things that are peripheral to things you write about, because your writing demonstrates how you approach things.
Of course there is also the more direct way to get financial reward for letting your ideas go, by selling the expression in books and articles. However it's hard to get decent money doing this. I always tell prospective book authors that they shouldn't do it for the money. While it's not impossible to make good money from technical books, you have to be very, very lucky to do so. (For the record, I've been one of the lucky ones.)
(I say writing in all this, but I don't just mean the kind of technical prose writing that I do. I also mean writing software, particularly open-source software. We are programmers, and programs are our principal means of expression. Publishing our programs means as much, if not more, than publishing prose.)
I'm talking about rewards, but it's important to say that rewards don't have to be financial to be valuable. Being a well-respected writer is itself quite a reward. Sometimes this regard can be excessive or unwarranted, but most writers I know think of their reputation more than they do of their bank balances.
Another reward of writing is that of learning. I often write articles because I don't properly understand something and writing helps me fix it in my mind (that my main reason for writing these days.) Those who publish code often do so because they want to explore how a technology should work, either the technology they are using or the technology they are building. I think Open Source development has become an important source of research, and it's easier to think of much open source development as on-going research projects.
Much of this in individual reward, how does this work for a company like ThoughtWorks? Certainly ThoughtWorks benefits from the cumulative publicity and respect that ThoughtWorkers gain from their writing. But it also gains from having happier ThoughtWorkers. Many programmers are programmers because they love the job. Delivering software to paying clients is important, but so are the rewards they get from publishing. A company who denies the latter rewards may de-motivate or lose the most critical assets it has.