This is a single archived entry from Stefan Tilkov’s blog. For more up-to-date content, check out my author page at INNOQ, which has more information about me and also contains a list of published talks, podcasts, and articles. Or you can check out the full archive.

Zed Shaw on Rails, ThoughtWorks, Ruby

Stefan Tilkov,

Mongrel creator Zed Shaw has some not exactly kind words :-) I can’t comment on many things, specifically with regards to the ThoughtWorks-related stuff — but he has a nice list recommendations for people hiring consultants. These are Zed’s items (in italics), with innoQ’s policy and my own thoughts added:

  1. Make sure you have the right to see every resume and interview each consultant they place. Treat them like new hires and don’t let anyone who’s not worth the rate you’re paying on the team.
    Standard practice for our customer engagements, although over time, clients usually start trusting us to choose appropriate people. Of course this only applies in T&M-type contracts, otherwise we reserve the right to staff as we see fit.
  2. Demand a variable rate based on the position of the person and their experience.
    +1. Anything else would be absurd. In fact, we’d like to charge rates with a much wider span, but unfortunately many customers (or rather, their procurement people) can’t possibly fathom how one developer could be worth 2 or 3 times more than another.
  3. Demand that no employees can leave the project to work on another project. These placements have to be for the life of the project or until the employee quits.
    -1. I understand where Zed is coming from, and I agree to a large degree — but mandating it in this way seems unreasonable. There should be reasonable fluctuation, but not to the customer’s disadvantage. Some projects simply take longer than people want to spend on them — if they want to leave, their only option should not be to quit the company.
  4. Require that you have the right to have someone replaced if they are not immediately capable.
    +1. Any innoQ customer can send away a consultant within the first two weeks if not satisfied, at no cost. No one ever took that option.
  5. Seriously consider recruiting one full time employee as a team lead, another as a project manager, and then staff the rest of your team with independent consultants. You’ll find that you get more control and better quality at a lower price.
    +1/-1. I agree that many, if not most times, the project lead should be one of the customer’s permanent employees. But while I have nothing at all against independent consultants in general, I’m convinced some companies — e.g. ours :-) — add significant value over a random freelancer team in terms of ability to take on responsibility, shared knowledge, background resources, established team culture, and core skills.
On January 3, 2008 1:46 AM, Ian Phillips Author Profile Page said:

I can sympathise with #3. But i think I’d soften it to something like “demand that if an employee leaves the project then their replacement is provided free of charge for X weeks to cover retraining and lost project knowledge.” Adjust X to fit your environment.

Of course, given #4 I’d assume X to be a very small number.

On January 3, 2008 2:36 AM, Morten said:

I’m a freelancer. Before that, I was with a consultancy house. In order to do good as a freelancer, you need a skill set which is beyond that of the average consultant. You need to stand out in your performance, as that is what defines your reputation. As a freelancer you’re very much aware of this, and this gives you a drive that’s beyond what you get from most employed consultants who have “safety” in their job.

Freelancers are no more random than any other consultants - we have CV’s too you know ;-) You die as a freelancer if you cannot take on responsibility, or learn the tools you need to land that next job. Background resources, well, a labtop, usenet, google and a safari account - what else? Team culture is irrelevant, it’s your adaptability to the client team and needs and your people skills that matter in order to build a sustainable business relationship.

But I’m curious to understand what significant value you add to your employees. Naturally you’re biased and naturally so am I.

On January 3, 2008 8:31 AM, Stefan Tilkov Author Profile Page said:

@Ian: Your suggestion perfectly fine, and in fact we do this pretty often.

On May 4, 2009 4:28 AM, WorkedWithThoughtWorks said:

I am working with ThoughtWorks now. I agree 100% on all the recommendations given because I have experienced it. They had one girl there from ThoughtWorks with 3 years of experience and was appointed the tech lead. She was overpowering, loud, rude and unpleasant. Ever heard of the phrase “An empty vessel makes the loudest noise when you drop a pin in it….”( or something like that ). They had an architect who hate Websphere even though the client ran all its applications on Websphere. They tried to push this framework that had no open source support called “Waffle” which worked very bad with Dojo and Websphere. Fortunately the client hired a few outside 6 month to hire consultants from Tek Sytems who had “real” experience and convinced the management to go Spring. One project was stuck in “Waffle” and has a lot of issues with Webshphere. The other is using Spring annotations and that team is doing fine. In the meantime, none of the ThoughtWorks staff had Spring and were learning it while they were doing the project. Oh by the way, the billing rate was $180 per Thoughtworks consultant while Tek charged $75 per Java Developer to the client. My view is the Tek consultants saved the project and ThoughtWorks ends up getting credit and possibly more projects. Other than their Agile methodology, ThoughtWorks is is a scam for unsuscpecting clients.

On May 4, 2009 7:40 AM, Stefan Tilkov said:

Tough accusations, WorkedWithThoughtWorks, especially if given anonymously (and with such a positive mention of another company). I have no way to know whether this is true or not; I’ll just leave it here to avoid appearing biased.