https://twitter.com/practicingdev/status/809119507474157569
A main benefit of remote work is asynchronicity. Limit scheduled live meetings to 5% or less of your work time.
To eliminate live meetings, communicate via artifacts. Documentation, wiki, blogging, spikes, prototype, async code review, etc.
Try to adopt a nonlinear planning/exploration workflow, so that by the time production work begins you have few blockers.
Pay close attention to feedback loops. Don’t bury your coworkers / managers /clients in work-in-progress that needs review.
Assume that no one else knows what is on your plate. I Regularly recap and summarize as part of decision making discussions.
A phone call, video chat, or on site visit is a mutex lock. Good for when you need to get things in sync, harmful blocker otherwise.
If you are not good at technical writing and don’t plan to improve, only hope is communicating through shipped demos.
Designing/planning by “talking it out” barely works face to face. Remote work eliminates any benefits it does have.
Remote pairing sucks. Similar results can be achieved w. some tweaks to workflow, but just using screen sharing is terrible.
Remote pairing breaks your asyncronous benefits, so any use of it needs to overcome that cost.
A good form of remote collaboration is asking someone to write a tutorial or share code samples for something you need to learn.
A remote org should treat their internal knowledgebase, infrastructure, etc. as a competitive advantage and develop it continuously.
Don’t force outside world to use your preferred communication tools. Most people don’t want to be in your Slack, Basecamp, etc.
You aren’t seeing your coworkers, collaborators, etc day to day. Make each interaction reflect a positive, service oriented mindset. Don’t go into remote work expecting social interactions to be similar to onsite work. Embrace social opportunities outside of work.
Make sure to spend at least some time talking to humans face to face. Otherwise you will get rusty at it, but I and it becomes scary.
Take advantage of a flexible work schedule! Don’t force yourself into typical office hours unless it’s optimal for you.
Spend more time interacting w. the outside world than you do w. your team. Bring the best of what you learn back inhouse.
Do not use text-based communication when feeling emotional. Do use it when calm to work through tough decisions.
When in conflict w. someone else, arrange in person meeting if possible. Otherwise, use video chat.