← How We Work

Communication Guide

Communicating effectively in a large, mostly remote organization comes with challenges, especially in an organization with so many communication mechanisms and cultural norms. This guide outlines the communication tools and practices, which are the mechanisms for how we communicate. It also describes our principles and philosophies, which are what we believe make us effective communicators.

Fundamental Principles

Written Culture

A remote organization requires a strong written culture to be successful. Writing is the default mechanism for communication, whether that writing happens in Slack, an email or formal documentation. Other communication mechanisms, like video conferences, meetings, and phone calls all have their place, but writing is our primary method of communication, therefore, we must do it well.

Deep Work

The nature of our jobs require us to be able to focus, think and create. This is only possible in an environment that is conducive for deep work. We create a deep work environment by protecting our time, turning off distractions, and relying on asynchronous communication as much as possible.

Techniques for adopting these principles are mentioned throughout this guide, but asynchronous communication deserves some explanation here. With synchronous communication, there is an expectation of an immediate response to a message. With asynchronous communication, the expectation is that the recipient is also striving for a deep work environment, and will respond when they deliberately make time for communication. Asynchronous communication is critical in making deep work possible; we reject the idea that people should be constantly connected to Slack and email.

Of course, the nature of a person’s role or work may require them to be more connected at certain times. For example, an engineer or support staff on a firefighter rotation is expected to be available and tuned in. An operational role may require more and consistent communication with a client or team. An engineering manager’s job is more interrupt-driven than an engineer. Other circumstances will determine how tuned in you need to be at that particular time, but in general, it is critical to protect your time, turn off distractions, and communicate asynchronously in order to work deeply and effectively.

The Org Chart is Not a Communication Hierarchy

If you know who the person is you need to speak with, speak directly with that person without regard to where they are on an org chart. There are no rules for communicating through a hierarchy of directors and managers. However, do be respectful and include managers or individual contributors in direct conversations so that context is shared.

Open and honest communication builds trust, increases collaboration and innovation. By intentionally defaulting to transparency in our communication we invite an opportunity for insight and feedback that will strengthen the organization.

Communication Methods

Slack

Slack is, inarguably, the most important and often-used communication tool in our organization. It is been called the central nervous system of JH Digital. Nearly all of our communication happens in Slack, and we also manage much of our workflow through automations in Slack.

Etiquette

We have a few rules that we ask everyone to abide by when dealing with chat. Slack has a list of etiquette tips, which are best practices that reduce notifications and minimize distractions. These are fundamental guidelines that should be considered when writing any message. That post IS considered required reading, but here is the gist:

  1. Fewer messages means more efficient collaboration: Getting everything you need into a single direct message means that only one notification is sent to the person. Multiple messages means multiple interruptions.
  2. Write longer messages that scan quickly: Well-formatted messages make text easier to scan and help minimise follow-up questions and messages, since important action items aren’t lost in lengthy paragraphs.
  3. Use threads for effective team collaboration: Use threads every time you want to keep an ongoing conversation organised while keeping the main channel area clear.
  4. Replace short follow-up messages with emoji reactions: Emojis can communicate lots of different things to your team without needing everyone to post “I agree” messages.
  5. Reduce off-hours pings with Do Not Disturb: Use it to mark your outside-of-work hours. You can also use DND to carve out focus time during your workday.
  6. Set response expectations at the channel level: the channel status and channel purpose can be used to set expectations in any channels not meant to be real-time.
  7. Default to public channels for better workplace communication: DMs serve a purpose and are great for personal, private conversations, but chances are much of your workplace communication is appropriate for a team channel—and relevant to the wider group too.

General Usage Guidelines

Profile

It’s helpful for others to know who they are talking to in a distributed, remote workplace. Craft your profile so that others know who you are. The Full name field should be the first and last name you use in real life. Your photo should be a reasonably professional photo of yourself. A stranger should be able to recognize you in a meeting from the photo on your Slack profile. Very few people you’ve met in real life are an animated character. The Title field should include your role and the Team field should include the team you work on. Pronouns, pronunciation and other fields are optional, but the more you complete the better.

Status

Slack status is a subtle but effective method for communicating your, well… status. Use it liberally to indicate you are heads down, out to lunch, in a meeting, taking a walk, out sick, or whatever context would help someone know your availability. Tools are available to update your status automatically based on your calendar.

If no other status is ever used, as a courtesy it is asked that you at least use status to indicate when you are out of office or on PTO, and when you expect to return.

Notifications

We are not beholden to the Slack ding.

Set a notification schedule that matches your work schedule. There is no expectation to be pinged by Slack after work hours. (Again, depending on your role and circumstances.)

If you’re working outside of normal business hours and especially if you are in a position of influence, consider using Schedule for Later. This courtesy helps your message still reach the recipient, but supports healthy boundaries of when responses are expected.

