ThoughtWorks is an unusual company, which is why such a corporate-skeptic as myself has hung around for a decade here. An important feature of ThoughtWorks is that we take a broader view of our purpose than simply a commercial entity. Over the last couple of years we've been using a three-pillar model to describe the way we like to think of ourselves.
The model was stolen from Ben & Jerry's - the ice cream company. It says that there are three pillars to a company: Sustainable Business, Software Excellence, and Social Justice. Each pillar has its own definition of success and for the company to be successful it has to balance the aims of all three pillars. While the pillars are not fundamentally in conflict, they are often in tension - which is where the balancing comes in.
The Sustainable Business pillar is about ensuring we have a financially viable business. We've done pretty well on this one over the years, which is why we are still around. We've now weathered two recessions - and I've always considered that a company's performance in a recession is where you find out how strong it is commercially. We've also grown a lot over the last decade, from around 300 people in the US when I joined to about 1800 globally now. So kudos here to our operational management team.
Commercials aren't everything, however. A good metaphor I stole is that revenue is like oxygen - you need it in order to live but it isn't what you live for.
The Software Excellence pillar is one that in broader terms I'd call a Professional Excellence pillar. It's about doing what you do really well. For Ben & Jerry's this was about making really good ice-cream, in our case it's about being really good at delivering valuable software. This pillar is the one that resonates so much with me. It's why we work very hard at continuously improving the way we do things.
Software Excellence introduces some interesting tensions with the Sustainable Business pillar. We are difficult consultants for our clients. We come in pushing hard for significant changes in how they do software, confident that our approaches are much better. This creates a lot of turbulence with existing IT staff. I remember Trevor Mather (our CEO) contrasting ThoughtWorks with his previous experience at Accenture. He commented that ThoughtWorks did a much better job of software delivery than Accenture, but clients were much happier with Accenture than with us. One colleague likened us to a hard-driving personal trainer, which isn't always an easy relationship.
Another tension involves products. Our products division often has to deal with feature requests for things that we don't think help in delivering useful software. By not implementing them, we lose out in many check-box evaluations; but we don't want our tools to be reinforcing poor ways of working. Furthermore our Software Excellence pillar means we miss out on many revenue opportunities with third party vendors. Many consultancies gain considerable revenue with product vendors whose products require lots of consulting support but provide little value to users.
We take our Software Excellence pillar a step further in that not just do we want to be excellent in delivering software, we also want to improve the software industry as a whole. This is why so many ThoughtWorkers talk and write publicly about how we do things and what we've learned. 
The Social Justice pillar is about looking more broadly at our impact as a company - are we making the world a better place? There are those who think such a question is irrelevant for a company - a commercial enterprise is there to make money, full stop. By this test it's okay to sell whatever anyone will buy, even if it harms the customer and the broader society. I don't agree with this notion - I'm very happy to make money, but I believe that revenue should come from providing something valuable to customers and society.
For me, the Social Justice pillar isn't just about doing work for good causes, although we have been doing an increasing amount of paid and pro-bono work for such outfits. It's also about looking at our core work and asking how it benefits society. I have an expansive view of this, it's worthwhile to build software that makes a company sell useful things more efficiently. Improving the operations of the used-car market in the USA isn't as socially glamorous as helping to find children after a natural disaster, but I still think it's part of the path that's led to humanity's greater prosperity in the last couple of centuries.
There is a regular eruption of debate within ThoughtWorks about what Social Justice means for us. Everyone has their own personal set of lines they don't wish to cross but the lines aren't all drawn in the same place. We do try to honor individual concerns, such as working with clients they find problematic, even though this adds more difficulty to the already complex art of staffing.
One area that we've put a lot of focus on is diversity, an area that has been a problem area for the software profession throughout my time in it. We've made good progress in this area, particularly with the role of women, but we still have a long way to go.
When we talk about the three pillars it's common to focus on the tensions between them, but there is also a great deal of reinforcement between them. Many people join and stay at ThoughtWorks because of our attention to Social Justice. Our focus on Software Excellence has allowed us to develop a brand that made it easier to ride through the recessions. Much of our work for non-profits is done at a commercial rate. Furthermore I believe that when you look at the long-term, the pillars reinforce each other much more than they fight.
We've found this three pillar model a very effective way to think about the multiple aims that we have as a company. As we are pondering decisions it's useful to think about how a decision looks from each pillar individually as part of coming to a rounded decision. But there is more to do, particularly around assessing how we judge success on each pillar. The Sustainable Business pillar is somewhat easier, as you can track revenue flows. The challenge is coming up with similar assessments for the other pillars so we can get a more holistic view of our progress.
1: Internally we often refer to the pillars through numbers (which we used before we came up with the names): Sustainable Business is pillar 1, Software Excellence is pillar 2 and Social Justice is pillar 3. The numbers do not imply any ordering.
2: Most consulting companies do not talk about their work publicly other than for marketing purposes. The commercial calculation runs that it costs significant money in lost billing for people to do public facing work such as articles and conferences. Also it's foolish to share key techniques with competitors or potential clients who could then use these techniques without the consultancy.
3: Even this is not that easy. Too many companies assess their commercial success by looking at short-term finances, such as quarterly accounts. If you want a company to last long-term you need longer-term gauges - and those are harder to find.