What It's Like to Work at...Thoughtworks: A Conversation with Martin Fowler
InformIT: How did you get your job at ThoughtWorks?
Martin Fowler: They called me in to do some consulting around domain modeling for a project they were working on. We got on well and I ended up coming in regularly. During this time they made a big move towards a more Extreme Programming style of software development. After nine months or so they offerred me a job. Since they were my favorite client, I decided to join them.
InformIT: How long have you worked there?
Martin Fowler: Twelve years.
InformIT: What makes ThoughtWorks different from other companies?
Martin Fowler: Primarily it boils down to the people. They do a good job of hiring people who are both very smart, but also pleasant to work with. In particular there's a lot of focus on people with integrity, and I've found I can trust my colleagues here much more than with most of the clients I worked with over the years. There's also a real passion in doing good quality work and wanting to get better, which is excellent fodder for a writer like me.
InformIT: What’s your favorite thing about working there?
Martin Fowler: ThoughtWorks is a firehose of ideas for things to write about. The only difficulty is choosing which small sliver of that firehose I get to describe.
InformIT: What have you worked on at ThoughtWorks that you are most proud of?
Martin Fowler: I'm proud of the fact that we've grown from a few hundred people in the U.S. to a couple of thousand people world-wide, yet managed to keep the essence of the culture intact. I'm not sure what role I've played in that, but I'm glad of the fact that it remains somewhere I like to work, and keeps introducing me to interesting people to collaborate with.
That said, I'm not sure that I can take very much credit for that. For things with a more deterministic tie to my own work I'd say I'm happy with building martinfowler.com up over the last decade. It's become quite a rich resource and a constant puzzle as to what to do next to improve it.
On a more collaborative front though, I've been really happy to see several of my colleagues become significant "loud-mouths" in the industry. I don't feel I can take too much credit—any help I've given is easily out-weighed by their own efforts —but it's the credit I'd most like to take.
InformIT: Why would someone want to work at ThoughtWorks?
Martin Fowler: For less experienced people, I think the big attraction is the ability to learn how to do software development well in a variety of different kinds of projects. Certainly ThoughtWorks projects are not perfect, but I do think they are significantly better than most software projects. I've heard many ex-ThoughtWorkers talk about how they learned a great deal about software development from their years here.
For more experienced people it's more nuanced, if only because a competent senior developer has so many options these days. My sense is that ThoughtWorks appeals most to people who want to lead teams that both deliver challenging projects and also teach smart but inexperienced people how to excel themselves. Delivering software is the common thread here, but as you grow in your career there is a natural shift as the importance of mentoring grows.
And in all cases, the opportunity to travel is significant. If you want to spend a significant chunk of time working in a very different part of the world, such as an American working in India, or a Brazilian working in China, then ThoughtWorks offers a lot of opportunities. This also ties in with our increasing attention to social justice issues, which I know is a big factor for many of our more experienced people.
InformIT: What advice would you have for a new employee just starting at ThoughtWorks?
Martin Fowler: One of the most frustrating things for people at ThoughtWorks is that there's no set career plans, and as such it's dangerously easy to just slide from project to project. For some people that's okay, but if you want to set a direction you have to do it yourself. This means lots of networking, seeking out opportunities, and pushing to take things on. It's not a straightforward path, but it's the flip side of not being channeled into the kind of set career plans that were pushed on me before I became an independent consultant.
InformIT: Tell us an “It could only happen at ThoughtWorks” story.
Martin Fowler: I remember being dragged into a discussion about a prospective project with BigCo. The deal was pretty big, around 50+ staff-years of work for the initial phase. But there were concerns about BigCo's ethical track record, particularly in the developing world. Elements of pure ThoughtWorks in this was listening to the CFO argue passionately against taking on a big chunk of high-margin work, and all these senior leaders listening to a recently hired junior developer from a global south office explaining how BigCo's practices harmed his country.
Martin Fowler is the author of Domain-Specific Languages and NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence, among many other books and writings.