Improving on the Open Office Environment with Slack

Atomic Object's Ann Arbor office with its open floor plan

At Atomic Object, we’ve always been big fans of the open office floor plan. Our offices consist of wide-open rooms with table groups where team members can easily work together. This environment allows spontaneous brainstorming sessions and problem-solving discussions to occur naturally throughout the day.

One thing that I really love about the open office setup is being able to hear bits and pieces of what other teams are doing throughout the day. When working on an application, it’s not at all uncommon to run across a problem that someone else has already addressed. If you know the right person to ask, sometimes you can save yourself a great deal of time and headaches just by having a discussion with a coworker. The open office environment helps make this possible.

Unfortunately, as our company has grown, the beloved open office concept has become less practical. Atoms now fill multiple floors in multiple offices across the state of Michigan, making it impossible to stay within earshot of everyone at the company. And, even if it were possible, it would probably be so loud in the room that no one could concentrate on their own work.

Recently, I have observed a change in our company that has brought back some the benefits of the open office environment without the need to squish everyone into one big room. Interestingly, the problem wasn’t solved by any one person’s brilliant idea. Instead, it evolved naturally in response to a growing need.

The solution is a social media application called Slack. We originally adopted Slack as a replacement for a couple of other programs that we were using for team-based communication and chatting between co-workers. However, in addition to private, one-on-one chats, Slack has a feature called a “channel” which works like a chat room that anyone in the company can join.

At first, we used Slack channels primarily for team-based discussion–things like sharing code snippets, links, or other artifacts with teammates. But then, people started making channels devoted to a particular technology. For example, we have an “embedded” channel where people post links to articles, products, or knowledge they’ve picked up about embedded electronics. We have a “Bluetooth” channel where people document interesting bits of information about interacting with Bluetooth devices. We have channels for Angular, Clojure, CSS, Emacs, Rust …the list goes on and on.

The great thing about these Slack channels is that they’re opt-in and they have infinite searchable history. So if next week I start working on a Clojure app, I can join the Clojure channel and post questions, search through the history, or just skim through what people have been posting lately. Notifications are configurable on a channel-by-channel basis, so you can enable them on the channels you care about and ignore the rest.

For a while, I was starting to feel burned out by the number of new social media platforms popping out of the woodwork. It seemed like every day, there was some new chatting or media sharing app. However, Slack is one that I am definitely glad to have found. I think Atomic Object is benefitting from it in more ways than we ever expected. I still love the open office floor plan, but I see Slack channels as a great extension to the environment.