Is Your Codebase a Hotel Room or a Home?

I got some strong reactions to a tweet I wrote last week:


Unsurprisingly (thank you 140 characters), some took it as a dig against contractors and consultants. I certainly didn’t mean it that way—many of the sharpest and highest quality developers I’ve worked with in the software industry were contractors or consultants.

The tweet was meant as a dig against companies that routinely staff up a software project with mostly contractors and consultants.

It’s an indicator that the company is taking a short-term mindset with regards to its software.

Now, there are certainly times when taking on a contractor or consultant for a period to augment a software team is a solid choice, for example if there’s a well-defined chunk of work that requires a very specialized skillset, or the team is adopting a new technology and needs someone with expertise to bring the team up to speed.

What I bristle at is the strategy some companies take in which they surround a small core of permanent team members with a swarm of short-term “resources.”

Room service tray

It’s not that everyone who stays in a hotel will intentionally trash the room. But the thing is: they don’t live there. You don’t have to be a bad person to internalize the idea that you’re not going to be around for very long. Short-term gains are rewarded. Long-term plans are left for another day (or another person).

You don’t want your codebase to be a place where most occupants are only passing through. Build a home, not a hotel.


Nicolas Frankel said...

Disclaimer: I'm a consultant

In a tweet or in a "blog post" that just tells the same in more words, this sounds the same to me - empty.

I've done consulting for now 15 years. I saw the same "don't care about the codebase" coming from both contractors and employees alike. I could even say - but not prove, that contractors were more careful about the codebase because they had a reputation to uphold, whereas some employees were just there to... I don't even know what they did, the shop ran because of the contractors.

In the end, it all boils down to whether being a professional or not.

By the way, employees can quit as well. And some missions I had were quite involved (like 2-3 years). That's quite blur the line, doesn't it?

Matt Blodgett said...


No offense intended to consultants (I used to be one) or contractors (I've considered becoming one).

My personal experience has been that when you have a project where there are short-term developers being rotated in and out who are writing a good deal of the code, the codebase ends up as a hodgepodge of different bits of code sort of bolted on to each other. And there's no question that the short-term mindset of the people managing the project in this hotel fashion certainly doesn't help, regardless of the skill of the contractors/consultants.

Again, just my personal experience (written on my personal blog). We're all entitled to our own experience.