Context of communication for developers. Why is it important?
Each tool we use for development has its own communication context. GitHub — about code, Jira — about tasks and sprints, Confluence — about documentation, Figma — about designs, Slack — about announcements, communication and discussion, general issues.
Agree: it would be ridiculous to discuss in Figma the details of some PR from GitHub, and in Jira to make announcements for the team.
Why to keep the context?
It’s pretty easy to lose important discussions and decisions made. I agree: it is way faster to have a call in Slack rather than to chat in GitHub. But imagine the following.
Two developers are discussing the solution in a PR using direct messages on Slack. They both are sharing their ideas with each other, pointing out on existing and possible problems etc. All good, they came up with the best solution. They code it. The PR is merged. The ticket passes the QA and goes to production. Everyone is happy.
Though one day a new developer joins the team. They open a PR to solve a similar problem. The reviewer sees the same error as in the PR from the above.
As the discussion was in the direct messages, the reviewer cannot just copy the link to that discussion and write: we had a similar problem, here’s how we solved it. They need to either re-explain it, write the summary of that discussion or just copy the whole thing.
All that could have been avoided if the two had a discussion in the PR page initially. Or, at least, if they at least added a summary of their discussion to the PR page.
Why Slack or any other messenger isn’t a silver bullet
(to a programmer) Have a look at this PR, please
(to a designer) Why don’t we have this button on this page?
(to a manager) This ticket is missing data, please fill it in.
In Slack, you often don’t turn your notifications off because you expect to get either something urgent or some announcement there. But often we get messages with review requests or questions about the task.
It is pretty convenient: you write a message, the addressee received a notification and in a minute he’s already responding. Yes, it is convenient. But not for the adresssee.
Not only the loss of context is a problem here, but also distraction. If a developer is coding, they are coding. They don’t want to interrupt and go to review someone else’s PR unless it is urgent.
Then… How to ask for a review?
In my first job, I was very lucky. We had a rule: for a person to see the PR, just ask for a review on GitHub. That’s it. There’s no need to ping in Slack. What for if we have notifications on GitHub? The exception was the urgency. Like, I’m blocked by this, let’s look at it and merge this PR?
And it was not just about GitHub. If I asked something in Figma, I wait for an answer there. Not getting it for a long time, I ask again. And only then, if I still don’t get an answer or I get blocked, I go to Slack. There I write:
I asked in Figma, but got no answer, here’s a link to the question…
After that, people usually start replying in Figma (or any other tool) more often. Having slowed down once or twice this way, I get a long-term bonus in the form of increased team autonomy.
GitHub notifications and how not to miss them
So it all works cool: I’ll review the code only when it’s convenient for me. And I won’t get disturbed by a notification on Slack or anywhere else. I will only receive a GitHub notification. But…
With great power comes great responsibility 🕷
The notification on GitHub is a blue circle on the bell at the top right of the screen. I don’t get an email (again, why clutter up the mail box?). It turns out that I can only find out that I’m asked to see a PR when I see this circle. And you may not open GitHub for a long time if you’re writing code.
It turned out to be an error for me. I don’t remember the point anymore, but I once let a team down by not looking at code or responding to questions on GitHub for a very long time.
To fix this, I set myself a reminder in TickTick for every hour, “check notification and email”. It was distracting at first, but it did the trick: I have built a habit. Now I check notifications many times a day whenever it suits me. At the beginning and end of the day, between tasks, before and after a break.
Think about each other. Before pinging your mate, ask yourself: is it that urgent so I need to Slack them? Can I wait until they have time to answer my questions? If the answer is no, use the corresponding tool and wait. They will respond soon.
Thus you will become more autonomous and more productive as a team.
If the team mixes up contexts, its communication may turn into the following: