A couple of weeks back, one of my friends asked what are the three qualities that I want to develop in my team. And honestly, I was short of just three. So I made a joke about him (benefits of good friends) and diverted the topic.
Over the next few days, I tried to distil what would be those qualities
This is equivalent to the fresh air (at least for me).
Make bland work tasty.
I have seen people complaining about a boring task, and for the same task people saying they are going to read a book to understand it more as it was so fascinating.
I have been to this camp recently while working with a colleague from the pharmaceutical domain. It's like coding on humans instead of a laptop.
A lot of interesting by-products come up when you are curious about the task (patents, articles, research papers, new utility, sometimes even products).
People repair code in the official library on Github, write blog posts on solutions, and improve the efficiency by exponential numbers just because their mind said it doesn't look right when everyone said this is how it works.
I love it whenever I am working with someone who's curious and this is the trait that I want to pre-install in everyone who joins our team.
This is a fully loaded term and I was not even clear with the definition (although I have heard this word from a lot of influencers). To understand it, we may have to define supporting variables first.
It's the capability to perform in case of known failure.
This is an essential pillar for any team and is optimised by systems. Like we don't have the API for this data or we don't have an open-source library for this. There would be a guideline for Plan B as to what to do now.
Robustness comes when you learn from failure and code the system so that it doesn't happen again.
For this to happen there should be a psychological safety net where you can openly share the failure and design the process to avoid it in future. This is the critical part where culture would be the deciding parameter.
To publicise failure is the anti-goal of humans since our teacher is evolution. To build social capital with a team where people can share openly is a big challenge and I am still trying to solve it at the company level (it's safe to say we have solved it within my team).
Sharing TIL is one such way, where you encourage the collective knowledge so that someone else won't repeat the same mistake again. Another is not to discard things as if it would be a piece of common knowledge.
We celebrate all learning without plotting it against experience level.
Now, robustness can be achieved in a lot of ways.
For instance, I can set up a system that says that our product should have zero bugs, anytime a bug comes up, we corner one developer, put the blame and make a lesson for everyone out of it.
Another way is to do a postmortem, document the best practice, make a checklist of things to do and put a system so that it doesn't happen for the same reason. Both ways achieve the same goal, but internally they are totally opposite.
Companies that focus on just numbers will most likely adopt the first method as it's easy.
There's a slight signal that is emitted when such things happen. People go into two modes, one is reactive (firefighting mode). This is where you come into motion once there's a fire and then you do all you can to control it. Put band-aid solutions.
Another is proactive where you start anticipating the problem (this is not same as premature optimisation), or you draw parallel in different directions.
Like our quality team lead recently hacked one of our products and this gave us an idea that what if someone who's far more experienced than us hacked our product which we feel is totally safe and used by a lot of clients? So we are hiring a third party vendor to do a pen test on our products. People who anticipate and put systems in place even before someone thought there would be a fire go a long way in a speedier manner.
You are promoted for the job that you have already done.
Once you have robustness, you can focus on resilience as robustness is a prerequisite for resilience.
Resilience is like a super power where you can narrate the direction in case of unknown unknowns
These are the situations which were never anticipated (like Covid 19) and how to react in such situations is resilience. You need to be creative to evolve continuously.
When I first met our biggest client in China, I said zero words. I bet the client's team thought I was mute. I could code and solve any problem that they were saying, but I was not a good translator. I was stuck in my code editor.
After the trip my mentor shared a small tip with me, he said "do the small talk whenever you hire a cab". This was so frustrating and challenging at first, but I realized how important this small exercise was to be able to speak to clients. This is why I push my team to do a lot of things which sometimes make zero sense at face value like marketing your talk, or watching Netflix/Masterclass on a lot of different topics. This is why they are made to attend a lot of workshops so that they don't act like a mannequin in client meetings.
To make them resilient, some of them might hate it because the unknowns are still unknown and the logical part of our brain says as to why they are putting this much pressure on non-relevant stuff.
Some lessons are learnt the hard way and with a ton of regret.
So Curiosity and Resilience are two that I have shortlisted and I am still searching for the third one, if you have any suggestions please let me know :)