Our first post on “tools we use” (Trello & Google Docs for product management) was so popular we’d figured we’d do another one. As with Trello, this major internal process was introduced to UserVoice while I was on vacation 🙂
This time we’re focusing on what’s arguably the application the UserVoice team spends the most time in: HipChat.
Technically HipChat is a hosted chat service, but for us HipChat truly is our (digital) office. Since we now have team members spread across two offices on opposite sides of the country it’s important to have a space where everyone can be in the same room even if it’s a digital one. In the various rooms we discuss what we’re working on, have meetings, and of course shoot the shit. We’ve also customized some of the team rooms with automated notifications that help the folks in that room do their job.
So before we jump into lessons learned as we’ve shifted the furniture of our digital office around, let’s first take you on a virtual office tour of our various HipChat rooms.
Virtual “Office” Tour
Our less business-focused, more employee-focused spaces.
This is the hangout where people trade jokes, post the latest cat pictures, and generally toe the line on what HR would approve of (more on that in a minute).
- New Kudos – Every time someone gets a Kudos from a satisfied customer in our UserVoice Helpdesk, we push it to this room with our HipChat service hook. We originally pushed Kudos notifications to Support room only, but recently had those moved to the global team room. It’s a great way to celebrate the work of our support team company-wide, which we think is key to making the job of customer support not suck.
Team SF & Team Raleigh
There are also separate team rooms for each physical office which are used to discuss things – like where people want to go for lunch – which aren’t really relevant to folks on the other side of the country.
Functional Team Rooms
These are rooms for specific functional teams. Only the members of that team are to be in those rooms. A lot of these are self-explanatory but it is interesting to note any automated alerts piped into some rooms.
Design, Marketing, Accounts (aka Sales)
Each of these rooms are fairly self-explanatory.
Outside of discussing random issues people are running into it’s also where we do our stand-ups on Tuesdays and Thursdays, our quiet days (quiet days are where internal meetings are forbidden and you’re encouraged to WFH or not distract your neighbor; we use Skype on MWF).
- Deployments – Did someone just start to deploy new code to staging or production? Is that deploy finished? (less important now with deploy locks)
- Continuous Integration (Jenkins) – Did the someone break the build?
- Airbrake Errors – Was there an application error on any of our deployed environments? Know immediately along with a git blame of who’s responsible for it and link to stacktrace.
Primarily for discussing upcoming projects and specs. Inhabited by our product leaders: PM, Lead Engineer, Head of UX, CEO, etc.
- UserVoice Feedback activity – Using our HipChat integration, we pipe in all new ideas, comments, and status updates on any of our UserVoice forums.
Our busiest room. Support folks + dev-on-call discuss any questions related to customer support tickets. The sales team is also present, so they can get help from the support team and be aware of any issues.
Ad-hoc / Temporary rooms
The nice thing about a digital office is that it’s easy to spin up a new room for things like:
New Product / Feature Launches
Whoever is running a bigger launch (something with blog posts and PR behind it) invites participating team members to the room. This is typically a cross-functional audience of PM, Marketing, whoever is running the deploy (if there is one, hopefully we’re just flipping a feature flag) or the engineer who built said thing (which is usually the same person), and someone from the customer team.
Did someone just deploy something they shouldn’t? Did the database server just die? Did someone start a flame war with our CEO on Twitter? We’ll raise the digital war room to discuss.
That’s it! Pretty straightforward. Now to the good stuff.
On Minimizing Distractions
Keep 1-on-1 conversations out of chat rooms.
HipChat has 1:1 chat built-in (no need to use another service), so it’s easy to take these conversations out of group chat rooms.
Avoid the usage of @all
Why? Because it’s really distracting and often you don’t truly need to notify everyone. If you do have to use it hopefully you do it in the most relevant team room (this is also why we make sure people don’t hover in all rooms so if you do @all only people that truly need to see it will). We also have a team email list for things that aren’t time-sensitive.
It’s okay to log off
If you need to get heads down on something (especially on a quiet day) it’s perfectly okay to log off to minimize distractions. We’ve even looked at kicking people out of the team room on quiet days but we haven’t done it consistently.
Limiting the number of notifications
Live notifications are great but alerts might not be ideal for all rooms.
For example, while our Engineering room receives alerts for Deploy notifications, the support team requested removing alerts for new knowledge base articles from the Support room, and completely removing events for new tickets and ticket replies. Support room is probably our most active room — with support agents and other team members constantly discussing issues. Frequent alerts in this room interfered with those conversations and were regarded as a distraction (and the team is always in the ticket queue anyway).
Have a dedicated space to discuss support issues away from the engineers
Initially, there was no Support room, and support staff posted technical questions in our Engineering room. At this time we also didn’t have a dev-on-call, so questions were not aimed at anyone in particular. This quickly turned out to be a huge distraction as more than one person would start investigating the issue right away. Having a designated dev-on-call who works with support inquiries of the week, and limiting support questions to support room only reduced the number of distractions for our engineering team.
Avoid having rooms for cliques
We’ve had people spin up rooms for them and their closest work buddies. This happened because as the team grew some people felt they couldn’t “be themselves” without potentially offending other folks so they wanted a new place to hang out in. This is now not allowed because we feel it takes away from the banter & energy in Team and starts to create cliques. This lead to another issue (see below).
What’s “appropriate” for the @team room.
Figuring out what is appropriate conversation is much trickier in a startup environment. So far we seem to have naturally become less frat-house-y, but that doesn’t mean that folks don’t still get offended. So far we’re basically self-moderating, but at some point there may need to be official rules in place. It’s probably the most fragile part of this setup, since folks don’t always think before they chat.
Fostering Better Communication
Make sure that if you need something you @mention someone
If you don’t mention someone then you’re essentially saying “I hope someone sees this but if not then that’s okay too”…you could just be talking to yourself. If you actually need to talk to someone, you @mention them. If you’re not sure who to @mention, try one person first and then another person if that doesn’t work out. Avoid @mentioning multiple people at once if it’s possible you only need 1 of them.
Never report bugs in chat rooms.
Proper channel for reporting bugs is our bug tracking system (Trello). This rule is hard to obey 🙂 People still often pop into one of the rooms and share their excitement of finding a tricky bug.
Use away statuses
If you’re away from your desk (lunch, meeting) or busy (phone call), update your status to Away or Busy so that people are aware that you might not respond soon.
Requests for feedback on big things should be done via email
Chat rooms are great for collaborating with co-workers who are currently working on the same project as you (or are expecting your interruptions). It’s quicker than email and probably the next most “natural” mode of conversation after phone call. However, chat is a bad idea if you’re simply seeking feedback on a project you’re currently working on (unless it requires immediate attention). Email is probably a better channel to ask for feedback.
Not a place for heated debates.
Hipchat is good for information transfer, but (as with any textual web medium) it can get pretty heated during a debate, with no physical cues to work off of. If something is controversial, it probably needs to be taken offline.
Just do it
The biggest lesson learned was that the best way to enact big change like this, for us, is to just do it. The team signed up, sent the link around, and within a day said “ok, this is the new spot”. It threw me for a bit of a loop when I got back from vacation, but it avoided the awkwardness of official discussion, debating, etc.
Is HipChat right for you? That’s going to be very determined by your company culture, number of employees, locations, etc. We’ve found it a great way to stay connected to our teams and our customers, and I hope this post will help you if your team decides to give it a try.
Phone can photo courtesy of Sebastien Wiertz