Martin Fowler is a seriously smart dude who quite literally wrote the book on refactoring code. I caught his keynote at RailsConf 2006 and he spoke well. There’s no question that he is someone that people are advised to pay attention to.
He recently posted an article called “Ruby at ThoughtWorks” that I generally enjoyed. It provided lots of subjective yet informed statistics about the real benefits of using Ruby on web application development projects, specifically when Rails is involved.
However, there was a very specific section that made me fall out of my chair:
One thing we have seen is that you shouldn’t expect these productivity increases to turn up right away. I’ve heard several times that people were alarmed in early weeks about the slow progress of a new Ruby team - a consequence of what I call the Improvement Ravine. It does take time for a Ruby team to get the hang of how the platform works and during that time they’ll be slower than you expect.
The improvement ravine is a common phenomenon and a usual palliative is to ensure there are some experienced people on the team.
Say what?
I go out of my way to have a friendly relationship with our competitors, so I am choosing my words very carefully when I suggest that I am deeply distressed by the implications of these statements.
Like Unspace, ThoughtWorks is a “time and materials” software consulting firm. Potential clients approach a professional services entity to short-cut the hiring of top level talent in a particular, often niche technology. The primary motivator to hire ThoughtWorks or Unspace is that we have searched far and wide for the best minds in Ruby — and for a price, you can have access to those personalities.
Notice that I didn’t say resources; when we meet with a client, we will specifically suggest that you get access to people like Mike Ferrier, Hampton Catlin, Jeffrey Hardy, Nathan Weizenbaum… people who are recognizable names in the Ruby community. [Jeff is now with 37signals and Hampton is mostly busy with Wikipedia now, but you get the idea.]
Why on earth would you pay any company north of US$200/h per head to assemble a team of people that have never worked on a Ruby project before? Would you still be as excited to commit if you knew that 1 or 2 seasoned talents like Tyler Rooney or Joshua Wehner could do a better job faster than a mash-up of 15 new-to-Ruby former Java developers?
I’m sorry, but this seems really messed up to me.