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.

2 comments :

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...

@Nicolas

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.