Why I Work At ThoughtWorks (and why you should too…)

Alas, we enter a new year, a time at which many people start thinking about opportunities. This was a place I found myself, three years ago today, when I made the decision that I wanted to work for ThoughtWorks. Three years, four countries, and several really great clients later, I still feel as good about ThoughtWorks as the day I made that fateful decision. This posts outlines why I am here, why I stay, and why you should consider a future here as well. I should make sure to say here, as always, these views are mine, and do not necessarily represent that of the company.

Reason #1: Lack of an “adult/child” dynamic between sales and delivery that is common at many firms

In many companies, particularly consulting companies, salespeople call the shots, have most of the respect, and take home most of the rewards. Delivery – the “programmers”, are the people who are to be managed, paid as little as possible, and controlled by management. You see this commonly in pay structures, you see this in who is listened to when it is time to try a new idea (i.e. think agile before it was popular), and you see this in who makes up the management of the company. Bluntly, what you tend to see in most consulting companies is that former salespeople make up most of the management – which helps contribute to this effect.

At ThoughtWorks, in my experience, the relationship between demand generation and supply is much more balanced. It isn’t always perfect – sometimes we may go too far to the delivery end of the spectrum here, to the chagrin of our demand generation people – but it is much better than the status quo most places, where salespeople are considered “the adults in the room”, with “resources” (aka delivery) to be managed. It has a much more egalitarian feel – which feeds into a greater sense of career satisfaction and engagement. It is not a mistake that this greater sense of engagement, frankly, is a driver of our growth.

Reason #2: We have a purpose

In most companies, consulting or no, the sole purpose of profit is to enrich shareholders. At ThoughtWorks, we have a greater purpose. When we say we want to change the world and make it a better place, we mean it. As a firm, we invest our energy, our time, and significant resources towards projects that serve the cause of social justice.

Why does this matter? I don’t know about you, but the idea that the profits that I help create for this company make the world a better place is a lot more compelling to me than the alternative, which is usually helping some rich dude buy a slightly larger yacht. It makes me more engaged in my work than I would otherwise be. And I can’t speak for everyone at ThoughtWorks, but this is true for scores of others as well.

Ironically, it is this greater engagement that increases our financial returns. Companies that lack this purpose driven engagement often have to use extrinsic means (usually cash) in order to try to achieve the same level of commitment. Because our people are more engaged, they are more likely to go above and beyond for our clients. This, in turn, drives greater financial success, greater technical innovation, and greater ability to do social impact work – starting the cycle anew. While ThoughtWorks isn’t Consultopia, a concept I described in my book about consulting, it is likely the closest company among large technology consulting companies you will find.

Reason #3 – We are truly transnational

For me, one of the chief reasons I joined ThoughtWorks was that I wanted to work for a truly global company that was global for the right reasons. There are many companies that seek to open offices in India or other offshore locales in order to do rate arbitrage. They will say they are opening offices in places like India to access the talent pool, but what they usually mean is that they need a means to do work at lower rates.

One of the things that impresses me about ThoughtWorks is that, as a strategy, when we open an offshore office, we make it a priority to find work in that market, and as a goal, make it so that market can be self-sustaining. Two years ago, we opened our first Latin American office in Porto Allegre, Brazil. Within a year, we already had clients in the Brazilian market. Our efforts in China over the years have also yielded “in China, for China” type work.

There are several benefits to this. A primary benefit is that we gain better geographic diversity in our client base. This diversity allows us to better weather the natural ups and downs that will occur in any given region. As places like Brazil, India, and China rise, we already have relationships with those respective business communities. This does not happen if you are primarily in the rate arbitrage business, as companies that do that tend to tie offshore revenue to first world economies – spending most of their energy doubling down on first world business relationships, rather than developing world relationships.

Why is this good for you, as a potential ThoughtWorker? First off, you get a chance to get involved in these emerging markets. Second, you have a better shot at getting exposed to these cultures – all of which add to your value as a consultant should you decide to learn how to work with such a diverse set of people. Third, you work for an organization that is sufficiently diversified that the potential rise of Brazil, India, and China will only create more opportunities for you, rather than fewer.

Reason #4 – We won’t do evil

As a company, we have strong values. Every client we take on, we vet to make sure we are comfortable with what they do as a business. This isn’t always easy, and there are definitely shades of gray. But chances are, if a company derives most of it’s revenue from activities related to war, uses it’s profits to fuel hate against marginalized minorities, such as blacks, women, or the LGBT community, or otherwise does not have aligned values, we will not work for them.

