Why chat-style messaging is crucial for developer productivity
For most organizations, software development is team-driven. Good communication—messaging—is crucial to working together as a team and, increasingly, for working effectively with the tools used by the team.
In recent years, instant messaging has taken over not only social networks, but also the workplace. In many ways, a collaboration tool based on instant messaging is key to collaboration, knowledge transfer, and solid teamwork.
Why has chat become so crucial to actual developer productivity? Because it leads to better, more cohesive teams—especially in today’s often distributed workforce.
In this article, we’ll look at how effective messaging is important to developer productivity and give some examples of how it’s used.
Software development is teamwork
Today, development and DevOps teams are often responsible for complex, fast-moving projects. We write and deploy applications that use dozens of services in worldwide deployments. We activate and deactivate features on a daily basis. We master different technologies ranging from hardware to software, from network layer to API definition.
No single person can be responsible for the whole stack. Building a solid team requires a lot of time and effort. Distributing teams among various locations and ensuring efficiency despite remote team members is therefore typically high on the agenda. Naturally, communication plays an important role in success here. Often, that communication has to be immediate.
The need for good communication boils down to a solution that’s easy to work with, runs everywhere, and is highly flexible.
What about email?
Email is often the default method of communication within a company. Email is ubiquitous—it’s installed by default on almost every computer, every mobile phone, and every tablet. Your email address is often your default corporate login.
But email is not necessarily the best tool for communication for software development teams. It can be effective at broadcasting information, keeping a record of important decisions or notes, and one-to-one communication. But it falls apart quickly when too many people are trying to communicate at once.
While email certainly allows sending audio and video as attachments, it’s not instant. You can’t easily have a real conversation as you might with a phone call.
Furthermore, email is peer-to-peer—from inbox to inbox. While you can set up distribution lists and such for broadcasting, all you’d do is flood people’s inboxes. Worse, people who came on board in the future wouldn’t have access to older conversations. Email clients haven’t figured out how to present longer email conversations appropriately, especially those that involve more than two people.
And beware of the email firehose. When it becomes overwhelming, some people stop paying attention to email entirely. For others, keeping up with email takes over their job.
If email were actually reduced to a tool for direct external communication, it might finally be possible to distinguish more easily between important internal communications and the ever-present external spam that continues to plague us.
Messaging and team dynamics
Why is effective communication so important for ensuring effective teamwork?
A team is dynamic. New people join. Old members leave. They forget things. They’re in the office or they’re remote. Every day, there’s a new plan to make or problem to solve.
Communication is what ensures a single, efficient unit.
A team may be cross-functional. While certain groups, such as developers, might require their own dedicated channels, a lot of company communication actually occurs across groups. When the DevOps team sees that the production system is encountering a problem, the product owner needs to know. If a marketing person is giving a demo on a test system, the development team might want to know or could help out.
Moreover, the classic communication model that involved escalating the reporting level is giving way to purpose-driven messaging targeting the relevant audience. This is another indicator of the current shift in communication mindset. The idea of micromanagement is increasingly a thing of the past. This is due in part to efficiency benefits but mostly due to the autonomous and self-driven working habits common in modern working environments—especially in the realm of software development.
An improved chat room
IRC, which has been around for years, might seem at first to be a great candidate for team communication. The protocol is fully specified, multiple clients and libraries exist, and you can create custom extensions.
Nevertheless, the system misses many of the other requirements, such as audio or video calls. While you could extend the system with such capabilities, that would require custom protocols which would reduce the usefulness of such a product since only custom clients could work with it.
Luckily, solutions that do a much better job of fulfilling the requirements for a modern communication system have been popping up in recent years. For example, Microsoft launched its own product called Teams and other companies have established working and fully integrated products—most notably Mattermost and Slack.
What all good solutions have in common is their understanding that the combination of a powerful server protocols and a user-friendly client application makes effective and efficient communication achievable. If users don’t understand the client application or don’t have what they need (e.g., a mobile app), ready adoption and real efficiency gains are unlikely.
Standard use cases
The quick win in communication efficiency is centralization. A single tool. A single space. A single touchpoint. People need guides. They look for direction. They want to know where to go to get things done. Having a single solution for any communications need represents exactly that.
But a single application can do much more. Instead of notifications coming from multiple applications (or not, if specific applications are either missing or unknown), there’s only a single source. A simple configuration and an integrated meeting manager could help prevent a notification overload.
The inner structure of chat rooms to accommodate varied interests and responsibilities—and differences in accountability and roles—leads to users seeing only the most relevant content. Asking questions in the right room turns up a quick answer from an expert in the field. Through great searchability, the application may be able to offer answers that have been given in the past, increasing knowledge-sharing across the organization.
Even better, such chat rooms are not only for humans. Bots are the secret sauce that create even more efficient communication. You ask for the current system status and no one needs to look it up and type the answer. Instead, a bot does this in fractions of a second. A deployment failed? The bot tells you about it. No longer do you need to wait for the task to finish.
All of this leads to a new communication model: ChatOps.
No longer are the operational factors hidden or unreachable. No longer must relevant information be pulled. Instead, critical information is pushed to everyone who needs to be involved, simply by using the communication tool.
ChatOps connects all of the resources needed for successful development and DevOps collaboration—tools, process, and automation, but most importantly, people, regardless of where they work physically or within the organization.
ChatOps success requires a powerful chat application, one with an API that’s open for extensions. With the most effective messaging applications, increased functionality can be delivered by an ever-growing set of extensions.
Only a few applications truly qualify in that sector, and today Mattermost is the most powerful and extension-friendly one available. Its open source core and on-premise possibilities exceed other solutions. Even more important, it keeps data where it should be: with its owner, thus eliminating potential blockers that could hinder data transfer.
Start chatting today
In a world consisting of distributed teams, ever-changing requirements, and ongoing work transformation, modern communication tools are necessary.
Bringing together people, services, tools, and machines is crucial to ensure an efficient working environment. We require not only access to static information, but dynamic evaluations of current events.
Large organizations such as Daimler, Cigna, and Intel have already moved to ChatOps as their collaboration model for interconnecting all these aspects into transparent workflows. Is it time for you to do this, too? Try the demo at mattermost.com/demo to see what ChatOps can do for you!
(Editor’s note: This post was written by Florian Rappl, maintainer of AngleSharp. If you have any feedback or questions about Why chat-style messaging is crucial for developer productivity, please let us know.)