Depending on your role, the circumstances and your current work mode, you should consider disabling (or enabling) notifications appropriately. Whenever possible, pause notifications for the length of time you need to focus. Even better would be to close Slack completely. Mute channels that you need to belong in but don’t need notification of new messages. Set individual channel notification preferences to mentions or whatever makes sense for you for that particular channel.

Remember that even if you have notifications paused, anyone can override the pause if they feel what they have to say is important enough to disturb you. Conversely, if you message someone and feel they need to know what you have to say is important enough disturb, think really hard whether that is actually necessary.

Channels

Prefixes

Inspired by this blog post from Fugue, we have adopted a number of guidelines for how we function in chat.

  • #org – prefixes channels with organization-wide impact, like #org-support or #org-faq. All teams must also maintain an #org-[team] channel for their team as a place for people external to that team to ask questions.
  • #team – prefixes internal team channels. While a #team channel is not required for each team, many use these as a place to discuss internal matters to their teams. These may be public or private and are primarily intended for use by the team. As such, even if the channel is public, please refrain from using these channels to ask questions of teams. #org-[team] channels are for that purpose.
  • #wgWorking Groups. A working group is a team that is assembled for a fixed amount of time to solve a specific problem or define a specific outcome
  • #proj – prefixes channels for a specific project, like #proj-mfa
  • #prod – prefixes channels for a specific product, like #prod-monitor
  • #auto – prefixes channels that are hooked into remote systems for notification; like #auto-pagerduty
  • #office – prefixes the channel for each of our physical offices.
  • #temp – prefixes temporary channels, like #temp-southey-potluck
  • #sig – prefixes channels for Special Interest Groups
  • #tech – for programming languages, libraries, or other technical topics
  • #book-club – for book club related discussions, like #book-club-frdm for the “Functional and Reactive Domain Modeling” book club
  • #ext – prefixes for external channels shared outside of Jack Henry, particularly with a vendor for a project engagement. ex. ext-digital-datadog or ext-banno-visuallogic or ext-gcp
  • #inc – prefixes channels created to manage incidents. These channels are usually created by the Incident Bot when an incident starts.
  • #misc – prefixes everything else
Which channels should I join?

Here is a list of channels that you should join on your first day.

  • #team-digitial – This is a channel for general announcements and discussion related to our parent group, Digital.
  • #team-[your team] – This is the channel specifically for you and your teammates.
  • #org-[your team] – This is the channel that the organization will use to communicate with your team.
  • #office-[your office] – If you work in or near an office, communication with your officemates and communication related to the facility will happen here.
  • #proj-[your project(s)] – This channel is for cross-team collaboration on the projects you are involved with.
  • #prod-[your product(s)] – This channel is for cross-team collaboration on products you build and/or maintain.
  • #org-faq – Not sure where to take your question? Start here.
  • #org-reliability-ff – Incidents and platform problems are discussed here. This is a critical channel for operations and engineering groups.
Archiving

Channels without activity for some time or channels that have fulfilled their purpose should be considered for archiving. #temp- and #inc- channels are particularly ephemeral and can be aggressively archived. #proj-, #prod-, and other types of channels should be considered for archiving after 30 or may days of inactivity (depending on the channel and its purpose).

Archived channels are not deleted. They are simply archived and they can be restored if needed. There should be no fear in losing anything permanently when archiving a channel.

