DevOps and Team Communication
The Three Ways principle on which DevOps is built revolve around having clear and efficient communication across and within teams.
Join the DZone community and get the full member experience.Join For Free
The DevOps methodology hinges on three main principles known as The Three Ways. These are:
- Flow: The principle of accelerating the delivery of work through the IT value stream from Development to Operations to customers.
- Feedback: The principle of implementing fast and constant feedback from right to left within every stage of the value stream.
- Continual learning and experimentation: The principle of fostering a high-trust culture in the work environment as well as a scientific approach to organizational improvement as part of the daily routine
These three principles form a cycle of continuous development, feedback, and improvement, and are what makes DevOps transformative even in different use cases.
For such a cycle to run smoothly, though, at the heart of each of The Three Ways lies excellent communication between teams and team members. Teams, departments, and key stakeholders need to collaborate early in the cycle in order to form a suitable feedback loop which lies at the core of the whole value stream. At the same time, that collaboration requires constant communication to remain transparent, efficient, and highly productive.
Regular meetings are great, but there is more to communication than a daily standup in a DevOps environment. So, what are the best ways to develop strong team communication within DevOps culture?
Popular Communication Tools
Digital data exchanges, messaging, and transparency form the backbone of excellent communication. Yes, meetings are still needed; that’s why planning meetings and daily standups should remain an inherent part of the feedback loop. Meetings alone, however, are not enough. Communicating via email, text messages, and notifications in a development platform are far more effective and Agile. This is why Slack is one of the most popular messaging apps used by countless organizations today.
Slack’s native features are the perfect medium to make teams effective within DevOps. The app offers integration from a myriad number of other tools (Google Drive, GrowthBot, Splunk, etc.) to establish alerting and monitoring for everything from deployment triggers to Status Hero checkins. In fact, many DevOps specialists swear by Slack as the best communication tool for the methodology.
Slack Apps make this messaging platform even more flexible. You can, for instance, integrate Hubot to introduce a chatbot to your Slack. You can also integrate RSS feeds to the app, which means regular updates and announcements can be managed easily.
Let’s not forget that Slack can be integrated with GitHub directly, plus it works really well with Jenkins, Travis, and many other CI tools. Notifications on build pushes and commits are fully automated, creating a more seamless feedback loop.
Of course, Slack isn’t the only application suitable for DevOps. Many teams leverage Zendesk’s customer service and ticketing support to interact with customers. Intercom is another excellent tool for connecting with customers to ensure they become an integral part of your value stream. Plus Jira or Trello are both popular project management tools which provide Kanban style visualization to task management—ideal for DevOps sprints.
It’s important at this stage in the article to remark that encouraging your team to communicate is key to a project’s evolution and progression in any form, and you don’t need to force a specific line/tool of communication on them to achieve this. While at Caylent we advocate the use of Slack because it has helped our team a lot, many people may resist using particular tools. Forcing your team to use a tool that doesn’t fit can lead to misuse, or even worse, make them ignore that line of contact altogether. It’s, therefore, really important to find what suits you and your team to encourage more communication and not make it a burden.
Building an Effective Feedback Loop
Communicating well doesn’t always come naturally to everyone, so establishing a suitable platform for effective IT collaboration alone is not enough. With the environment being fast-paced by nature, developers, designers, testers, and all stakeholders should be encouraged to adopt a more proactive attitude towards delivering value to customers or end users.
Making writing documentation a habit is a good thing to encourage, too. Developers often communicate better through notes in their codes and sharing such work is an efficient way of transferring knowledge to others. Plus, well-documented code is always easier to work with. Other stakeholders can use writing for similar purposes, for creating a more consistent chain in a CD/CI cycle and making audits easier to complete. Clear and transparent documentation is an effective best practice of the Third Way: continual learning and experimentation.
In DevOps, there is also the need for better analytics and comprehensive insights. This is where additional monitoring resources such as Prometheus (working with Grafana) come in handy. Integration of Prometheus for monitoring and collecting time series data is a huge step in the right direction for container orchestration, particularly if your organization uses microservices architecture too.
Grafana, on the other hand, serves a more practical visual purpose. It allows users to create alerts and gain visualize insights to allow for better oversight of the DevOps pipeline. Grafana is also contextual, making it a great tool to use if you want to induce your DevOps cycle with data-driven decisions and a clear view of processes at any endpoint.
Establishing Effective Team Communication
The only thing left to do is creating an effective feedback loop within the DevOps environment. This is often easier said than done. While you have plenty of resources—and a handful of great tools—to use, it intrinsically falls to the people involved to create an effective communication loop.
Implementing the use of communication channels is relatively easy. Key stakeholders can be made more accessible too regardless of the communication platform used in the cycle. Feedback management is also a key ingredient. An important part of the communication process is ensuring that feedback is always reaching the right teams (and team members).
A crucial enemy to defeat is improving the level of responses in a feedback loop. At the very least, team members must acknowledge feedback they receive, even when no immediate solution or further action is available at the moment.
Lastly, you need good prioritization of messages in a communication loop. There are critical messages that require immediate response and action, such as when a team or team member runs into an issue, or when a process is falling behind and slowing the entire cycle down. Implementing a healthy regard to response prioritization can be very useful for team members.
Inherently, the agility of DevOps relies heavily on team communication. The DevOps methodology is built on creating a loop of continuous feedback and response. Without good team communication, it will be impossible to maintain a DevOps pipeline that really delivers value to the end users.
For more on DevOps best practices, check out our article DevOps and DRY.
This post was originally published here.
Published at DZone with permission of Damian Velazquez Cafaro. See the original article here.
Opinions expressed by DZone contributors are their own.