"First, become a person of worth yourself, and then teach others" — Seneca
I remember when my boss asked me to be part of the group of people in charge of technological improvement at the company and start to lead my colleagues indicating them the way to implement it. I answered “I’m not a leader at all” to that proposal and he said, “One doesn’t choose to be a leader, but people do“.
Being consequent is one of the key values ruling my life. Although it can be hard sometimes, is one of the best ways to teach people. You can define a methodological protocol in your development workflow but, if you don’t follow it, you are lost. People will start to doubt your professionalism and your good ideas will be underrated due to the prejudices you seed in them.
But this goes further than whatever advice about how a project has to be structured you give or what is the minimum code coverage allowed in the company code base. This goes up to showing your colleagues the desirable values a member should have for the correct performance of the group.
In my personal list, these values are:
Involvement - People willing to contribute to the team is a gift. I love it when a meeting ends with lots of contributions from several people. Here is where not only technological decisions but whatever is discussed take a huge leap ahead. The diversity of situations in every project is what should guide the technology homogenization and people exposing those is the key to the correct company’s technology standardisation. Without people capable of bringing out issues with day-by-day workflow, keeping industry technology pace is really difficult.
Responsibility - Everyone knows their task and everyone must trust each other in the sense everyone is going to finish their task. But the reality is a new feature is something C-level requests to the technology area and if you finish your task but your colleagues don’t it is a failure although you finished your part. Help your teammates in whatever way you can to finish their stuff.
Serenity - Keeping calm in stressful situations is an attitude that not many people have developed. We are logical beings and our potential lies in thinking. Stress is something that impairs our reasoning and we must work on controlling it. As Marcus Aurelius said: “You have power over your mind - not outside events. Realize this, and you will find strength.” The more calm we stay, the more strong we are.
Good character - This is crucial. Toxic people are a very big problem in a team, as it can lead to communication problems which can lead to bad implementations of whatever is developed. Humans don’t like confrontations and is probable other team members will ask less than they should to the toxic one. In the worst cases, the toxic team member would try to boycott the work of another colleague. That’s unacceptable! Having kind people on your team, those willing to help others is a plus and creates synergies with the previous three values.
Fact-driven - We are engineers. We love to discuss technology. And that’s fine! The problem comes when we lost focus on our mission: deliver a service to our users. It’s usual seeing people arguing about what paradigm/language/pattern/technology is better in endless and unproductive meetings. This can get worse (and more dangerous) when the topic of discussion is a bug in production. Instead of wondering what happened, we must go to the source of truth and check what the actual problem is, resolve it as soon as possible with what we have at that moment and, once everything is stabilized, think of a more robust fix.
Although these are too a few of my core values, I’ve never dedicated the time to write them down and make myself more aware of their meaning. Recently, a colleague has had to remind me of all of this. This is my reflection on that strike. I’m grateful to him.