This does not come without cost. There have been times where our pipeline was light, and work was offered that would help the company through a slow period. And frequently, there are very vibrant conversations about exactly where to draw the line when something is a “shade of gray”. I am reasonably certain we do not always get it right. But compared to most companies, which, being polite, operate on the principle of ATM (Anything For Money) – ThoughtWorks is head and shoulders above the rest.

Reason #5 – We often work on the hardest, most difficult problems

When we engage, the stakes are usually quite high for the company engaging us. This provides a sense of meaning and purpose to the work that is compelling, frequently very technically interesting, and almost always very interesting from a social point of view. After approaching three years at ThoughtWorks, it has become rather obvious to me that many problems that are presumably software problems really have a corporate strategy or political problem at their core. This kind of work, very common here, helps you as a ThoughtWorker exercise skills that a pure software shop can’t offer – things like building coalitions, selling crazy ideas, and creating delivery climates conducive to innovation. ThoughtWorks is not just a great place to learn technology, agile, lean, or continuous delivery – it is also a great place to learn how to navigate the ropes that exist in large organizations so you can actually get things done.

It isn’t for Everyone

Look, ThoughtWorks isn’t for everyone. Most roles require extensive travel. And we have a pretty hard-core vetting process for new hires. But I believe that the opportunity to do amazing work – work that is literally “make or break” type work for many of our clients – in a manner that truly makes the world a better place – is worth it. It is a place where you will have deep respect as a technical person. It is a place that bears the costs of doing the right thing. It is a place that you will be proud to work for. If you would like to join us, please let me know, either directly (aerickson – at – thoughtworks.com), or by going to our new site for potential candidates at join.thoughtworks.com.

Why I Work At ThoughtWorks (and why you should too…)

Hourly Rates Considered Harmful

So here you are, on a project, and everything is going great. You are delivering value, your customer is happy, and all is well and right with the world. You are doing Agile – including the parts like pairing and TDD that lots of people pay lip service to but far fewer actually do. You even are getting to use innovative technology like F#, Clojure, JRuby, Hadoop, NoSQL, Knockout.js, or one of dozens of technologies that somehow manage to enhance your productivity. Awesome!

One problem though. Your rates are too high. Can you help us train this group over here to be like you? They work for 1/3 your cost, and don’t ask us lots of hard questions all the time.


Of all the ways to sell services of higher end technology consultants – if I had to choose a worst way – I think I would end up with hourly rates. It is the same measurement vendor management departments in most large companies use to “price” the services of said consultants.  Unfortunately, it is a number that, in isolation, tells you very little of importance, for two main reasons:

  • Measurement of effort at the wrong level of precision
  • Measurement of cost irrespective of value delivered

Measurement of effort at the wrong level of precision

How many people are doing estimates on a per hour basis? There may be a few, but I highly doubt there are people other than GANTT chart driven control freaks looking to normalize that kind of thing. The reality is that, as a developer, I have a mix of useless hours, and a few really good ones where the vast majority of the value get’s delivered. The whole hours thing is a vestige from the temporary employment industry where programming was considered a fancier form of typing. We need to recognize it for the vestigial tail it is.

What should replace it? I am a big fan of weekly or monthly rates when working under a time and materials contract. I don’t mind the idea of “per person-sprint” either – which fits nearly into the idea that we would rarely fund only a percentage of a given sprint or iteration. I am open to other models that match funding with the unit of work, but do so in a way that you can know in advance (i.e. I would reject per story on the basis of you can only estimate effort – and it brings on too many potential fights or negotiations about how big a story ended up being).

Measurement of cost irrespective of value delivered

The precision issue, however, isn’t the biggest issue. The biggest issue I have with hourly rates is that they are the denominator in a much more important number, that being ratio of value delivered to cost. This issue is an old one, well covered in Joel Spolsky’s post on the subject. The specific problem – however – for higher end consulting firms, is that rates tend to be higher. Without considering value delivered in part of the equation, rate conversations tend to always be self-defeating, as it highlights the cost, without talking about the value.

The problem, of course, is that value delivered is often a squishy thing to measure, while you can read the cost per hour right off the invoice. To me, this is the biggest reason why Continuous Delivery is important, particularly the kind that has a feedback loop that measures financial performance – it allows us to actually measure the numerator in the value delivered equation. In the best of all worlds, we move to a funding model that funds the Minimum Viable Product up front, but then moves to a Evidence Based Funding model (aka “Continuous Funding”) based on value delivered via Continuous Delivery.

Something Has To Be Done

The funding model is broken. It has been for a long time, leading to sub-optimal results. Competition by rate irrespective of value delivered is a race to the bottom, leading to all sorts of bad outcomes for companies that get involved. Sadly, too many do. Continuous Delivery is a start, perhaps if we can get to Evidence Based Funding – we can actually sustain continuous delivery.

