I’ve worked at three very different and unique “tech-driven behind the scenes” companies so far, and I believe the generic term — communication — is one of the most important aspects, if not the most, for an excelling team, hence, a project.
This already has been mentioned a gazillion times, but in this article, I’ll try to expand on what I mean by communication.
Consider the following sequence:
thinking -> questioning -> communicating -> collaborating -> excellence
It’s clear that excellence starts with thinking and is a long-term product of it.
A problem emerges, someone thinks of a solution, executes the plan and hopefully, finds the answer to the problem. Except that it’s most likely not the best solution. Why? Because nobody questioned the answer yet.
Questioning is the step where the best ideas come out. It’s a natural contest where people try to question if the solution is better or worse than how they would solve the issue. By having everyone in this contest, best ideas are found.
Pull Request reviews are one of the examples for questioning.
I’ve noticed that sometimes in technical discussions, e.g in Pull Requests, questioning an effort is seen as patronising. Both contributors need to be careful here, one might be patronising subconsciously or might be over-sensitive.
If you are uncomfortable with the way questioning is delivered or received, you should always communicate this with your partners and let them know.
Communication is easier said than done. Each participant has to completely detox their egos and focus on having a productive discussion.
I cannot stress how crucial it is to think before what you say enough. Words are spells and you have to make sure that you don’t Avada Kedavra someone, while trying to be helpful. Being level-headed and goal-oriented is a must, otherwise discussions turn into ego-wars. The future of the project should be the only ego that everybody shares…
Ultimately, the team has to conclude on a plan of action after having everyone’s opinions. Each participant needs to explain their thoughts and reasonings. A competent moderator will ease the pain here.
PS: I feel I have to note that, documentation is an async communication and I like async things.
After deciding on what to do, everybody has to be a part of the execution. Even if you don’t play a direct role, you still gain domain-knowledge by just sitting there and listening, which is still a great investment in the long run.
If I’ll be lucky enough to be a manager one day, I’d definitely dedicate 1–2 hours of a week just to discuss the project and try to the understand what team members feel. Be it technical aspects, personal preferences, new features/tools, observations… Anything!
Excellence is the fruit of the previous steps and it’s not something that you get immediately. One can think of the previous steps as water droplets. With each iteration, you continue watering the plant, therefore increasing the likelihood of having a fruit.
The quality of the fruit depends on the quality of each step:
- thoroughly thinking,
- exhaustively questioning,
- mannerly communicating,
- methodically collaborating.
That was my 2¢. I hope it’s worth your time.