About 1.5 hrs
- 12 min for Survey of Remote Workers blog post
- 13 min for 10 tips for Productive Remote Work video
- 20 min to Read over Lesson
- 20 min for Group Practice
- 10 min for Independent Practice
- 15 min for Check for Understanding
Here are some topics that should be reviewed before this topic:
The term "working remotely" simply means that an employee is working outside of a traditional office environment. The number of companies that are allowing remote work has been steadily increasing. In some cases, remote work is done full-time, and in others, just one to a few days a week. Similarly, collaborating remotely means working with others without meeting face to face.
- Both working and collaborating remotely is a mainstay in software development
- Remote work sometimes presents unanticipated personal challenges
- Remote work and collaboration comes with a set of tools that a new developer might have to learn quickly
- Remote work and collaboration brings up professional obstacles that may not occur in a traditional office
Participants will be able to:
- Understand what remote work is with a guide to help them succeed
- Understand the pros and cons of remote work
- Understand the additional responsibilities that come along with remote work
- Understand the importance of communication and culture in a remote environment
- Understand the tools involved in remote work
- Take home tips on how to stay productive and be professional
- Myths vs. reality about the remote lifestyle
- Ergonomics at home
- Communicating online
- Tools for pairing remotely
- Being visible for professional growth
- Confidentiality
- Work/Life balance
- Time management and productivity
- Fitting into team culture
- Asking questions
Remote work is defined as working offsite from a traditional office. Remote collaboration is defined as working with at least one person who is physically at another site, independent of whether the sites are within a traditional office setting. Both present both pros and cons. For example, some pros would be that remote collaboration saves both the employees and the company the costs of travel time, and remote work saves the employee the costs of commuting and the company the costs of office space. However, both remote collaboration and remote work lose the benefits of interpersonal communication that can take place when everyone involved is in closer proximity. The cons are exemplified in the first minute and a half of this video on the remote work revolution, where the speaker notes the following quote:
1995: The information superhighway will mean anyone can do anything from anywhere
2015: must be willing to relocate to San Francisco
The quote references a job posting by a tech company that produces software for remote collaboration! It appears they prefer their workers onsite! Because many companies are testing the value of remote work and there is a lack of visual interactions between coworkers, one must be mindful of how to navigate remote work and collaboration professionally and how to optimize the use of the tools available for professional growth.
- Work/Life balance - As shown in the "2019 Survey of Remote Workers" blog post, one of the main struggles for remote workers is disconnecting from work. When work and life begin to mix together it is very important to have:
- A dedicated area(s) for your work
- A set of rituals that are done before and after work - such as getting dressed as if going into the office and walking around the block for a "commute" before sitting down at your workstation
- A separate computer or account to separate work from personal computer time
- A discussion about expectations with family or roommates regarding your work time, and a plan as to when and how to interact with others that share the same household
- Time management and productivity - Another struggle closely related to work/life balance is time management. As opposed to being around others in a traditional office, there are no social queues for break and lunch times and an environment where you see everyone quiet and working. Tips:
- Have a clean and uncluttered work area
- Set a specific weekly and daily schedule for work time
- Plan your day with a task list
- Use tools like Pomodoros and timers. Some suggestions for your laptops/devices are the simple AS Timer and the Be Focused timer, which has more features. For sharing online for teamwork, the web-based MarinaraTimer is also quite handy
- Make your own Kanban board for micromanaging smaller parts of your tickets
- Avoid "busy work" and focus on your assignments
- Turn off unimportant notifications and leave the TV for "life" hours
- Block time to get in the coding zone. List your other todos that aren't immediate and block time for those separately
- A proper diet - one can keep a journal and monitor their energy levels according to what they eat to see what's best
- Plan meals - set a specific lunchtime as opposed to snacking
- Exercise - many tech jobs are completely sedentary. Exercise can boost productivity and morale
- Ergonomics - Just like any other working situation, it is vitally important to maintain good ergonomics while working remotely. However, the responsibility will likely be on you, the maintainer of your working space, to take the lead on either assessing your workstation or working with a supervisor or HR to have someone from your business do it
- If you are responsible for doing your own assessment, carefully go over our ergonomic materials and make a list of issues and equipment to address those issues.
- Determine with HR/Supervisor who will be paying for equipment. If it is your company, you will need to follow their recommendations. If it is you, review or keep your receipts for potential tax purposes.
- Carefully research ergonomic choices, and if at all possible, find a way to test chairs and desks. In the Bay Area, you can try Interior Motions, Arranged4Comfort, or The Chair Place
- The most important thing is to proactively set your workstation up to take care of your body. During the work day, listen to your body. Any unexpected pain or numbness is an indicator to reassess your workstation and make adjustments
- Maintaining proper ergonomics is a preventative measure. If you wait until you are in pain; it may be too late to recover without medical intervention, which can be both costly and time-consuming. Further, maintaining a long, successful career without a healthy neck, back, arms, hands, and wrists will be very difficult
- Kanban and Scrum - While tools for these methods are prevalent in software development, many companies that maintain a traditional office may not use them, but they are very likely to be a part of a remote working environment. A challenge with these is that you simply can't repetitively lean over to the person next to you and ask "How do I configure X?" Thus, it's important to:
- Know you will have to get up to speed with these tools quickly
- Ask what the tools are before your first day to give you additional time to look up tutorials or documentation
- Version Control System (VCS) - While you have used GitHub, it isn't the only VCS host out there, and some VCSs are not Git-based. Furthermore, some are integrated with project management software such as Jira:
- Git-based includes: GitHub, GitLab, Bitbucket
- Others include: Subversion (SVN), Mercurial
-
Communicating online - Obviously, if you are working remotely, you won’t only be communicating by email. It is imperative that you become familiar with the etiquette or “netiquette” when working online and remain professional during web conferencing.
- Every message, email, or call to
@here
on Slack can disturb people’s work, so it’s important to plan your communication - Do people email after hours? Until you find out, try to send anything outside of normal working hours through scheduled send
- In a remote environment, messages that are text only won’t have the social context that one would have if speaking with someone where they can see them, so use care in crafting your email and messages
- It pays to be explicit, not implicit, so that the other people you are communicating with know what you intend
- For video conferencing, download and try the software ahead of time. You don’t want updates to make you late for your first meeting
- Assume the video and audio are on when you log in, and reduce distracting noises beforehand
- Look professional and wear professional clothing, both for presence, but also in case you have to suddenly run out of the room. Leave the camera on so people get to know you
- Every message, email, or call to
-
Pairing remotely - Besides web conferencing tools like Zoom, there are a number of screen-sharing tools that work for software development. Again, ask early on if there are any specific tools used to share code, so you can familiarize yourself with them ahead of time. Some software for sharing code includes:
- Tuple
- Screen
- CodeSandbox
- Teletype for Atom
- Live Share for Visual Studio Code
- For a more complete list see this list from designmodo
-
Asking questions - In a remote environment, you can’t lean over and ask questions to the person sitting next to you or in the breakroom. To get the help you need you should:
- Ask your supervisor or team lead what channels you should subscribe to on the company’s chat program
- Identify through looking at various channels where certain technical and non-technical questions should be directed. This may be [email protected] for some questions, or a Slack message to the DevOps channel for others
- Build relationships with your team - see the section below for more info
-
Being visible for professional growth - The old adage, “out of sight, out of mind” can easily apply to remote working situations, and it can be hard to make an impression when you are not in the same proximity as your co-workers. Making an effort to bridge the distance will not only make it easier to work with your team, it will also help you make connections that last throughout your career.
- Let people know what you are working on - you don’t need to give everyone a long list, but be "vocal" online about your projects and share any roadblocks you might have. Sharing an occasional screenshot or screencap of a feature completed or problem solved is another good way to show progress. With that said, be self-sufficient and try to solve hiccups on your own before consulting the team, and, make sure to help others resolve their blockers, too
- Let people know your availability - Keep your calendar up-to-date and be sure it is shared with the team. Put your lunch break on it too, especially if you aren’t taking your lunch exactly at noon. If your team can’t get in contact with you when they need you, they might think you aren’t actually working. Also, be sure to set up away messages and notifications on communication apps when you will be unavailable for a large portion of the day. This goes double for your days off and vacations!
- Set up "one-on-ones" with people you need to know before remote or collaborative work begins. This helps to get to know your teammates, their roles, and their expectations, and vice versa
-
Fitting into the culture and building relationships - While it can take a while to understand all of the cultural nuances of a new workplace, here are some things you can do to get up to speed quickly:
- Read the mission statement, company values, founding principles, etc. on the company website. Can’t find it? The employment section of the company website often covers at least some of these topics.
- Your team might have its own culture in addition to that of the company. In your introductory one-on-ones, ask people about the culture. It’s especially important to know about things such as taboos and rituals. It would be awkward to show up to video standup in your Halloween costume only to find out that your new workplace doesn’t do holidays!
-
Confidentiality - There’s a pretty good chance that something you are working on shouldn’t be shared with those outside your company. Working remotely can sometimes be a risk for inadvertently exposing “company secrets” to others.
- If you are in proximity to others, always use headphones for short video and phone calls. This will ensure that the words of others aren’t overheard. If you do plan to discuss something confidential, you might need to book a telephone booth at your office rental, ask your roommate to check out your new Spotify playlist, etc.
- It’s important to be transparent with your team if others are around. Most people understand that it’s impossible to always be in isolation, but being upfront about it can prevent awkwardness or accidental secret-spilling.
- Do not work on confidential projects in public places such as coffee shops, airports, or public libraries. Especially don’t work on confidential projects while connected to open wifi networks
- If someone near you accidentally overheard something confidential, fess up immediately. Your company can consult their legal team and decide what to do about it
- This should be true in any company, but don’t gossip about your co-workers with the people in your life. It can be really surprising how interconnected we all are
-
Maintain and Build Your Skills - Learning is a lifetime endeavor, especially in development. Technologies are constantly changing, and you will need to be proactive to remain competent on your team and competitive in the job market.
- Pay attention to the tools, languages, and platforms your company uses. If you are unfamiliar with any of them, research them for a basic understanding of how they work
- When you have one-on-ones with your supervisor, treat them as professional development opportunities. Ask questions and request feedback on your performance. Ask your supervisor about new skills you should be learning.
- If there is a skill you want to learn, talk to your supervisor about ways to incorporate it into the work you are already doing
- Most companies have a professional development policy allowing staff a certain number of hours a year to dedicate to learning new skills. Many companies also have a budget to cover the costs
- Be proactive about learning new things - if there isn’t a training opportunity within your company to learn, you can often find online courses to teach you, or consider working on open-source projects
- I can work exactly where I feel like, when I feel like! - While this may be true for experienced independent contractors, many companies will set your hours according to time zone, or at minimum require a set of hours that they know you will be working and available for meetings, calls, and reporting. Also, consider that it would be unprofessional to do video conferencing from a cafe or outdoors where background noise will be an issue.
- Remote work sounds like a great way to be judged solely by my programming skills - Whether this sounds good because you are an introvert or you don't like office politics, in order to grow professionally, you may have to try even harder to build your network and gain a solid professional reputation.
- They are giving me a laptop, now I don't need to buy a new one - If you are thinking that now you don’t have to buy a new computer to contribute to your non-profit or build your Etsy shop, think again. Your work laptop is your company’s property, it should be used for work only. Moreover, some companies may install software that monitors your work.
In groups of 2 or 3, set up a remote pairing environment using only Slack (or another online tool) to communicate to simulate a remote collaboration. An easy-to-set-up free online pairing system for this is CodeSandbox, which only needs GitHub authentication to pair. See the instructions for pairing here, along with other pairing system choices. While still communicating online, work on one of the Techtonica daily code challenges. If you finish it and still have time remaining, pair on one of the daily code challenges one of you was stuck on previously.
With a colleague or fellow participant, do a video conference call, and help each other determine if their sound levels and lighting are acceptable, and the background appears professional.
In this challenge, you will use a professional online video conferencing platform and a Kanban-style board to solve a handful of coding challenges
- Form a team with 1 or 2 participants or colleagues outside of Techtonica
- Assign one person to open an online video conferencing account on Zoom and start a session with the other participants
- Have another person open a Google Sheet to make a Kanban board. See this post-it kanban board for an example. Add 3 columns to the board titled "Todo", "Doing", and "Done" and share it with the group so all can edit
- Then have everyone navigate to Code Wars and pick out a handful of kata challenges in JavaScript (beginners should screen for Kyu (level) 7 or 8 challenges). Click on the ones that seem interesting and copy and paste the links into the "Todo" column of the Kanban board
- Once you have a list of 6-10 challenges, pick out one challenge for each person, and move those into the "Doing" column on the Kanban board
- Start working on the challenges
- When the first person has completed a challenge, have them move the link into the "Done" column, and then pair program with one of the other people that are still working on their challenge until completed
- If the team has a total of two people, start another round picking two new challenges from the "Todo" column. Otherwise, if there is a third person, have the two that just wrapped up the second code challenge together team up with the third person to complete the round. Then again, pick out 3 new challenges, and repeat
See how many challenges you can get through, and save the sheet in case you have time in the future to solve more challenges. Seeing the list grow will build your confidence!
Go onto Youtube or search for blog posts about the “pros and cons” of remote work, the etiquette of communicating online, or professional growth for remote workers. Write a short summary of what you found to be a surprise or misconception, or on the other hand, solidified your beliefs about the subject.
- How to set discipline at home - 3:10 video
- Overview of Kanban - 5 min read, 5:30 min video
- Overview of Scrum - 1 min read, 3:30 min video
- Email etiquette - 2:15 min video
- Signal v. Noise - a group blog started by David Heinemeier Hansson, the creator of Ruby on Rails & author of Remote: Office not required, or something from this list of blogs about working remotely