Technical Difficulties

Like a normal tech podcast, but broken.

The topic for this week is the new collaboration service Slack – what is it, what can you do with it, and why is it useful?

The Most Difficult Problem

Listen to this section on SoundCloud: 0:00

It’s not that bad

If Erik and Gabe sound a little too exited about a team site, then you underestimate the pain that they have previously endured. Slack is a revelation.

CriticMarkup is a project that tries to bring simple change tracking to the wonderful word of plain text. It was the first big thing that Erik and Gabe worked on together, and they quickly realized how hard it was to do. Already being prone to trying out every possible solution to every possible workflow, they went on a chat vision quest.

There are many players in the team collaboration space, but each of them lack at least one critical feature. Erik and Gabe’s needs were not necessarily universal, but they were not unique either.

Collaboration vs. Chat

Most of the services we tried were great for pure chat messaging. A good chat service just needs to maintain message order and provide some kind of push notification. The competition gets thin when you need document sharing and support for code syntax highlighting. By the time you get to named-guest access and private or public discussions there’s almost no one left in the race.

The World Changed

Listen to this section on SoundCloud: 3:00

Slack is a messaging tool designed by Flickr co-founder Stewart Butterfield, and it is the logical extension of the IRC-esque system that he and his team designed and used while building the browser based MMO game called Glitch, which has since shut down. Unlike Glitch, Slack has already garnered a large user base.

Graph from Gigaom

The number of users that a service gains can be an early indication of future success, but it is far from the only factor. In Slack’s case, the best indication of its potential may be the nearly universal joy it seems to inspire in its users.

Chat in Channels

When people first started talking publicly about Slack, they almost seemed to be describing a social aggregation system, but at its heart it is a messaging system. The innovation is in the execution details.

Chat Messaging

Each channel is its own chat board. Messages are associated with only one channel but files can be associated with multiple channels. Chat is not threaded in Slack but you can link to a specific comment if needed. The linking process is a bit tedious but works well enough. Marking messages as a favorite (starring) also makes them more easily accessible in the sidebar. This is helpful for referring back to specific statements or files.

Chat posts feel instant in Slack. Posting from iOS causes the message to refresh dynamically on the web page in under a second. I initially thought that we were benefiting from the beta status and low user count during the pre-release period. However, as Slack moved out of beta and received a lot of press, I have not noticed in difference in posting. It’s fast.

The notifications in Slack work great. The work on iOS, Mac and with a web browser that supports notifications. They are also almost instant. As soon as a message appears on the web page, I receive a notification on iOS. If a Slack instance is open and active, there are no notifications. Imagine that.

I also really like the option to delete or edit a message in Slack. One of the most frustration aspects of Glassboard is the inability to fix a typo on a group board. Slack solved this from the start. The option to delete a file attachment or even an entire channel is great too. No need to clutter a board unnecessarily with mistakes.

Links

When Slack sees a link of any sort, it follows it behind-the-scenes in order to provide some in-line context. We’ll discuss later how this is done in the case of tweets, but any web link provides enough useful information so that the thread of a conversation isn’t lost by having to click a link and come back.

In context

File Handling

File Handling

Files and images (and Emoji–hold that thought) are displayed in-line and with obvious indication of the file types. Clicking an in-line object opens the instance in Slack for viewing or opens the external file for editing where appropriate.

The Slack Mac and web apps both support dragging any file into the window to upload it to Slack. The item is tagged to the current channel for easy browsing but you also get a complete list of all files available to the group.

Files like PDFs, text files and Word documents are indexed for searching. They’re not just embedded chat links, they are working documents.

Paste in a Google Doc link and that also becomes searchable within Slack and directly linked from the group chat and search results. The Slack file organization and browsing is also well considered. Browse just your private documents, a single channel or all documents across all groups. You can also filter attachments by file type and favorite status.

Filtering Comments

While you can easily reference a file in a chat, each file also has its own comment thread. This is nice when working on a document together, even a Google Doc. It makes it convenient to discuss changes and make them at the same time. Or use the comments as a reference for reviewing changes.

Files in Slack have a title and comment field to provide additional context and meta data. You can paste directly into the message box to upload an image or drag a file to the browser (or app) window.

Direct Messages

Just like on Twitter, you can send messages to a single person privately and leverage all of the file sharing and code syntax highlighting available in the group chat. Direct Messages are just like group messages except only visible to the two parties participating.

Direct Messages

Standing out

While direct messages receive a slight highlight color, I could imagine an active channel with many contributors could be a bit confusing. The only differentiation between users is the avatar. I’d like a way to add some subtle call-out coloring to a particular user. But that’s a minor complaint when I consider that Slack already provides an option to selectively highlight user selected keywords.

Private Groups

You can set up private groups within your Slack team too, so that you don’t have to worry about being locked into only a Twitter type of communication format. Private groups can be as big or small as you like and the content is not archived or available in global search. Private groups can grow too. Any member of the private group can invite other participants. It’s a nice way to have a sideline conversation outside of the official record for the team.

Private

Service Integrations

Listen to this section on SoundCloud: 5:49

Github Integration

Slack has excellent Github integration for both commit messages and new issues or pull requests. It will ask for an account and repository to link, then you’ve got some basic control over how the Github posts look when they show up in your timeline.

Github Settings

As you can see, you’ve got full control over the icon and name, giving you the option of supporting multiple integrations with more than one Github-based project.

Github Posts

Once the posts make it into your timeline, they’re clear and concise. We just recently started integrating Git more deeply into our collaborative editing workflow, and Slack has made it much easier to see who is editing and when.

Asana Integration

Group Tasks

Asana is a nice collaborative task manager and rather than try to invent their own solution, Slack embraces what makes Asana good.

