If your code was a hotel, would you stay at it?
Tags: webdev, programming, productivity, watercooler
Published: 2023-10-28 20:13:12

When I was in the first year of business school we visited a hotel, there I learned that you could live in a hotel. I thought it was terrific and would like to do that too. Well, a decade or so later… I did.

Living in a hotel is a weird experience, but it got me thinking that if code were a hotel, then some places would feel like your “home” and others would feel like a cheap motel by the side of the road that you feel disgusted touching anything there. 

## Every place has a different “right way”

I stayed at a nice place, which probably could have been better, but for my budget it was perfect. There were organizational choices in the room I would do differently, but one thing I felt is that, no matter what you do, it is not “your home”.

Yes, I’m also talking about coding and about how, at work, it’s like you’re living in a hotel. Doesn’t matter what you do or what you want, the place is not yours.

To be fair, you can actually buy a room and it will be yours to do as you want (with some constraints), the same applies to coding at work. You might be able to guide things in the direction you want. Or you might work in “your” room and that one place is “yours”, but no matter what you do… you would still be in the hotel and some things you wouldn’t be able to change, not with great effort, time, and cost.

I stress the “not being yours” part because if it means you are limited on what you can change, it also means you can, ultimately, up and leave.

I also stayed at a “less than ideal” place. For the budget I had, it was what I could afford, and it’s not that it was in a bad place, or was in shambles… far from it, the problem is that it lacked maintenance. It might have been a 4 or 5-star hotel decades ago, but today the place is just sad.

And it was the simple things that made it feel bad: there were layers of dust visible in the corridors and in some places, “old” and/or broken things out in the open for use.

There was a plastic plant covered in dust and maybe even with some junk just lying there, greeting people taking the elevator. If it wasn’t there, that place would be so much better.

Same for the broken machines lying around in the lobby. A minimalist place might not be to the liking of everyone, but broken and dusty stuff lying around certainly pushes everyone away.

There was also an old set of armchairs with tables on each of the floors. The problem was not it being “old”, the problem was that it “felt” disgusting. I knew I didn’t want to touch that.

The rooms weren’t as bad, but because the “outside” of it was bad, I had to do some extra cleaning to feel a little more comfortable there.

(I don’t think I need to spell out for such a fine audience still reading this, but I’m still *also* talking about code.)

Just by cleaning up a little, throwing stuff, and organizing a little… from a “shitty” place it would be as nice as that nicer place, maybe even better.

Even though it would feel as good, it wouldn't be the same as the other place. The layout is different, colors, location, and view… But just because it’s different doesn’t mean “bad”.

Each place is different and has a different way of doing things. In other words… it would *depend*.

## What about your code?

Some projects would feel like a toy house and if you make it badly enough and the roof fell over your head, you would just laugh it off.

Others would be like a tree house, someone dear to you might use it and you don’t want it to fall over, but if it’s rough around the edges, full of holes and you wouldn't probably live there, but as a place to have fun? It would be amazing!

Others will feel like a hostel with bunk beds. Might not have much privacy, and many people are using it, but it can be fun and all the people there bring something different that makes the experience a good one.

Finally, you’re at the hotel that is the code in your work. Unless you come as a consultant or maybe as a freelancer, it’s something you have to be in for weeks, months, and maybe years. Would you be comfortable if you felt disgusted touching anything? Would you feel comfortable if you felt disgusted even lying in the bed, in fear of bed bugs?

## Don’t be passive

If you’re in for the long run (even if it is not that long), then the first thing to do is to try bringing a little of “home”. Just because everyone else seems not to care about the code, doesn’t mean you shouldn’t too.

Start testing what you do (if there’s not even a setup for that, you might have to create it) and then show the difference it makes when someone says that there’s a problem and you’re chill because it’s probably not a problem in what you’re doing.

If you’re using vanilla JS, you can start typing the code with JSDoc. If it’s code others might use, they will immediately notice the autocomplete on what they are doing.

Same with documentation (and comments). With what you know or what you learn, put it all down.
Had to use something and spent a few minutes to know what and how? Start documenting, commenting, updating wikis…

Some library is really outdated or you can figure out a way to improve metrics using a new one? Make a POC (proof of concept), write the motivation, possible gains from the change, and the migration plan (that can start by just adding the new one, doing new things with it, and only actually migrating as needed).

Not everything is possible, this might mean some people won’t like it, because they are “comfortable” with the way things are (sometimes and some people might not care), but there are ways to make the place you work for hours every day more comfortable and more “homy”.