We’ve used Hipchat for a very long time. Overall we were satisfied about the tool and the workflow it offers. But then Slack materialised.
We’ve heard a lot about Slack as a revolutionary way of communicating in a company, so we decided to give it a try. During the trial period, we migrated a couple of non-client-related rooms (just to test and play with it) and we quickly got used—so much that we didn’t want to go back to Hipchat. In this post, we want to share how happy we are about this new tool we use at Netguru.
The most important things were: simple user list management, basic tools integrations, OS X app and support. We tried many solutions from private Skype conversations, email labeling, groups, etc., but nothing seemed to work perfect for us.
When we tried Slack, everything changed. First of all, we finally found an easy way to manage a users' list, instead of inviting people manually, we did a bulk import. Then we added basic integrations with tools we use in less than 30 seconds! We love that fact that the add-ons come out of the box: Airbrake, CircleCI, CodeClimate, Dropbox, Github, Google Drive, Hangouts, IFTTT and many many more. It just worked! Slack also has web, mobile and desktop apps. We also loved very handy restricted, guest and full accounts management.
Using a basic tool they offer, we imported all coworkers to the app and our PM team did the same with their clients. We also created separate project channels, using the convention “project-NAME” that allows us to easily operate and switch between different groups.
All of this has driven us to completely migrate to Slack. We were fully operational within 3 days from the start.
We really value transparency and open cooperation at netguru. Once we migrated to Slack, we decided to open up our channels internally so that every team member can access a projects’ room. For our flow this means a developer can quickly join the project, and there is no need to manage (or ask) for permissions. With full access to chat history, the process of switching from one project to another is smooth like never before: from being able to read about edge cases and their solutions, to getting up to speed with a conversation without any barriers.
Our project management, devops, and other rooms are made accessible for others so everyone works as a team success. Developers are not separated from other teams—we all cooperate equally. That's pretty cool, huh?
We hadn't realised just how much time Slack would save us, but it was obvious once we started using integrations! Each project's channel has its own unique integrations that meet client and developer requirements.
Most of these have CircleCI integration added. Each time we deploy code to either staging or production servers, developers and clients are notified by a red- or green-state color on a chat room. This saves us ages! As long as everything goes smoothly, developers don't have to wait to check a build state at the CircleCI website. If something fails, the notification is pushed as a Slack chat message with a direct link to the build.
As you probably know, we use Jira that helps us organize the project goals and issues into tasks (stories). It's a simple tool but engages developers' time for checking comments, rejecting stories, etc. When we integrated Jira with Slack, we no longer need to check everything. Once a ticket is solved by a QA team member or someone has reopened it, we get notified. Pretty simple.
There are also more serious use cases like server issues and exception notifications. If an app is unreachable for some reason or an error appeared, it's obvious that the sooner we know, the faster it's fixed. That's why using this integration reduces operation time from minutes to seconds. Everybody gets notified and someone can react fast. We also have CodeClimate integrated. This helps both the client and us as developers to know why code quality improves or worsens, so that we always keep the project in perfect shape.
Building Custom Integrations
We spend our time working on internal tools that make our work happier and faster. That's why we have an internal app for code review that keeps all commits within project reviewed (read about why we do code review. Once we migrated to Slack, we wrote a basic Rails API that returns basic data like how many commits need to be reviewed or who you should contact to get your project checked. Thanks to Slack, integrating your app with such an API is trivial. We defined keywords like: 'trade PROJECT_NAME' that trigger the app to make an API request and wait for response, then send it to the chat room.
It took us only 3 hours to get this done. We also have a dedicated integration for one of our open source projects called PropsApp. It’s a basic app that lets you say ‘thank you’ in a geeky way. The app uses a simple gem 'slack-notifier'. From a developer standpoint, it's just a matter of 2 lines of code and we have nice prop notifications on public channel.
Update! Using Slack for a few months
A few months passed and we got more used to starting our day with a cute quote on a Slack launching screen. We’re happy to use this app for our internal conversations and working with clients or cooperating teams. Some things stayed the same while others evolved with time.
Slacking like a pro - for projects
From the very start, we’ve enjoyed Slack’s flexibility. You can easily move around different channels whenever you need to ask a question related to an issue you’re solving at a particular moment. Are you a tester who needs some developer’s advice? No problem - jump to a dedicated channel! Do you need help preparing a workshop or a webinar? Simply invite your folk to a channel and start a conversation. The good thing is you can build your channel in a snap, anytime you want. That comes pretty handy e.g. during workshops or webinars.
You should know that there are two levels of communication tools in Slack: channels and organizations. An organization can hold a number of channels. We also use organizations for specific purposes, e.g. if we want to keep discussions on open source projects separated from other talks. It helps you keep all the channels in order and prevents getting lost in message overload.
Also, Slack is the glue that sticks most of our tools together. We kept using the integrations with tools that have different functions:
- for file storage: Google Drive and Dropbox
- for project progress tracking: Pivotal Tracker, Trello
- for code quality check: CircleCI, GitHub, Code Climate
- for marketing and sales activities: HubSpot
All work and no play… Team building on Slack
What I mentioned above sounds very practical, and it should, but we also have integrations that let us maintain the Netguru spirit of fun and mutual support. Every day, we get a Daily Devops Reaction gif from Tumblr via IFTTT to have a few laughs in the morning. Also, we keep using an internal integration with our Props app. At Netguru, you can thank in a geeky way!
What's more, we can express our emotions with custom emojis :) and the new reactions feature - you can add any emoji under a message as a reaction to it. They work similarly to Facebook likes. During our hackathon, we integrated HipBot as well. It's just another integration that responds to user messages about jokes, weather or whatever you want.
Check out the icons under the post!
Are you tempted to introduce Slack in your company? Great choice! Or maybe you’ve had some experience in using it and want to share your observations? Feel free to drop a line in a comment.