Hourly Rates Considered Harmful

What Working at ThoughtWorks Has Taught Me About Consulting So Far

In my book The Nomadic Developer, I spent an entire chapter covering techniques that allow you to thrive as a technology consultant.  Of course, I wrote that before I joined ThoughtWorks.  Since joining, I can certainly say that ThoughtWorks has given me quite an education about technology consulting.  This post explores some of the things I have learned over the past 18 months.

Technology Consulting is 10% Technology, 90% Consulting

Being a great technologist is around 10% of the skillset required for being a good technology consultant.  I used to think it was 50%, but my understanding has now vastly changed towards the direction of the so called “soft skills” being more important.  In most companies, there are thousands of opportunities to make things better using technology in some way, shape, or form.  The trick to opening those opportunities is overcoming the massive “wall of cynicism” towards these kinds of investments.  Discovering the opportunities, overcoming the wall of cynicism, getting the human stakeholders on board (not just upper management!), and then actually putting this all together to get a project funded and delivered seems to be 90% of the challenge.

Technology Consulting is a Subset Of, not Different Than, Management Consulting

You can do a project without having it have deep implications for the overall business.  But I doubt that is the kind of project I would ever want to work on.  Most technology investments are, in fact, capital investments in the business.  It is very common for technology to end up both constraining and enabling corporate strategy. Even minor implementation details can have significant effects on strategic choices that a company will be able to make down the road. Everything from ability to do effective mergers, price changes, new product launches, and other strategic initiatives deeply depend on business technology.  For good or ill, technology decisions drive business strategy – and until that condition changes, it is my conjecture that effective technology consulting is really a part of the overall management consulting picture.

ThoughtWorks, having recognized this, is formally rolling out our Consulting Practice which, among other things, seeks to formally do what we have been doing informally since our inception, which is to advise companies not just on how to implement technology, but what technology to implement.

Clients are Never Perfect

Expecting to come to TW where you will work on perfectly “aligned” clients that always espouse our values is, to be blunt, a poor expectation. Most people call the doctor when they are sick, not when they are well. Sometimes – no – all the time – organizational transformation is HARD, and you will have to, excuse my French, slog through some shit in order to get to the holy grail of your client that needs help becoming a perfectly functioning agile client that perfectly practices continuous delivery.

Never Underestimate The Importance of Soft Skills

Good consulting involves:

  • Controlling your temper and not being “shocked” when you see things like bad code and retrograde practices. When you go on site, expect anything and everything.
  • Understanding and addressing the skepticism of organizations for which you are the 4th, 5th, or 10th person who has been put there to try to fix things.
  • Learning how to build credibility so you can spend it later when you need to.
  • Understanding the limits of your own capabilities, so you can know when to call for help (aka you do not have all the answers).
  • Learning how to understand a domain quickly and credibly, so you can talk in the language of the client
  • … and a million other little things that have more to do with relations between humans than they have to do with technology …

It has been quite an experience, personally, just finding out how much I didn’t know, learning how to apply these principles in a large programme of work.  That these things are important is rather intuitivley obvious, but at scale, it becomes a list of things you have to remind yourself about every day.  When the stakes go up, and the number of people increase, the importance of these basic fundamentals really starts to outweigh almost everything else!

The Bottom Line

If you want to actually deliver a great technology solution, getting the technology right is just the table stakes.  Getting the people thing right – the consulting – is 90% of the actual work.  It is thrilling, engrossing work, but it certainly isn’t just about software!

What Working at ThoughtWorks Has Taught Me About Consulting So Far

Why Many Technology Consultancies Will Never See $100M Revenue

Consider two hypothetical technology consulting organizations.  One has 50 people and 10 million USD revenue, another has 500 people and 100 million USD revenue. Is one just a larger version of the other, with more geographic expansion?

Obviously not.  There are many differences.  For one, it is harder to manage 500 people than 50.  The latter allows you to probably know the names, histories, likes, and dislikes of each of your people.  The former, you might pick up only if you are Rain Man or otherwise have some sort of amazing photographic memory.  That alone is a significant challenge.  However, there are bigger challenges that I think deserve a good deal of attention.

Lets first consider the ways two different organizations like this will look at a comparatively small deal, valued at $200k.  All other things being equal, $200k is 2% of the revenue of a $10M company, whereas it is 0.2% of the revenue of a $100M company.  While all companies will pursue the deal, it is probably more likely that for the smaller company, the $200k deal will get more attention from the founder or senior executive officers than it will for the larger one.  Having see operations in consulting organizations that range from single digit millions revenues to billions in revenues, one truism is that typical deal size is around 1-3% of revenue.  Note that I am not talking about client size – as some clients may have many deals in that range… but single deal size tends to congregate around that number.

