It is widely accepted among the DevOps community that there are 3 core virtues of every good programmer.
1. Laziness 2. Impatience 3. Hubris
The concept of ChatOps directly relates to these virtues, particularly 1 & 2.
As a former system administrator, I remember a time when we (read: those of us in Ops) felt that a chat client was not only a waste of valuable company time and resources, but also a possible threat to our network. My blood would boil when I discovered a user had installed Yahoo, AOL, or MSN chat on their local machine without first getting approval from IT (i.e. me).
Yeah, I’m sure that conversation with your boo about getting away to the country to hunt for the perfect pumpkin this weekend is super important and all, but can’t that wait until you get home to discuss?
Fast forward to the present and not only is it perfectly acceptable for users to have chat clients installed to company machines, it’s essential to their day-to-day business. Within the Dev & Ops teams, many of our best and brightest are “silent” masters of code and infrastructure who simply prefer to throw on their over-priced headhpones and hammer away through their assigned tasks in the current sprint. A major chunk of daily business conversations have been moved to chat clients. Why is that?
Aside from the introverted nature of many of us in tech, there are a growing number of benefits to moving not only conversations, but actions as well, right into the chat client. Also, don’t forget…not everyone works in the same office these days, so conversations in person aren’t always an option.
To be clear, I’m not referring to conversations being conducted between just 2 individuals. I’m talking about an entire team or company participating in dialogue, collaboration, and taking action on issues related to what they are working on. Typically this would be performed within a specified channel or room, depending on the nomenclature of your preferred chat client.
In it’s simplest form, this is ChatOps.
What are the benefits of this you ask?
Transparency: By creating a space (chat channel) for everyone to be involved in conversations related to specific topics, an increased level of communication and transparency is generated. Anyone on the team can join a conversation and immediately get “caught up” on what’s going on. Members don’t have to ask questions, they can just use their peepers to read through what has already happened and very quickly be brought up to speed on a situation.
Learning: When onboarding your new bad-ass developer, the ability to teach them quickly is essential. Through the hiring process, you already know she has the tool belt to make an impact immediately. The bottleneck is learning internal processes, procedures, and “language”, since each company is slightly different. The ability to jump into a channel related to conversations surrounding deploying new code (or some other tasks) and almost immediately understand exactly how to do it is a valuable learning tool.
Speed: I want it NOW! Every morning, I open my laptop, press (Alt-Space), press “c”, and hit “Enter”. At that point, I’m instantly provided with all of my email inboxes, 3 tech news sites, and a handful of other sites and services I want available first thing in the morning, each in their own tab on Google Chrome, waiting on me.
What is really taking place is this:
Alt-Space is a shortcut to an app called Alfred (already running when I turned on my laptop).
“c” is typed in to Alfred and through suggestive search, immediately displays “Chrome” as my first option,
“Enter” accepts Chrome as my selection.
Chrome then launches and automatically opens a specific set of pages in individual tabs within the browser that include everything mentioned above.
What I’ve done is automated all of the things that I know I want to take place. Rather than manually finding the Chrome icon, double-clicking it, then typing in the URL’s in separate tabs of each site that I want to visit, I just make the computer do it all. That’s what they’re here for, right? The ability to trigger actions on my infrastructure and code as quickly as I can launch a web browser (with just a few commands) can be a huge time-saver.
By now, you should be starting to see what ChatOps can provide you and your team. Now it’s time to learn how to start implementing it & reaping the benefits.
On Tuesday, November 4th, I’ll be hosting a ChatOps Unplugged webinar. We will explore in greater depth: an intro to ChatOps, the benefits of ChatOps, specific examples on what can be done, the tools that you can use to accomplish them (including Hubot), and how to get started. Join me!