Other Slack Guidelines

  • Slack is not always the best place for emergency pings. If something needs to get addressed immediately, whether it’s an incident, customer issue, or anything else, people should be contacted using a different mechanism (e.g., PagerDuty alert, text message, phone call, etc.)
    • Some situations have their own initial escalation process. For instance, if an incident occurs there’s a specific incident response process.
    • Slack is not usually the place to get someone’s attention off hours. Conversations during an incident or client issue will often happen in Slack, but it should not be assumed that any given team member will respond to any given Slack message immediately.
  • You are welcome to join and contribute in any other channel, but please do not interrupt other people’s work. Be mindful when joining another team’s public channel. It’s ok to be there and nice to know what’s happening, but be considerate that they may operate different than your own team.
  • Some teams and channels have adopted the Slack Triage playbook. The triage playbook is a small collection of simple techniques to help channel owners keep their channel content organized and to help faciliate responses. Become familiar with the playbook and if you see those techniques in use, abide by them.
  • Reply to messages in a thread. Slack threads keep conversations isolated and organized so team channels don’t get messy with cross posting for multiple conversations. The use of Slack within the organization has grown to a scale that can no longer support posting replies as new messages. 3 Benefits of Using Threads
  • Be cautious when using mentions. Some are noisy and some are more appropriate than others.
    • @[person] – It is usually better to mention a team rather an individual. Teams generally have rotations of who is responsible for handling fires, and mentioning a team maintains that order of communication, allowing other team members to keep focused on their tasks.
    • @[team] – It is not necessary to mention a team in their team channel. They are already monitoring that channel closely.
    • @here, @everyone, @channel – These are very noisy. Use them only when absolutely necessary.
  • If you are in a team’s #org or #proj channel and a few hours goes by and no one has responded then kick your message into a thread and send an @groupname could someone take a look at ^ please. If a day has passed then consider bumping the thread. Beyond that reach out to the team lead and they can help you understand what priorities the team is working on which may have delayed a response and if appropriate they will ask a team member to take a look.
  • #temp- channels can be created by anyone for any reason, but they must have a clear purpose and an end point. The default assumption is that these channels will be closed when you’re done with them.
  • Conversations are encouraged everywhere, but no binding decisions are made in Slack outside of the context of the #org-, #proj-, or #prod- rooms in question. This encourages transparency and promotes shared understanding. Make sure that you bring the right conversations to the right place.
  • Be cognisant of the timing of your messages. It is possible for someone to expect a response to a message sent outside of normal work outside hours. When necessary, schedule the delivery of a message using the /send slash command.
  • Tone can be incorrectly inferred, context can be lost, and other things can happen that make textual conversation difficult. When conversations get heated or complex, don’t hesitate to start up a video call and talk through the problem. It’s much easier to pick up context and nuance when you can see and hear the other person. Chat is not the best tool for empathy.
  • Slack conversations are ephemeral; there is no guarantee that someone is going to back-scroll through a channel with a lot of conversation (especially when returning from vacation). Email provides a better guarantee of being seen. If a message is important enough to need some guarantee of being read, follow up your Slack message with a supporting email.

Email

While Slack is our primary communication mechanism, email remains a critically important mechanism.

Email should be used within our organization for anything that is “must know”. There is no guarantee that a person will read every message posted in Slack. A good strategy for ensuring “must know” information is shared is to post a message in Slack, cross-post that message to some other channels, and follow up those posts with an email. There is quite a bit of redundancy in this strategy, but that is acceptable when attempting to ensure that information is shared and understood.

Email may also be the primary method of communication for groups outside of Digital or outside of Jack Henry.

Microsoft Teams

Not all of Jack Henry is using Slack. Most of the company uses some combination of email and Microsoft Teams. Most Digital employees are expected to have Teams set up and configured to be able to chat with JH employees outside of our group. Whether you have Teams open and in use daily will depend on your role and who you work with outside of Digital.

Issues and bug tickets

We have a variety of tools we use to get our work done, and those tools vary per role. When a conversation is needed around a documented issue, it should take place in the tool that is closest to all parties involved. Following these best practices will ensure people know where to look for these types of discussions.

Jira

Jira is where we track issues across teams including BAs, engineers, product managers, support, and designers. These issues will often get created from a customer issue or QA. When a specific issue requires a conversation between members of more than one team, it should take place in the issue thread.

Conversations related to a Jira issue should happen on the Jira issue itself. Avoid using Slack to discuss the specifics of a Jira issue. If it happens in Slack, be sure copy or transcribe the conversation from Slack to the Jira issue.

GitHub

Our code lives in Github. Therefore, it’s appropriate for developers to have conversations about issues here amongst themselves.

  • GitHub Pull Requests can show in related Jira tickets by putting the Jira ticket number in the PR title. It is case-sensitive. This is typically preferred as it’s hard to remember the Jira ticket number for every commit.
  • You can embed a link in a comment on GitHub to a Jira ticket by including {project}-{ticket number} in a comment.
  • Putting a Jira ticket number in a commit on a branch will result in the commit showing in the Commits section in Jira.

Meetings

We prefer asynchronous communication and collaboration, but meetings are often necessary and are not an evil thing. Face-to-face (virtually or in-person) collaboration is the best way to collaborate and it is encouraged. The How We Work guide to meetings describes best practices for meetings.

Video Conference

We use a variety of video conferencing tools for meetings and ad-hoc discussions. Slack Huddles are the quickest and easiest way to fire up a quick chat. Google Meets is regularly used for formal meetings. Zoom is used during incidents and for formal meetings. Any of these options is fine.

PagerDuty

We use PagerDuty to alert us of issues with our platform and to loop in firefighters and knowledge experts into incidents. If it is a true emergency, PagerDuty is the mechanism to alert people and teams that they are needed.

Phone/SMS

Phone numbers can be found via the directory on JH Daily and should only be used to reach someone when they are otherwise unavailable by some other mechanism (e.g. when on PTO or it’s after hours without PagerDuty, etc.). Phone and SMS should be used as a last resort unless otherwise agreed up on by the participants.