đ Hello!
Welcome to the second edition of High Growth Engineering. Today, weâll be discussing the Searchable Log of All Conversation and Knowledge. AKA, Slack!
But first, a quick refresher on what I write about for those that are new here.
The goal of this newsletter is to discuss techniques for building better software and being more effective in high growth companies. I mix in longer form content â think a short blog post that you could read in 5 minutes â with some of my favourite links.
Last week, I covered how to write better proposals. If you subscribe, youâll receive weekly posts from me on topics such as:
Techniques for testing in production
Estimating the payoff of work
Writing maintainable software under time constraints
Project management and prioritisation as an engineer
Right â to Slack, we ride!
Taming Slack
Slack has become the de facto way that startups communicate with each other. And people have opinions about it.
Used well, itâs an effective source of human and machine collaboration. Youâre able to quickly collaborate with colleagues. Itâs clear what you have to do, and when. And most importantly, you can blow off steam with puppy GIFs, or Pokemon battles.
Untamed and unstructured, youâre drinking from a firehose. Youâre spinning multiple plates in different channels, aiming to get context, and getting nothing else done as a result. Why have I been tagged in 20 threads, when I just went to get a cup of coffee? Why canât we just go back to email? I empathise â really, I do.
I can help. Thereâs a few small things that you can do to make you more productive, and improve how your team and company use it. Most of these tips are picked up from how we use Slack to run a bank at Monzo. Weâre not perfect users of Slack, but I think weâre doing pretty good.
As a result, this advice skews towards companies that have 100+ users, but most parts are relevant for all. Letâs go! đ
Think forums, not chatrooms
When people use Slack for the first time, they think âCool! Chatrooms!â. It looks like a chatroom. It feels like one. Until 2018, they had an IRC gateway so you could use it like one.
I think this is the wrong way to view Slack.
Slack works best when you view it as a forum: a grouping of (hopefully) high quality thoughtful posts, with other related posts attached in a thread. Discussion within threads is moderated so you stay on topic. Threads form part of a sub-forum â a channel.
The product experience doesnât always push you in this direction, but itâs helpful to internalise.
Turn off notifications đ
First, Slack should not be used as a time-sensitive method of communication. Second, if other people want your synchronous attention, you are not beholden to give it to them. I donât think I need to explain myself further.
Please, for the love of god, use threads
Threads are the only way of maintaining sanity and order in companies of any reasonable scale (30-50+). Otherwise, a channel degrades into a stream of seemingly unrelated posts.
Itâs simple. Create a thread per topic you want to discuss. Ask for responses in that thread. Police this consistently.
The only exceptions are:
Very small channels. These essentially function as public DMs.
Channels that are designated for responding to events where a live stream of messages is desired. For example, a channel designated for employees to talk during a company All Hands.
This is the 80/20 payoff. No other tips I provide here will bear fruit unless you do this.
Semantic emoji đ
An emoji is defined as:
A small digital image or symbol used in electronic communication to convey an idea or feeling.
Semantic emoji are emoji that convey some larger message, based on common understand of what the emoji represents. It doesnât really matter what emoji you use â just that you have clear agreement on what it means.
Hereâs some of the most useful that I can think of:
đŁ - an announcement.
đ´ - urgent action is required on this post. Optionally tag the folks that you require action from.
â - A question that isnât blocking the person asking it from progressing.
â- A question that is the person asking it from progressing, and should be answered quickly.
â - react with this when a question has been answered, and no further action is needed. It stops people needing to go into the thread to determine whether they need to help. It can also be used as a very basic task manager for âhelpâ channels: for example, #payroll-questions.
:headsup: - I canât show the emoji, unfortunately. But use this to give people a heads-up that something is happening.
Semantic emoji are very powerful. You can scan a list of messages, and quickly gain context on whatâs required. Is it urgent? Has it already been answered or decided? This saves time and mental energy.
Invest time in writing clear posts âď¸
A simple, but important tip. Many Slack posts are about requesting others to do something for you. Spend the extra couple of minutes writing a clear post that clearly highlights:
What youâd like them to do.
The timeframes youâd like them to do it on.
What youâll do by default if they donât respond, or any negative consequences.
Letâs see this in action. Hereâs a poor post.
The moustachioed gentleman:
Doesnât link to the doc in question, meaning folks have to scroll around and try and find it. A one time cost for the writer is now a O(feedback givers) cost.
Tags everyone in the channel, when itâs probably only relevant to a subset.
Doesnât provide any timeframes on when theyâd like feedback.
Letâs have a quiet word with him, and see if we can improve the situation.
Said gentleman now:
Uses markdown formatting to logically break up the post into sub-sections.
Highlights a sub-set of folks that he needs attention from, and tags others simply to keep them in the loop.
Uses emojis, because why not.
This is much clearer to read, took approximately 3 minutes to write, and will help others give you what you want.
Edit posts to provide âliveâ updates
Slack allows you to edit posts, and for updates to instantly appear. This can be useful when you want to update others on the status of a live event.
For example, say youâre migrating from one system to the other over the space of a few hours. Create a Slack post that shows your rollout checklist, with all actions set to â. As you complete actions on your rollout, edit the post to set each one to â .
This allows others to follow along, and allows you to concentrate on the job at hand without needing to provide constant status updates.
Have âpublicâ and âprivateâ channels
Much like public and private code in modules, you can do the same with Slack channels.
âPublicâ channels are the public interface of the squad, where updates are shared and questions can be asked.
âPrivateâ channels are the private interface of the squad, where they can share early ideas, coordinate between members, and share cat gifs.
Both channels are made public and are free to view by all. This means that teams can talk âprivately in publicâ, without fear that others from outside will criticise early ideas, whilst maintaining organisational transparency.
You can do this with a naming convention: e.g. #growth and #growth-squad.
Use naming conventions for channels
As mentioned above, semantic meaning can be ascribed to channels based on naming conventions. Some other useful ones:
#tmp-project-zeus: use #tmp before the channel name to highlight that it is ephemeral. This might be for short lived projects.
#helpdesk-ask: use the #ask suffix to make it clear that this is a channel for asking questions and getting answers. These are commonly used for teams that service other teams such as People, IT, and so on.
#private-channel-priv: suffixing with #priv makes it clear to those in the channel that it is private.
Group channels together đ
Slack has recently added the ability to group channels together in the sidebar. This is really handy. The way I use them is that I group channels together based on topic. I then order the groups in priority order. This means whenever I want to look at Slack, I start at the top, and work down. Hereâs my current groupings at work.
đĄHandy tip for when youâre sick of reading: press Option+Click to collapse all groups down.
This technique has helped me be OK with leaving large chunks of Slack unread for a long time, knowing that Iâm always looking at the highest priority things.
Best of the internet đ
Every week, I collate some of my favourite links to share. Found something cool, or built something great? Send it to me by replying to this email and I might include it in the next edition. đ§
BLUF: The Military Standard That Can Make Your Writing More Powerful - Jan-Erik Asplund
BLUF stands for âbottom line up frontâ. Itâs a technique that you can use to write more clearly by putting the most important details first. If you were interested in the tips I gave on writing clear posts, this oneâs for you.
How to Slack - Martin Konicek
This is from an engineer that used to work at Monzo. He espouses many of the things I recommend here, but he wrote it a couple of years earlier đ
[]byte versus io.Reader - Phil Pearl
In addition to being the most excellent engineer Iâve ever worked with, Phil is a great writer. Here, he takes us through the cost of the common io.Reader abstraction in Go. if youâre a performance nut, this is a great, quick dive into benchmarking and speeding up code. Make sure you read his other posts as well: they are gold.
AI for Full-Self Driving - Andrej Karpathy
As with last week, not particularly relevant to the topic discussed, but one of my favourite technical talks of recent times.
Andrej walks through the progress theyâre making on full-self driving. The most interesting aspect to me is how theyâve built a system for continuous improvement through human labellers, and pushing newer models down to the cars to bootstrap knowledge on areas theyâre less confident about.
I spent years working in a machine learning focused company at Ravelin, and I thought we were pretty good at it. What the Tesla folks are doing is next-level. Perhaps one day Iâll be able to afford one. đ°
Thatâs all from this weekâs High Growth Engineering! If you enjoyed it, Iâd really appreciate it if you could do one of the following:
Share it with a friend that would find it useful.
Subscribe: just enter your email below.
Want to have your say on what I write about next? Just hit reply.
Speak soon,
Stephen