After adding the Asana integration (I pointed it to a specific team channel called “Scheduling”) new, completed and overdue tasks in Asana automatically create posts into Slack. If you like working in Asana then you can keep doing that. However, Slack provides what I would call a command-line interface to Asana. Type “asan/” followed by an action and Slack executes that action in Asana. You can list all active tasks or mark one as complete without ever leaving the Slack team site.

Integration on iOS Commands on iOS

Zendesk Integration

Zendesk integration is fairly new to Slack, but it’s quite capable. Here’s a look at your integration options.

Zendesk Settings

There are plenty of different ways you can configure this to meet your needs. Just like with the other integrations, messages are tasteful and restrained in your timeline.

Zendesk Posts

Twitter Integration

Whether you use your Twitter account as customer service or as a way to watch for people who like your podcast, Slack can pull your mentions in automatically.

Tweets in-line

If you post a link to a tweet, Slack will provide the same in-line format for it.

Search and Rescue

Listen to this section on SoundCloud: 10:06

Since storage is so cheap these days, most of us have become used to saving everything, which is great until you need to find that needle in the haystack. This is when searching comes to the fore, and this turns out to be another one of Slack’s great strengths.

Strange

That hypothetical situation seemed weirdly specific.

“Hypothetically”

Search

The search function in Slack is a huge win. Not only is it exhaustive but it’s fast too. Finding files is easy with the file browser but finding a specific conversation thread is just as easy.

iOS Search Search in the app

The results aren’t just the exact sentence or word that matches, but rather a few messages above and below the match. I think this is pretty important for search in a message-centric application than can have thousands of messages. After a couple years of use, search results could become useless otherwise. As I mentioned in the file handling section, the content of attached files are also searchable. While the file hits are obvious in the search results, there’s no way to know exactly where in the file, the term was found.

“What”

Managing Multiple Teams

Listen to this section on SoundCloud: 13:30

Things are a little complicated when if you’re working with multiple teams, but it may be as complicated as it needs to be. Slack makes an effort for you to have your own ID that is irrespective of your email address. This idea here seems to be an distinct separation of teams, while still allowing easy access to other teams.

Multiples

You can be a member of multiple groups in Slack and each group can have a different login email yet still be accessible from the apps and web site with a single menu selection. The only shortcoming is that I only received notifications for the selected Slack group.

A Few Slack Tricks

Listen to this section on SoundCloud: 15:31

Simple Rescaling

As the Mac app is browser-based, you can increase or decrease the size of the text and UI elements by typing ⌘ + or ⌘ - just like you would in Safari or Chrome. This is such a useful feature I wish more apps supported it, especially on machines with retina-class displays.

Using Slack with Fluid

If you’re not familiar with Fluid, it’s a great way to package webapps as self-contained applications on your Mac. It’s free to use, but if you pay $5 for a license you can give each instance its own cookies, allowing you to run multiple Slack sessions side-by-side.

Fluid is well worth its price for a lot of reasons, but it pairs great with Slack.

  • Fluid
  • Fluid lets you create a Real Mac App (or Fluid App) out of any website or web application, effectively turning your favorite web apps into OS X desktop apps.
  • Price: Free/$4.99

“Finally there’s somebody that got it all right”

Working with Code Syntax Snippets

Messaging and code

Slack knows its audience well. At any time I can send formatted code as a message. Just start typing in the chat box and hit ⌘ + ⏎ to bring up a code entry screen. There’s a good variety of syntax highlighters available too.

Syntax highlighting

The thing I really like about this implementation is that a bit of code can be given a title as well as its own comment thread. This helps with search and context. So great.

Custom Emoji

Emoji are insinuating their way into every form of text communication, so it is not surprise that Slack supports them here. In addition to the usual GUI method of clicking the smiley face icon in the right of the text input window, you can also type :: and the first or more letters of the emoji name.

Eloquence

If the usual suspects are not good enough to express the depth of your inner angst, Slack will also let you create your own emoji.

“This is the tool we’ve been waiting for”

Pricing Tiers

Slack seems to have its sights set on more than just the small developer and podcaster markets. On its site, Slack lists companies such as Adobe Typekit, Heroku, SoundCloud, Rdio, BuzzFeed, and Medium, and their pre-announced Enterprise Plan seems to indicate still larger goals.

Business Model

I’m happy to see that Slack has a real business model from the start. A free account is available but limits include, a maximum of 10,000 messages stored in the archive, a maximum of 5GB of file storage and a maximum of 5 integrations. That’s pretty generous.

The standard account are $8 per user per month. That seems reasonable for something that I’ve used every day since joining the beta. This removes most of the limits but raises the maximum file storage to 10GB. It will eventually grant guest access and email forwarding to Slack as well.

More details here and here

Setting the Record Straight

It was actually Gabe who first suggested Slack to us for team communication.

It’s not his fault

Erik wouldn’t have to make this correction if we’d had searchable chat history on our previous collaboration tool.

Slack Support

One detail often overlooked when shopping around for a new service is customer and technical support. Slack has shown a good trend here as well, by being both quick to respond and effective in their Gabe response thus far. Perhaps even better, they have intelligently integrated their answers into the interface, so that everything is done within the Slack system. It’s a small thing, but a good indicator nonetheless.

Until next week

Gabe exaggerates, I’m only stuck on IE 7. That being said, I was able to rig up some ugly JavaScript and HTML forms to send chat using Slack’s incoming webhook integration. We are using Slack for everything now, too.

Well, that’s it for this week. If you have anything that you’d like to add to or correct in the show notes you can find me on Twitter @potatowire, or feel free to send an email to me at potatowire dot com.