At GuardRails, we prefer skilled team players of “rockstar egomaniacs” and aim to develop an excellent engineering culture centered around achieving outcomes together as a team. To achieve this, here are our Ten Commandments of egoless programming:
Understand and accept that you will make mistakes. That’s a fact of human nature. For us, the key is to find them early and before they make it into production. However, and fortunately, mistakes are rarely fatal (unless you’re trying to steal my choccy biscuits!), so we can, and should, learn, laugh, and move on.
You are not your code. Remember, we will find problems during reviews (that’s kinda the whole point, right?) We all make mistakes, so there’s little point in taking them personally.
There will always be someone bigger, badder, and better than you, i.e., someone else will always know more. Take the opportunity to learn from them. Ask them to teach you the moves, the tips, and the tricks. “Every day’s a school day, yes?” Ask politely, smile, and don’t forget the biscuits and cake (where applicable; we’re a 100% remote company so…). Also, don’t forget to pay it forward by seeking and accepting input from others. Even when you think it’s unnecessary, we’ve all been in that situation and have something to learn.
Don’t rewrite code without consultation. There’s a fine line between “fixing code” and “rewriting code.” Know the difference, and pursue stylistic changes within the framework of a code review, not as a lone enforcer.
Treat people who know less than you with respect, deference, and patience. Be kind. We can’t know everything, and due to past experiences, non-technical people tend to hold a negative stereotypical view of developers. It’s important not to reinforce this stereotype, so be helpful, friendly, and above all, patient.
Change is what makes the world go round. It’s inevitable, so be open and accept it with a smile. Without change, we can’t grow; so, regardless of requirements, platform, or tool, maybe look at each one as a new challenge rather than as an inconvenience.
The only true authority stems from knowledge, not from position. Because knowledge begets authority, and authority begets respect, the best way to obtain respect in an egoless environment is to cultivate knowledge and help others.
Fight for what you believe, but gracefully accept defeat. Understand that sometimes your ideas will be overruled. Even if you are right, take it in good grace, let it go, and crack on with the next task. Remember the old African proverb, “If you want to go fast, go alone. If you want to go far, go together.”
Don’t be “the coder in the corner.” As a 100% remote company, it’s even more important that we work together as a team. So don’t be the person in the dark office emerging only for soda: out of sight, out of touch, and out of control. Your voice is needed and will always be listened to and respected. Get involved in conversations and be an active participant in your office community.
Critique code instead of people – be kind to the coder, not to the code. We’re all part of the same teams, so it’s important to be objective, not subjective. To that end, make sure all your comments are positive and oriented to improving the code, e.g., local standards, program specs, increased performance, etc.
Working remotely is great, but we’re not kidding anyone if we say it doesn’t come with its own unique challenges. What’s important is to stay positive, keep smiling, and be patient. Remember, the three most important things in life are coffee, pizza, and a sense of humor.
Top comments (1)
These are great. I will be adopting these for my engineers. Thanks for sharing this list.