By: Lawrence Walters, Software Engineering Manager
I first used AOL instant messenger (AIM) at work over 10 years ago to communicate privately with a co-worker. We were the only 2 contractors in a team of 30, and we had desks in a very public corridor, so our conversations being overheard was virtually guaranteed. Since then, I have used many instant messenger apps and chat tools at work. However, when I joined Enova and saw how we chat systems, I can see clearly how they’re game changing tools.
What I missed when I sent that first IM to my co-worker was the point of chat: collaboration. I was using it for privacy. Every tool I have used since that time has always had privacy baked into it, and that destroys collaboration. I thought I was using tools like Skype chat rooms to enhance collaboration — and to some degree I was. But those tools almost always required an invitation to join. And before you received an invitation to join a room, you needed to actually know that room existed. But with other chat systems, there is a directory of channels and when you find one, you can join it. No invitation and no permissions necessary! At Enova, we currently have multiple public channels and not a single private channel that I know of.
The tools’ transparency and openness supports a principle we are pushing in our software engineering culture at Enova: ask a group, not a person. Do you ever have a question about a specific piece of code? Yes. Know who wrote that code? Yes. Ok, let’s send a private message or an email to that person. Now what? We wait. For that one person. To get coffee. To come back from lunch. To get back from vacation.
In any team larger than 2 people (we have over 100 software engineers at Enova), there might be someone else who knows, so we ask that specific person, but in an open discussion. That person can get back to us, but others who also know the answer can get back to us sooner. Because the tool has this principle baked in, it is easy to foster collaboration and get things done.
Chat platforms’ user experience is another key driver of participation, and therefore collaboration. Historically, to use chat, you needed to pick a service, a desktop client, a mobile client and a hosting strategy (on- or off-premise). This quickly becomes an IT headache. And the client tools left a lot to be desired in the user interface department. To be fair, some tools, like Skype, have that all figured out, except they lack the openness. Enter a tool like Jabber, Slack or HipChat, which answers the hosting, desktop client, mobile client, and UI issues all in one. Because they take zero setup from the end user and make things easy to find, people actually use them.
The final advantage to the modern chat application is integration. Using a single web API provided by the tool, we can post updates to any channel we want. For example, our #8box_releases channel is where we coordinate all of our releases for our service-oriented architecture. We discuss and request releases, and our custom deploy tool posts when it starts and finishes. Any issues that come up are discussed in this channel, with many, many eyes on it — which helps us resolve issues quicker, too. There are also pre-written integrations for other systems we use, like Pivotal Tracker, Jenkins, New Relic, and Github Enterprise. An engineer can subscribe to those specific channels, or the messages can be mixed into team channels. As far as I’m concerned, easy integrations is not the killer feature of modern chat, but it is certainly one more thing that drives participation.
At Enova, we have taken advantage of this pattern of openness. We have also used these great features to transform how we use chat in software engineering and across the entire organization to collaborate and get things done.