PART FOUR: Communication
Communication is something that comes very naturally to human beings, and it is arguably our greatest strength. When it is done right it can turn a group of individuals into an organic behemoth capable of great things. When done wrong it can make people feel isolated and stressed, and decrease productivity. Here are a few lessons I’ve learnt in my first programming job.
Know what’s going on in your team
It’s important to actually stay on top of what your team is doing. If you struggle to find out because there isn’t good communication within the team then suggest (diplomatically) new processes to address that. We introduced a stand-up meeting in the morning (obviously influenced by Agile methods) where we all lay out what our daily achievements will be. Knowing what is going on will save you no-end of problems and will allow you to discuss each other’s work.
Group code reviews
You should make time to review other team member’s code. This is another way of knowing what’s going on within the team. Also, it is a way to check if people are writing good code and adhering to coding standards. We introduced a “group code review” where each member gets five minutes each to explain their code from the previous day. This is more efficient than each team member individually reviewing new code, as the person who wrote it can quickly explain their thought process behind it. It’s also more fun and provokes debate then and there. We found the five-minute deadline useful to keep things short.
Documents can be a good way to share information in an efficient way as people can read it at their leisure. We produce a ‘Systems memo’ once a fortnight that is a sort of newsletter describing what we have been working on. This enables the other teams to stay informed about our work.
Consider using a web-based task management tool, there are many options out there. This can enable you to see what others are working on, particularly if they are out of the office. If someone is off work due to illness it can be invaluable to see what they had planned for the day, so you can know if you need to pick up any of their work (it also helps if they keep good logs).
Make a Wiki
We made a Wiki for our team. It has all sorts of things on there like coding conventions, guides on configuring software and servers, mock-ups, feature requirements, research notes and all sorts of other things. Not only is it a great reference tool if you can’t remember a particular Linux command, but it will prove invaluable when new members join the team.
Find out if your workplace would be okay with you running a workshop on a Friday afternoon (that’s when we have ours). It need only be an hour long at the end of the day. You can talk strategies, play idea generation games or discuss how to improve one aspect of your work. Whatever it is, it will help you all get on the same page and pulling in the same direction.
Another process we introduced is called Start/Stop/Continue. Each week, each of us writes down one thing that we will start doing, one thing that we will stop doing, and one thing that we will continue doing. We then come together and review our Start/Stop/Continue from the previous week and decide whether they were successful and useful. We then discuss this week’s Start/Stop/Continue. This helps us to understand each other’s perspective and know what each of us is doing well or struggling with. Often a team member may offer advice on how they solve the problems mentioned. It’s important to be critical if you want to improve.
Value other people’s time and your own
When you have a problem and need to ask someone something, it can be tempting to go straight over and ask them about it. This is the natural instinct, but it can disrupt another person’s work, or bring them out of their ‘flow’. Instead, go over and say “Hey, when you have a minute can I ask you something?”. This will allow them to finish what they are working on, or write down their thoughts so that they can come back to it. In turn, when someone comes and interrupts you, it doesn’t hurt to say “Can I get back to you in five minutes? I just need to finish this thing”. Usually, they won’t mind, and this allows you to stay productive.