Dear new developer,
I’d like you to close your eyes and put yourself in a couple of situations.
First, think about a car you have owned. If you haven’t, think of something else that you own and take care of.
I have owned an automobile. I changed the oil regularly in my car; okay, that’s a fib, I paid someone to change it, though.
I took care of any warning lights that came on, even though almost every visit to the mechanic resulted in bills. I definitely avoided driving over potholes. I listened for out of the ordinary sounds and, if they persisted, visited that same mechanic.
My cars aren’t maintained in mint condition. My current car has some dents and scrapes. I drove a car with a crack in the windshield for about 7 years. But, fundamentally, I take care of cars I own. Cosmetic dings are ignored, but root problems are addressed.
Second scenario. Have you ever rented a car? If you’ve owned a car, how would you contrast the level of care for a rental? (If not a car, how about a home?)
I have rented cars. I’m no dummy, I don’t want to lose my deposit or have the rental car company charge me when I return the car. I take some care. But I certainly don’t care for a rental as carefully as I do a car I own.
Hitting the occasional pothole doesn’t bother me. I certainly wouldn’t pay to have the oil changed.
With a rental, my incentives are different; all I really have to do is get it back in much the same shape at the end of the rental period.
Enough with the car analogies. Let’s talk about work.
When you are an employee, you are trading your time for money. When you are an owner, you are building a long term business. (How long? Some times for years, sometimes for centuries.)
Having been both an employee and an owner, I can tell you that being an employee is much like renting a car. A few issues here and there, especially if they won’t cause problems for years, won’t bother you too much.
Being an owner, however, is more like owning a car. You want to, at a minimum, take care of the fundamentals to keep the engine running. Depending on how mature the company is, you also may spend a lot of time tuning and improving the business, just like a car owner might invest in better shocks or tires, or change the oil themselves.
So, what’s this letter really about? Take an ownership mindset. It will set you apart from all the employees that are just treating the company like a rental car.
Some things you can do:
- Ask “how will this change affect the codebase in 2 years? In 5 years?” You don’t have to do this all aloud all the time, but even asking yourself this question before diving in can help you make the change in a way consonant with the overall codebase.
- Document code, processes and decisions. Two very valuable areas to document are confusing things and project setup.
- When you encounter a bug, if you don’t have time to fix it right away, file an issue for future reference.
- Write tests.
- Talk to team members and try to understand why things are they way they are.
- Interact and learn about other parts of the business.
However, just because you have an owner mindset doesn’t mean you should do everything an owner does. If you are an employee, set boundaries. An owner of a business can, and sometimes must, work beyond normal hours. They will reap the rewards of this extra work.
When I was building the MVP for a startup I co-founded, I worked every single day for a month. (Others have done far more, of course.)
But if you aren’t really an owner, set boundaries, particularly around your time. Why? Because at the end of the day, employment is still a trade of time for money. The residual value and control of the company rest with the legal owners.
In short, during the work day act as if you are an owner of the company. This long term view will differentiate you from other employees who are just trying to return the rental car and not lose their deposit. Then, when quitting time comes around, focus on other parts of your life, because it isn’t your business.