If you ever have to lead a remote dev team...

4 min read Original article ↗
Cover image for If you ever have to lead a remote dev team...

For those developers who suddenly have to lead a remote team and answer to stakeholders, I compiled a checklist that you and your teammates can follow to have a simple, transparent, predictable and frictionless workflow.

I spend my years managing remote development teams. Either you work on a client's project or a startup, any workflow stands on three pillars:

  1. Communication
  2. Task management
  3. Time management

To master those, we need frameworks and tools as simple as possible to get the job done without distracting you from creating the product. While I describe some frameworks below, I suggest you stick with Slack and Trello for communications. Harvest (teams of 5+, paid) or Toggl (5–, free) is the best if you're required to provide timesheets or you want to make a point.


Communication

  1. Use channels, avoid direct messages. This makes your chats transparent. With more than two folks on a project, you don't want to get in the "gosh, we forgot to tell this to everybody else" situation.
  2. Start a thread to discuss a particular issue. Mention only those who need to participate. Two points here: threads make channels much cleaner; you don't distract anyone who's not directly involved in the discussion, yet preserving their access to information.
  3. Wisely add integrations with other instruments like Github, Trello, and Sentry to have anchor points in discussions.
  4. Slack resembles an open space working environment. And yes, you require quality time alone. It's ok to turn off the app, but make sure that everybody knows how to reach you via phone or your personal messenger (btw, never continue work conversations there, return to Slack). And, never leave Slack when there is an ASAP situation.

Task management

  1. Team leader special: subscribe to the boards, so you don't miss important messages and the big picture of your project. By subscribing, you allow Trello to send you notifications via email. Don't check your email on every inbox message, look through notifications during your everyday zero inbox routine and make sure (buy manually archiving each email) that you don't miss anything important.
  2. Here's my framework: make lists and describe tasks in cards. Make the priority cards top your lists. Then, take tasks from the top left and start moving them to the right. TODO → IN PROGRESS → TEST → RETURNED FROM TEST → IN PROGRESS → TEST → READY TO PRODUCTION → DONE
  3. Decompose tasks into subtasks: create "Frontend," "Backend," "Markup," "Questions," "Etc" checklists. You might want to split large tasks into smaller ones. Completing each small task provides its separate value, like, you can deploy a subset of features to production.
  4. Deadlines, if added as due dates, are real. If you're not sure that you can make it, then move a deadline, so everybody can see it and act accordingly. Don't forget that it can take a couple of extra days to test, fix bugs, and deploy a feature to production.
  5. Learn a few hotkeys (hit shift + ? in Trello).
  6. Use color labels to differentiate tasks. This helps you evaluate progress and balance the team load visually. You can invent your own system or use mine: Backend, Frontend, Bug, ASAP, Non-tech​, Tech debt, Design, Tech special, Discuss, Temp mark.

Time management

(optional, depends on circumstances)

  1. Install time tracker browser extensions and desktop apps. Assign a hotkey for popping up a desktop app.
  2. Track everything related to work: coding, fixing, refactoring, discussing, thinking, reading, etc.
  3. Track time from Trello cards (via the browser extension), so your records get attached to the tasks (useful for analyzing and reporting).
  4. No card to track? Create a new card (for example: “Update dependencies”), so the task can be visible, testable and trackable. In some cases (like general talk about the project) just track the project's overall time.
  5. Track honestly. Tea time, side chat? Pause. Forget to stop? Correct later. But never track time post factum.

That's how, after much back and forth, I manage remote teams. The goal here is not becoming a control nazi but ensuring the transparency of the processes and availability of information to achieve the comforting work-life balance.

Hope this post will help you avoid mistakes. Share it with your teammates if you like it. :-)