By Radosław Miernik · Published on · Comment on reddit
I’m often told1 (by my peers and clients) that I’m a surprisingly responsive busy person. That’s a compliment for sure, but also something I’m not really doing – it just kinda happens. And as people tend to like it, I decided to sit down and think about what it exactly means to be surprisingly responsive.
Let me paint the scene first: I’m working for a software house. Thus, there’re multiple projects (primarily for different clients) happening at the same time. As a consultant and software architect, I often “start the project”, i.e., audit the existing solution (if there’s any), discuss the requirements, and create a high-level plan that others then follow. At the same time, I’m a long-time tech lead2 in one of our projects.
The day-to-day work of these two roles is absolutely different. The former usually takes less than a week in total and includes a few meetings plus a sprinkle of other communication; most of it is highly organized. The latter is an ongoing work on a living thing, and a need for communication may emerge at any time; there are some fixed parts, but overall it’s more reactive. My highly opinionated definitions would look more or less like this:
Organized communication is the scheduled part – planned meetings, regular updates, and virtually all other procedures you can imagine are here. There’s time to prepare, it’s most likely fine to postpone it if needed, and the expectations are defined upfront (i.e., you know why it’s there).
Reactive communication is the unexpected part – Slack messages, pull requests waiting to be reviewed, suspicious monitoring alerts (e.g., high API response times), and everything else that pops up randomly. These indeed vary in importance and urgency, but you have to put some effort into checking that.
It may look like being responsive has nothing to do with the organized part, but I think it’s not entirely true – the scheduling itself is something that can be done better. Things happen, people can get stuck in a traffic jam, and your favorite cup of tea can suddenly attack your laptop. Letting people know that the schedule has to change is itself reactive but makes you a more organized person. (Or at least being seen as one.)
On the other hand, the reactive part, while being unorganized by nature, can benefit from a small dose of organization. Automatically labeling your emails3, adjusting notification settings of everything4, and making time for replies5 is something you can try out almost immediately. All of these are here to reduce the time you need to decide whether or not you have to react now because…
Being responsive has a cost. I’m still a programmer, and the vast majority of my work requires staying focused. Sure, different tasks have different focus needs, but in general, the more uninterrupted time, the better. Constant context switching can kill both your and your programs’ performance.
Now comes the tricky part. You see, I think I know why being responsive is easy for me: I can answer on Slack while staying focused. “I’ll answer you in an hour.” feels as natural as keyboard shortcuts; so is the “Remind me about this” button6. It basically allows me to postpone the interruptions effortlessly and have some time to make a “checkpoint” I can pick up later.
A couple of years back, every single message ruined my focus, and I had a tough time getting back on track. It was even worse for not code-related tasks because I assumed I’d remember all of that. The fact that it’s better now allows me to say that one can learn it. Of course, I can only speak for my experience, but hey – what did you expect from a blog post? I’m not Marie Kondo!
Not directly, of course, but it does happen on a project retro or some sort of an in-house evaluation. I don’t know if anyone thinks the opposite – if they do, I’ve never heard of it. (If you, Reader, are such a person – let me know!)
Naming things is hard and tends to differ between companies. I used the term “tech lead” as we use it internally, but both “team lead” and “lead engineer” are perfectly valid for this role.
At the time of writing, I have 41 email labels and 22 rules that apply them. All of them are really basic and rely only on the sender or title. Overall they cover about 95% of a roughly hundred emails I get each week.
Start with checking your system settings – if there are any apps you don’t really want notifications from, just remove them, then optimize as you go. Whenever a notification pops up, decide whether it helped you. You can mute this pesky Slack channel but set a reminder to check it from time to time. The same goes for your phone and other essential but not urgent things.
If you have a hard time catching up with important but not urgent things, you can try making an “alone meeting” out of it. Add it to your calendar too, so others can see not to bother you at that time. I basically use my calendar as a to-do list – if I have to do something, I’ll create an event for that and write down everything I need to pick it up (links, initial thoughts, etc.), just like a sticky note.
I actually checked, and it looks like I make around twenty reminders on Slack and four in the calendar each workday. On top of that, there’s my personal and university stuff. Boy, if Google Calendar or Slack is down, I have a problem…