Is Your Codebase a Hotel Room or a Home?

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

Tweet

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.