A big implication of this, of course, is that with larger deal size, comes longer deal duration, especially for projects.  Lets assume we are selling teams, we are not selling mere staff augmentation, and that the team size is somewhere in the 4-8 range.  Lets assume rates go from a low end of $50 per hour, to a high end of $200 per hour.  This gives us a range of $8,000 per person-month to $32,000 per person-month.  With team sizes going 4-8, you can then expand to team-months of $32,000 per team-month to $256,000 per team-month.  Given these assumptions, a $200k deal will range from 1 month given a very large, high-end team, to 6 months, given a small, low-end team.  The actual deals in this space tend to come in a bell curve shaped distribution, with  $200k deals typically being in the 2-4 month range.

What is funny about that number, 2-4 months, is that is typically where Waterfall style deals tend to really start falling apart.  At sizes below 2-4 months, you start to be in the neighborhood of the predictable.  A great team of otherwise skilled people, working under Waterfall methods, can probably come in under the terms of the contract if you have a 3 month or less duration.  Agile will still probably do better, but a shorter time frame does give you a better chance of success, regardless of method used.

So what happens?  Well – let us just for a second focus on what is easier to sell, in the world of small deals.  First, let me go out on a limb and say that it would be far easier to sell the certainty of Waterfall, with it’s “fixed” budgets and hubris, than the fuzziness of Agile, where you have to admit the truth and concede that you don’t know what you don’t know.  If selling Waterfall is easier, and your typical duration is 2-4 months, one could reasonably conclude that a small consultancy selling certainty will grow faster than a small consultancy selling honesty.  This is especially true in a world that frequently throws out ethical concerns, quality concerns, or any other concern that isn’t “get the deal done”.  The most important growth factor in such organizations is perceived to be sales, because sales people bring in the deals, and at this level of deal, a perception is often that you can get there with commoditized delivery.

But what happens on the way to $100 million?  Well, first of all, we have to multiply everything by 10.  If your typical deal size is $2M, rather than $200k, your duration is also probably longer – 8 months to a couple of years.  You have moved from the world of single projects and into the world of complex “Programs” (i.e. in the “Program Management” sense) that involve a different kind, and number of stakeholders.  At this point, hubris can’t win, because Waterfall utterly fails in the land of long, multi-month projects.  The key skill of the traditional “deal-maker” hunter type who cuts the deal, gets the signature, and moves onto the next one is far less valuable than the farmer “engagement-manager”/client partner type who lives or dies by delivery.  This is why you see so few technology consultancies get to $100M of revenue without the help of either:

  • Being tied to a software product company (i.e. IBM Global Services, etc.)
  • Having a relationship through other means, such as an accounting firm
  • Being an outsourcer who sells on a pure “cost cutting” premise.

Some companies have made it.  I am proud to say ThoughtWorks is one of them.  But for that to happen, something has to shift on the way from $10M to $100M:

  • Delivery matters much more than sales.  Great delivery is your sales engine.  You still need sales – demand has to be generated.  However, much like how a retirement account you contribute to over time hits a point at which the earnings from prior investments exceed new principal contributions – at some point – earlier than you think, delivery is far more important to growth than sales.
  • Reliance on Waterfall as a sales tool has to end.  Waterfall works for deals in the small, sometimes, about as much as Agile, and for some, is easier to sell.  In the large, it does not work very well, and hinders your ability to deliver.  At some point, if you are in the business of doing multi-month, multi-million dollar deals, you have to deal with the realities of software development.
  • The larger you get, the more that workforce engagement matters.  A dynamic delivery organization that feverently acts in the interest of the client and the company is a key differentiator in a space where delivery is the key to growth.
  • You have to be differentiated.  The companies that spend millions of dollars on multi-year programs are not going to select you because you took the executive to a really nice steakhouse and a good round of golf.  There has to be a reason why a large audience of stakeholders will understand why you are different than the thousands of smaller and less expensive companies are going to get the contract.  Saying you have great people or a great process isn’t enough – those are mere “table stakes” to the table.
  • You have to be global.  It is simply a reality of our business that, to compete for the multi-million dollar deals, you have to be able to have great talent all over the world.  Most companies you sell to at this level have global operations.  To service them, you need to be global too.

In other words, what got you here won’t get you there.  Many, many companies get stuck in a rut at some point between the 10 and 100 million dollar revenue mark, and fail to recognize what they have to do in order to break through.  If you are a consultant, it is something you need to think about – especially if you are the kind that wants opportunities to have a larger impact doing important work.

Why Many Technology Consultancies Will Never See $100M Revenue