Working in engineering teams: tips for healthy habits
Note #1: these are tips based on my experience. You are free to use them if you find them useful.
Note #2: they are not in order. They are just being written as they come.
Note #3: they are not complete. I intend to add new ones when they pop-up in my mind.
#1
A great team is based on a respectful, inclusive and diversified environment. In other words, psychologically safe.
#2
Empower each other in making decisions. Build things based on trust. Have fun.
#3
Use effective communication. Be as accurate as possible with your language — precision is the key especially when not being physically together (note: tl;dr: are highly recommended when there are long conversations and context is hard to gather).
- Avoid usage of acronyms as much as possible (unless explicitly defined and fully agreed on)
- Be concise and predictable. Concise because you want to encourage people to interact with what you are saying and optimise their time. Predictable because creating healthy routines makes everyone more comfortable
#4
#5
Use calendar for everything: your OOOs, your tasks and of course your meetings. Splitting your day in time-boxed events helps a lot with keeping up with different tasks of different nature.
#6
Use a journal where you keep track of your work (including achievements, no matter how big they are) — (I know someone in my team does this already)
#7
Use a personal to-do list. I use Google Docs but there are plenty of tools online.
- I use my to-do list for literally everything that I can’t do right away: sending an e-mail, writing down an idea, following up with a colleague, creating a follow-up task and so on…
- The goal is to minimise interruptions on what you are doing and free up your mind from things you have to remember
#8
Measure everything with data. Quantify progress, leverage telemetry and try to prioritise “move-a-metric” projects
- Use data also to measure the impact.
#9
Learn how to ask the right questions. Great engineers can solve very complex problems or spot unseen risks by just asking the right question.
#10
(Something I re-heard recently in my team) implement the boy-scouting rule: “Always leave the code you are working on a little bit better than you found it”
#11
Learn how to disagree and commit by unblocking your peer
- Example: if to achieve something you have option A and option B and they are both equally good and bad, be open and give your peer the opportunity to choose theirs. There is no race within the team on who wins more ideas.
- Embrace the change: be courageous of trying something new.
- We should aim for an environment where “let’s try it out” is preferred at “here we don’t do it like that”.
Note: This is all true unless a decision poses a threat to our availability, security and overall team health.
#12
Team health is the priority. For real. But don’t forget that company goals are the priority too.
- As a team we should aim at 20% sprints and 80% marathons. We need to have a long-term mindset, but still keep a closed-eye to low-hanging fruit wins or anything that can help us unblock and move faster.
#13
Constructive feedback is a gift for everyone.
- The receiver: be open and believe in the good intentions. Most of the times feedback is constructive and comes from past experience in order to avoid same mistakes. I was told once that when you receive a gift you can actually decide to do whatever you want. You can even discard it if you don’t consider it valuable. But it is highly recommended to use it and eventually discuss it with your manager.
- The giver: too much feedback is risky, unless there is a mentoring or coaching in progress. Even managers should be very predictable when they provide their feedback. Why? Too much feedback can create an adversarial environment, where people can feel monitored and micromanaged. Always make sure your feedback is welcomed. Use the two-datapoint rule. One single datapoint to provide a feedback might be too little (we can all have a bad day). Too many datapoint of the same event might be too late to suggest a different behaviour. When you think you want to provide feedback, write it down for yourself and keep it there for a bit. If a similar situation happens again, then it’s a good time to follow-up.
- Not all feedback is relevant. Something might just be a matter of different working style or cultural background. Respect, inclusivity and diversity are the keys for an healthy team. Ask yourself how important this topic is? Is it really relevant to mention it? Does it have a good impact? Does the behavior that deserves feedback repeated multiple times in the past? Or is it just one case?
#14
Personal growth generates company growth. In order for us to focus on the right things, not only we have to follow our north star and choose the right projects, but we also have to match them based on individual’s career expectations, so that engineers can grow.