š Get more productivity, fewer distractions from Slack; Reduce tech debt by automating dependency updates
How to make Slack and automation work for YOU, not the other way around.
Using Slack Effectively
Slack is a wonderfully beneficial tool for productivity, team communication, and even automation. But it can be both incredibly distracting and a lot of noise! š„
Senior engineers constantly iterate on and improve their workflows, how they spend their time, and how information flows to and from them. Here are ways you can Be A Senior and use Slack effectively to both improve communication and minimize distraction:
Improve Communication
Default to using Channels. Channels allow more participants and make content more accessible both immediately and long-term. It keeps discussions relevant to a single topic in one place instead of spread out among DMs. And it doesnāt disrupt others from their focus, if theyāve followed my advice below about minimizing distractions. š
Make more channels. Do you have 50 engineers all posting about their projects in the #engineering channel? I have a hug and a shoulder to cry on waiting for you if so. Create channels for teams, projects, and even one-off situations. š How to organize your slack channels.
Use private channels. Some conversations are naturally more sensitive, but are still relevant to work and not private matters. Private channels have all the same benefits while limiting access. This is especially useful when you need to add someone new, as theyāll have access to the channelās history right away.
Use threads. Threads allow multiple conversations to happen in parallel without overwhelming a channel, and are easier to reference later. Be careful letting a thread get too long or diverge from its origins; create another thread if that happens.
Add useful integrations. Share build pipeline updates. Auto-link Jira tickets. Update your status automatically when meetings on your calendar begin. Be notified when youāre assigned to something. Trigger automations right from Slack. The options are endless.
Share info through statuses and reactions. Who knew emoji could be so damn useful? Update your status when focusing or away from your desk. React with š when looking into a question. Mark your own question with ā when answered. These small bits of communication are incredibly useful to others, and add up to a lot of time saved.
Try not to post rapidly. This one is more important when direct messaging someone, but can apply to channels and threads, too. Donāt say āHiā and then write a novel, or send 5-10 rapid lines of mind dump. Make your first post a full thought. Donāt take someoneās attention then make them wait.
Write well with proper grammar and spelling. Iāll admit this one is a lot of personal opinion and standard. I have a hard time reading shortcut-style text with words replaced with letters and a lack of punctuation. I also wonāt take you as seriously if you write like that, even if youāre a great developer. Kind of like dressing nicely for an interview, the way you write makes an impression.
Minimizing Distractions
Use notifications for DMs, mentions, and keywords. Donāt use notifications for everything, ever.
Turn off āInclude a preview of the message in each notificationā. This keeps you from reading whatever the message is about and switching contexts even further, and helps with privacy when sharing your screen or someoneās looking over your shoulder.
Use Do Not Disturb mode often. Think of it like closing your door and putting your headphones on ā this is your time, and people should leave you alone. Set your Slack status to āFocus Modeā or āHeads Downā, turn DND on, and focus.
Adjust notifications at the channel level. Sometimes one specific channel is noisy, or you canāt convince someone to stop using @here every time they post (I hate them, too š¤¬).
Unsubscribe from threads. Sometimes you donāt need to keep up with a thread you participated in. Hover over the original post, click the three dots, and choose āTurn off notifications for repliesā.
Donāt let these notifications take over your life like this guy:
Automated Dependency Updates
Technical debt comes in many forms. One form youāre probably familiar with is outdated third-party dependencies. They can be a huge chore to maintain and update, and rarely are you bestowed the time to do so.
How does a Senior approach convincing the company to give devs the time?
First, you have to communicate the issue in business value rather than technical.
Donāt ā
You: āWe need time to update these packages.ā
Them: āWhy? Are they broken?ā
You: āNoā¦ā
Them: āOkay then we donāt need to. This feature takes priority.ā
Do ā
You: āWe have packages our software depends on that are out of date. These old versions have security vulnerabilities and bugs that have since been patched. If we avoid updating now, our app is open to security risks, and updating later will be a larger undertaking that could risk more bugs or even downtime.ā
Them: āYikes! Letās do that now. How long will it take?ā
By expressing the value in terms of business, youāre more likely to get buy-in from the decision makers. But that last question is still a tough one ā how long will it take? This wonāt be the only time you do dependency maintenance, either. Will it take that long every time? You need a plan.
Automation to the rescue! š
Automated dependency updating software tracks your projectās dependencies, identifies when new versions have been released, and creates pull requests with the updated versions automatically.
This flow has big wins for you and the business:
Engineers donāt have to spend time on the tedious parts, allowing them to focus on more impactful work
Each dependency update is small, taking minimal time and effort
Dependencies donāt go stale, preventing security risks
Can be implemented relatively quickly
However, there are still some considerations and potential trade-offs:
In order to reduce engineer work as much as possible, you should have a mature delivery pipeline with a large amount of test coverage. Otherwise it will still be a manual testing effort.
If you arenāt doing continuous delivery, you risk rolling back a release full of features due to a bug not found in an automated update
Having a lot of projects (e.g. a large microservice ecosystem) could result in a lot of automated PR noise
Automating some dependency management makes it easier to forget about the non-automated stuff
At the very least, being notified when a dependency update is available and reducing the amount of work needed to test and merge it is a win for your team.
Here are some solutions to consider:
Coming Up
š¤ How to quickly make (reasonably) good decisions
š„ Creating a third entity instead of using a join table
Thatās all for today! Not enough Happenings happened or Findings found. See what I did there? (āā½ā)
Have you been enjoying the two-subject format lately? Hit reply and shoot me your thoughts and advice.
Aken š