ThoughtWorks – A 2 year retrospective

Yesterday marks the 2 year anniversary of my joining ThoughtWorks. I thought it would be worthwhile sharing my experiences of the company with people, especially those who haven’t been involved in consulting as it might give some good insights into the sorts of challenges that exist.
A brief bit of background. I’m a software developer. I build stuff. I have been building stuff for a lot of years, and I’m officially “old and grumpy”. I’ve seen many different methodologies for both development, project management and the number of failed CASE tools that litter the highway of my travels make the recent storm damage in Melbourne look neat and tidy. I was involved very heavily in the CMM when it was started, have implemented ISO9000 (and the Australian equivalent AS3563) in a couple of companies, and I’m a certified ISO9000 auditor. So, as you can imagine, I’ve got a pretty good handle on process.
So, it was with great interest I joined ThoughtWorks to learn about this “Agile” thing. The philosophy that was proposed was very similar to how successful projects I’d been involved with in the past. Talk to customers, they make business decisions, I make technical decisions, build your code so it can be changed easily, and get the customers to prioritise what they want. Not so different really. Nicer packaging ๐Ÿ˜‰
I’ve met a bunch of wildly enthusiastic people. Lots of very smart people. Lots of very passionate people. My understanding of lightweight, but highly disciplined processes has increased dramatically over this time. This is good.
Consulting. This has been almost a dirty word for me in the past. A consultant was somebody who came in, waved their hands, made a huge mess and walked away. As they say in the classics, “now I is one”. What does it really mean to be a consultant ? In ThoughtWorks we have a wide variety of projects, which take on very different forms, and each requires different skills. To the most part, my roles have been either “traditional consulting” where I’ve worked with a team to determine some direction or activities, provided guidance, and then let them implement that. The next part has been “implementation” where I’ve worked with teams of customer developers building applications.
As somebody who’s spent most of their life off-site, being on-site all the time really sucks. Yup, I’ve said it. It sucks. Not only is there the normal 9-6 work to be done on the project, there is sometimes interstate travel (did that for 8 months, fly up Monday, fly back Friday) but you also have a whole bunch of ThoughtWorks activities to be part of. So, it’s like having 1.5 jobs. That gets very hard over time. It’s certainly easier once you get the hang of it, but it takes a lot (or it took me a lot) of getting used to. I also miss the flexibility that being “on the clock” requires. Some days I just don’t feel like getting out of bed. I’d much prefer to stay at home, potter around, do some learning, and then work extra time later on, or on the weekend. The on-site consulting gig makes that very hard. “Billable hours” is a really dumb idea, but I don’t have a better one.
The other thing I dislike about being on-site is that there is so much compromise that needs to be made. Some days I just don’t feel like that (see above for “old and grumpy”). Some days I just want to do what is right, without having to do the politically correct thing and “get everybody on board”. I certainly miss just having stand-up arguments with my co-workers. It’s a hard thing to manage, being passionate about getting things done, and having a perceived air of “being professional”.
I’m yet to work on a large scale, ThoughtWorks developer only project. This would be a great experience, and one that I’m looking forward to (are you reading this Roy). Hopefully off-site. (So, if you’re a company in Melbourne who want’s a wildly successful project built in Java or .NET, drop me a line and I’ll make it happen).
So, the good ; meeting cool people, learning new things about writing code. The bad ; working on-site, having people think I’m a consultant when I actually do real work.


6 thoughts on “ThoughtWorks – A 2 year retrospective

  1. Jon, do you find it rewarding to be helping others improve their own development, rather than just working on your own, limited to improvements within your team?
    For me, that seems to be one of the primary benefits of being a consultant (as perceived from the outside ;-)).

  2. I find that the dichotomy that you’ve placed doesn’t work as neatly in practice.
    Firstly there are many development teams that don’t perceive any need for assistance. They’re quite happy writing software the way they are, and while their management have realised that things need to change, the political hassles of “trying to implement change via subtlety” is a wearying process suited to people with greater human interaction skills than myself (such as my wife).
    Improvements within a team always change. In previous workplaces, I’ve worked with more people over time than I have in the same time at ThoughtWorks. Off-site projects can lead to greater diversity of work products, and larger numbers of teams, rather than “just the team/project that you’ve been sold into”.
    My whole family are a bunch of teachers, so I find the teaching/mentoring side of things very rewarding, but the whole key to me is I like to mentor people who want to change, not people who have change forced upon them.
    Frankly, in most cases I don’t give a damn if they want to write rubbish code, provided I’m not expected to work on it, or fix it, or be responsible for it. However, if somebody comes to me and says “I’d really like some advice about X”, then that to me is the door opener that I need.
    There was a great quote on the XP list, and I don’t remember the author, nor the exact wording, but this sums up a lot of the situations that I find myself in while consulting.
    “We want improvement, but we don’t want to change”.
    And that is incredibly frustrating.

  3. Hi Jon,
    As someone who has been a consultant ( but hopefully not a Consultant ) my entire career, I find your comments above interesting..
    I have always considered that one of the huge advantages to my choice of careerstyle ( look I just invented a word! ) is the diversity of clients, people and environments I get in-depth exposure too. I have always felt that I have got a far greater breadth of experience than i could have got working at one place.
    It comes a somewhat of a shock to me then, that you say you have worked with more people over time elsewhere?
    PS anytime you want a stand-up argument just give me a call ๐Ÿ˜‰

  4. All change is stressful – even if we know it’s good change

    A good friend of mine said this once. He was talking about moving to Melbourne, but I think it is remarkably insightful and goes a long way towards explaining the “We want improvement, but we don’t want change” attitude recently lamented by Jon .

  5. Since I’ve been at TW, I’ve worked on 3 or 4 projects, and worked with about 6-10 ThoughtWorkers. In any of my previous jobs, over a 2 year period, I would have worked with everybody in the company on different projects.
    At the end of the day, I joined TW because I wanted to work with all the different TWkers, not necessarily a whole lot of different client developers. Frankly, I’m not interested in working with them (or I would have joined _that_ company).
    So, maybe you’re right (and it galls me to say so), I’ve worked with a lot of people, but they’re not the people that I really joined TWks to work with. ๐Ÿ˜‰

  6. ThoughtWorks – A 2 year retrospective

    Yesterday marks the 2 year anniversary of my joining ThoughtWorks. I thought it would be worthwhile sharing my experiences of the company with people, especially those who haven’t been involved in consulting as it might give some good insights into the…

Comments are closed.