It’s a stereotype that most engineers are private people. That most Engineers are introverts. I don’t think this is the case, but I do believe every Engineer has to go through the same journey when they first start code reviews. It’s initially hard to share your work, and it can be hard not to take the comments personally.
Writing code is a creative process; it is the thing I like most about being a software engineer. There are always many ways to solve the same problem. However, in all creative pursuits, people get personally attached to the stuff they create. I think creating software is the same. People write code they are proud of, or they have written code they know needs improving if they could have a bit more time. As a result, it can feel uncomfortable for others to review and actively point out mistakes in something we have created.
Code reviews are for when completed code is shared with other members of the development team for them to comment, ask questions and make suggestions. It is similar to reviewing a document.
However, over time you realise code reviews are one of the essential parts of the coding process. It is one of the best tools for developing your skills. You get to learn from the more experienced members of your team. You also gain more of the context about how your creation fits within a larger whole.
Another vital part is anyone in the team can contribute. The most junior member of a team can comment and contribute. Everyone can ask questions about why the developer made a particular decision. You learn the earlier you share your ideas and creations, the more others can help improve them.
I have learnt so much from code reviews, both giving them and receiving them. It is a place for curiosity, debate, collaboration, and ultimately, the goal to ensure the team as a whole build software they are proud to have created.
I have been thinking a lot lately about the parallels between code reviews and starting your own company. Creating a company is a creative pursuit. Many choices and decisions have to be made. It is inevitable we will make mistakes. There is bound to be debate around certain decisions. We want Gemba to be a collaborative place and a safe space for people to share, explore and develop ideas. We have hired incredible people to do just this. Such a place requires everyone, especially me, not to take things personally.
To quote from Steve Jobs -not the most original idea in a tech startup:
“If you wanna hire great people and have them stay working for you, you have to let them make a lot of decisions, you have to be run by ideas, not hierarchy. The best ideas have to win, otherwise good people don’t stay.”
I am fascinated by Culture. It is an elusive thing — it’s everywhere and yet at the same time nowhere in particular. As a result, it can be hard to define. But I can describe aspects of Culture I want to see at Gemba Advantage. A place where everyone can contribute. A place where we can all stand on the shoulders of giants, and learn from the experience of others. A place full of curiosity, debate, collaboration.
Ultimately, our goal is to ensure we all build a company we are proud to have created. I am very proud of everything we have achieved over the last year. But, I encourage you to share your ideas about improvements, suggestions or criticisms, so we can make Gemba Advantage even better. And over that journey I commit not to take it personally.