Keeping Our Ducks Aligned With Slack
A lot of remote teams start using Slack as a watering hole for getting everyone together to discuss what's going on and what'll happen next. Having all of these discussions happening in the #general channel is way too noisy. So teams start creating a bunch of random channels devoted to a specific purpose. Here are some of the channels we have at Hacker Noon.
- #analytics - We talk about stats, KPIs and really anything we can easily quantify that correlates to the success of HN.
- #aroundtheweb - Easy way for us to gather discussions about HN from any random corner of the internet.
- #backend - Talk about how we build and maintain our infrastructure.
- #community - Where we talk about supporting and developing our community forum.
- #design - Discussion about how we can incorporate more blindingly green pixels into our work without actually blinding users.
- #distribution - How do we promote our author's stories to give them a broader reader base?
- #editorial - Discussion about how our editorial team can help take story submissions and release them into the wild.
- #emails - Discussion about newsletters and emails we're sending to users based on their activity.
- #frontend - Talk about how we can iterate on our product to make it more usable and enjoyable.
- #git - Raw feed of new releases.
- #jobs - Hiring related discussion goes here.
- #progress - Where we keep the team updated on what's new.
- #protips - Space where we share tips and tricks.
- #product - Where we talk about the product direction and challenges we're facing.
- #techsupport - Where we fix bugs.
- #testing - Where we monitor the status of our tests.
The above list is really only a sample of our channels. As you might notice, it's natural to organize channels based on a function within the organization. If a few people start working together on something, they'll either DM or start a new channel to keep organized.
Overall, I think this type of setup is pretty natural and I don't really have a problem with it. But I do feel that something is missing from this setup and I'd like to talk about the problem and a potential solution.
When we organize our communication by function, people become fixated on their immediate responsibilities, but detached from how their work fits into the bigger picture.
This detachment tends to get people thinking about how they can solve problems limited to the domain they have authority over. The result is often a prioritization of developer/designer problems over user problems.
When user problems aren't a priority, teams tend to invest way too much energy scaling up things that aren't needed.
It's like building a massive dog house with every amenity your dog could ever need...then finding out your dog prefers to sleep on the porch. What a colossal waste of time and money. You could have just bought a comfortable mat and Rover would have been much happier.
It's absolutely critical to spend time daily talking about what your users actually need. Otherwise, your team is going to be stressed out building dog houses for no good reason.
In the above list of Slack channels, we're not 100% silo'ing ourselves by how we organize our communication by function. A few of the channels, such as #product, are setup to talk about the big picture. But these channels are often detached from the actual work being done and are often neglected.
So we're going to try reorganizing a few of our Slack channels to hopefully inspire more user-centric discussion and hopefully break down a few of our self imposed silos.
1. We're removing a few channels such as #design, #frontend, and #backend. No more watering holes for people to organize purely based on their function.
2. We'll introduce and phase out channels based on bigger cross-functional milestones. For example, we're working on annotations functionality and have a temporary #annotations channel. This brings together designers, developers, marketers, and whoever else is interested in contributing. This gets people talking about the problem we're trying to solve.
3. We're changing up how we think about the #product channel to make it more of a central focus for everyone on the team. To achieve this, we're introducing a few new product channels that more closely map to our development process. 👇👇👇
Instead of building a timeline of things we plan to build, we've got a funnel. At the top, we've got a list of things we're thinking about building. The middle is for various stages of projects in progress. And the bottom is for deploying projects into the wild.
Here are the current stages and the associated Slack channels:
Discussion Stage: #product
At this stage, we're just talking about the product. Discussion should inspire ideas about things we can do to better solve problems for our users.
Idea Stage: #product-ideas
When we've developed a theory about something that has the potential to improve Hacker Noon, We post and pin an idea in this channel for further discussion. At this stage, 3 things can happen.
- We immediately decide to build it. This usually happens because the value is clear and we know what needs to happen to make it a reality. In this case we fast track it past the next stage and jumps to the Delivery Stage.
- We decide the idea isn't worth investing in right now.
- We think the idea is valuable but needs to be validated before we invest energy building it. In this case, it moves to the Discovery Stage.
Discovery Stage: #product-opportunities
This is for ideas we're actively exploring. Here we'll usually prototype concepts to share with the team or users. Once we're confident that a design or prototype is worth building, we'll created a pinned post in the #product-opportunities channel. This thread should include all the deliverables needed to move onto the next stage.
Delivery Stage: #product-progress
This is where active development work is happening to either introduce new features or make changes to existing features. Once a change is complete and in production, we'll add a post to the #product-progress channel so everyone is aware of what is changing.
Results Stage: #product-results
Once we deliver a feature/change that we want to track, we should create a pinned thread in #product-results that details what we'd like to learn from the change. Maybe we're interested in seeing how the change impacts engagement, we might want to monitor cost/performance, or maybe we'd like to get qualitative feedback from users.
A lot of people view Slack as a distraction that just gets in the way of real work from getting done. It certainly can have that effect if you aren't careful. Slack can also be a tool that reinforces silos and discourages collaboration.
Slack can also be an invaluable tool that helps people work together to bring ideas to life. It's just not possible to get the same level of communication through emails, meetings, and other traditional means. A little organization along with a little discipline can go a long way.
Subscribe to get your daily round-up of top tech stories!