December 7, 2020 ●
In software development, communicating productively is as important as writing quality code quickly. Maybe even more important - studies show that most problems in software projects are in fact communication problems.
On the Internet, you can find many articles and studies about why software projects fail . They cite different reasons, for example:
If you look closer, you'll notice that these reasons point to one thing in common: a disconnect between management and developers. So removing this disconnect should yield great returns.
What would improve communication between developers and management? This is a broad topic, but one idea's obvious: they must communicate frequently enough to be on the same page about goals, requirements, priorities, work progress, project challenges, and risks.
This creates another problem though: to be productive, developers need prolonged periods of quiet time. They need to do focused work, without distractions. Meetings distract developers from writing code. And waiting for the meeting can be even worse. If people know they'll be interrupted soon, they'll feel discouraged from starting anything big. Paul Graham wrote a great article about this - Maker's Schedule, Manager's Schedule .
Ok, so on one hand we need to talk to developers, but on the other we shouldn't distract them so much that they can't be productive. Finding this delicate balance may be hard, but we can make the job easier by removing trivial questions from the discussion. Below I'll give some examples of how well organized processes and technology can help us talk less, but do more.
One such trivial question is “Who's working on what?” Isn't that what the task tracker's for? All task trackers incorporate concepts like Assignee and Status. When tasks are accurately assigned with up-to-date statuses, you'll have immediate visibility about who's working on what and how long they've been working on it. Besides that, you may occasionally need to return to old completed tasks. Having an accurate task history helps you return easily.
Though task tracking sounds simple, in practice it requires a manager's effort to keep your task tracker in good shape. People may forget to switch task statuses, or assign tasks to themselves. Someone might not have a task in progress at all. Someone else might have multiple tasks in progress, which once again, doesn't tell us what exactly they're working on.
That's why we created these "In progress" notifications in Teamplify:
Teamplify connects to your task tracker, like Jira or Trello. If it's not clear what developers are working on, it will politely ask, in Slack or over email, to update their task status. These notifications are smart and unobtrusive. They also take all kinds of non-working days into consideration, so they won't disturb your teammates on their vacation. More on that later.
Today, almost every development team uses at least some version of these collaboration tools:
These tools are usually shared with the whole team, so any team member can take a look and learn something about work progress. Unfortunately, looking over each tool is not a convenient way to learn what the team has been busy on. Because the information is fragmented, not everyone will be willing to dig through it. It's much easier to ask about the status in a meeting.
That's why we created the Team Calendar view, which collects all the work activity from your team tools and puts it in one place. It also shows national holidays, vacations, sick days, and other member statuses:
The calendar displays the most important types of team work activity, including code commits, task updates, and communication over video and chat. It also automatically detects when someone mentions a task in chat messages and code commits. For example, if a task was discussed somewhere in Slack, you'll see it, and be able to click directly to that discussion.
Better visibility into work progress means better informed managers, with less need for meetings and less developer distractions.
Time off plays an important role in short-term project planning. Even in small organizations, people don't always remember who's going on vacation next week. And if your team is distributed, it's quite easy to forget about other country's national holidays.
When someone's absence is a surprise, it's not good for your project. Making time-off clearly visible helps people better plan around it.
That's why we added time-off management to Teamplify. National holidays, vacations, sick days, and other member statuses are visible on the Team Calendar mentioned above. You can also configure notifications for Slack or email:
Even if people miss the notification and mention someone who is absent today, Teamplify will politely remind them:
You can also request a vacation or add another status via the Teamplify Slack bot, so you can manage off time without leaving Slack.
Even the best and brightest developers get stuck sometimes. There may be an unexpected technical problem, or maybe the task turns out to be more difficult than previously thought. In such cases, brainstorming with colleagues may help find a solution or an alternative path and boost the progress significantly.
If we haven't seen any code activity from a developer in a while, it doesn't necessarily mean that they're stuck, but it might signal a good time to check if everything's alright.
Stuck communication is just another form of stuck progress. This could be a lengthy discussion without any productive decision. More often, it's just a question that's been waiting too long for an answer:
If a bot can politely remind your correspondent about your pending question, it means you don't have to. Besides that, bot notifications are sometimes better perceived. If a person reminds you every day about pending questions, it might be annoying. But if a bot does the same - it's probably okay, because, you know, it's just a bot.
When communication improvements add up, the result is a more productive work environment, where people are better informed and spend less time on discussing trivial questions. We have a lot of complex problems to solve, let's focus on them instead.