|
(Update at End) I've tended to avoid writing about ThoughtWorks in my blog. To a
large extent this is because I don't like anything that looks like
advertising for my employer - the logo on every page is quite enough
of that. But more and more my mind gets full of the kinds of things we
are doing not just in our delivery work (which is the source for much
of the ideas in my writing) but also in the way we structure
ourselves. The reason I gave up my successful life as an independent
consultant was because I felt ThoughtWorks was a special and unusual
company. In the last year I've been more and more interested in the
social aspects of my employer, and so I've decided to start blogging
about some of those. I'll start with a snapshot of ThoughtWorks in early 2005. Looking at the numbers, we are currently running at around $75
million annual revenues with just under 600 employees world-wide. We
have offices in: - Australia: Brisbane, Melbourne, and Sydney
- Canada: Calgary
- India: Bangalore
- UK: London
- US: Chicago, Nashville, New York, and San
Francisco
We grew about 50% in revenue and people over in 2004,
which is pretty much the same as in 2003. It's a high rate of growth,
rather higher than I'm comfortable with, but we seem to be coping
pretty well. Even with this growth, we've still found it a struggle to cope
with all the work that's been coming through the pipeline. In the last
two years we've been primarily bound by how many people we can hire.
I've been pleased to see that our draconian hiring routine is still in
place - we are still working hard to hire only the very top fraction
of software developers (the target is around the top 0.5 to 1%). I'm
sure the recruiting system produces too many false negatives (people
we turn down who we should have hired), but I'd still rather take that
than the alternative (hiring people we shouldn't). Our delivery capability continues to improve. We are pushing
incremental development and agile principles as hard as we can - and
finding ways to succeed with them, even when clients are more
resistant than we'd like. In particular I like the way we've
integrated testing more and more into the development process, working
it in at multiple levels (unit, acceptance, etc) and roles
(programmers, analysts, etc). I hope next we'll push further on ideas
of close collaboration between testers and analysts at the earliest
stages of our development iterations. Technologically our two main platforms have been Java and .NET -
with most developers happily bi-technological between them. I'd like to
see us do more work the open source scripting languages (in particular
Ruby and Python). Despite the abundance of work that we've had, we've still had too
many projects that haven't been fulfilling enough to work on. We tend
to hire people who really enjoy delivering applications that matter -
and still too many projects throw up all sorts of frustrations that
get in the way. To a large extent these frustrations are part of the
difficulty of building enterprise software - but for our own sakes we
need to be better at picking projects that minimize that particular
complication. After all part of the point of ThoughtWorks is to do
enjoyable and fulfilling work - money isn't the primary reason most of
us are here. Many people see me as the public face of ThoughtWorks, I'm glad
that that's changing. ThoughtWorks has more speakers and authors of
both prose and open source code. I daren't start naming names because
it would either be too big a list or I'll upset people for missing them
off. To get a sense of my noisier colleagues, keep an eye on our ThoughtBlogs feed. One
of my common sayings is that there is no such thing as ThoughtWorks's
corporate opinion, what we have is the opinion of our employees and
this is where you'll find them. One of my goals when I joined was to see ThoughtWorks become a
truly employee controlled company. For the first few years of this
decade we've had financial pressures that took priority, but now
that's changing. We are now at the point where we can seriously look
at how to make ThoughtWorks fully employee owned and controlled. It's
a simple slogan, but not easy to sort out the mechanics for a company
of our size and international scope. (Joel Spolsky rightly points
out that if you only hire 1 out of 100 applicants you can't assume
you've got the top 1% (although there are more important reasons for
that than those he stated.) I don't agree with him however that very
able people don't change jobs.)
|