Being a good team member and creating a shining team.
Note: I earlier published this post as part of Gojek Blog, This is updated more generic write up.
What it takes to be a good engineer, product manager, designer, data scientist or astonishing quality automation engineer. Well your skill can get you a job, but without a great attitude and looking with a lens of empathy, curiosity and hustle will not take you places… Apart from that there are few more traits one must have to shine on. So what does it take to shine at a workplace full of hustle, mission and driving positive impact for the next set of end users? What else should you have in your arsenal? What kind of toolbox helps you contribute to and create a great team? What’s the attitude?
Whenever we look back, reflect and retrospect, we always think - “wish I knew it then”, for product engineer and product manager’s life - code, deploy, automate is the mantra. When it comes to the team, the ever evolving nature of the product, constantly changing requirements, and everyone bustling with new ideas everyday can be pretty challenging. It can get better, we could do it differently, elegantly. Having done this iteration at least 4 times, across different team sizes - jotting down those lessons and providing a distilled version, might be helpful for many people around. This is a modified original post which I wrote for gojek in the early days. At that point of time, we were on the quest to distill it down, and I found following seven attitude based behaviors helped us.
Intent and positivity can take you places. Programming with positivity can help you write better code. And it’s the same with Test plans, designs, PRDs, specs and everything that requires an action. It’s always good to keep the happiness quotient at work really high. And not just work, a positive attitude helps in your personal life too!
It may be ok sometimes to curse at the damn code that simply refuses to work; we’ve all been there. Or a feature which did not turn out the way it should, or the growth hack that didn’t work at all. But it’s not the intent of the person which was at fault, no one ever wants their plans, code, design to fail. Always assume that your colleague put the best effort. So when it comes to team mates, remember that anger never solves the problem. In fact, anger actually removes the possibility of improvement, especially in high spirited teams. Instead of losing your temper, it always works better to give ownership to your team members. Let them own their mistakes and as well as their successes.
No, really! Be confident about the value you’re delivering to the team, but also try to make yourself replaceable. Look at it this way: If you are irreplaceable, how can you ever move on from your role to doing new things? That’s why I always encourage people to find their replacements asap, so that they can grow and do something even better. I have always found this very useful that a thought of “what will I do if I don’t do this” excites me and lets me explore the world out there full of possibilities.
Healthy debate is always good. Fierce thought-wars are something to look forward to; they make work & life interesting. But when working in a team, remember that everyone has a perspective and you may or may not agree with it. Buck stops somewhere, and everyone may have more exposure to the problem than you, or they may have had experience doing this earlier as well. Once a decision is made, follow it through and own it irrespective of whose idea it was. That’s what being a team player is all about. And it’s something everyone should really value. Again remember, no one got the wrong intent.
If you’ve ever seen someone run a marathon (or run one yourself), you know the importance of conserving your resources. If you want to run for longer, better and to win, consistency beats speed hands down. Strive for this trait, make sure you and your team members don’t burn out. Take time off on a regular basis, rather than having to stop abruptly. Think long term and focus on strategic wins. Tactical achievements should be part of daily life, but we should not burn ourselves out for those! Remember tactical solutions provide tactical achievements and they are ephemeral. So play a long term game, or as Simon Sinek puts it - The Infinite Game
Not to sound crazy, but working with bunch of individuals is a privilege. Don’t treat it as your right. The absence of humility inhibits learning. Always assume you are the dumbest in the room, so there is no question of “what is wrong” and there is no doubt it does not deserve to be clarified. So instead of questioning everything, try to get context, why certain things are done the way they are or why are doing something that sounds very stupid. As long as you realise that there is always a lot to learn, there is a valid reason for everything, humility will kick in and you will feel privileged to keep your learning mode on.
You can’t be fully empathetic to your end users, if you don’t understand how does product propels your business forward, where are the friction points? Unless you understand the business, you can not help create a better product. We were once talking to a few of our investors, explaining to them the pricing and driver operations at GO-JEK. Their comment: “Seems like you guys get involved in business.” I can’t tell you how psyched we were about this comment because this is something if a product engineering team truly strives for this, then I can’t tell how many times you will be able to innovate on your product, just because you understand both sides. Our product runs the business, and if we don’t understand business then there is no way that we will be able to create a better product! Our business always pivots towards customer needs, and our product needs to do that too! So, understand the business and you will be able to create and deliver more effective and frictionless products.
Please reach out to me if you want to discuss more about company, culture and building teams, I would be happy to talk to you about it.