Remote Developer Team Field Guide

Working as a distributed team can generate as much team productivity as working physically in an office. Offering the opportunity for employees to work remotely, both as a benefit of the work and a way to take care of the organization-wide productivity during times where workers are not in their offices, are some things all teams should aim to do.

Agile and XP In Remote Working Environments
Developing within an eXtreme Programming environment, whether autonomous, a hybrid, or embedded during a SAFe system has often been deemed impossible during a distributed team. The modern tools and all the best practices mitigate many, if not all, of those concerns.

Weekly Cycle
Regarding the best practices, they will always vary from team to team in terms of what truly helps them to make synergy across the team. In a team that is working remotely, it’s even more valuable to possess alignment on the plan for the week and to reflect on the past week at each week’s end with a formalized retro. Inspect the design
for the Week and Reflecting on the Week sections below to seek out out what sorts of tools are out there and those that we prefer!

Test-Driven Development
Test-Driven development is simply as achievable on a distributed team because it is on an in-person team. We pair remotely using VSCode LiveShare, a tool that permits us to use shared or read-only consoles so that both developers can see test leads in real-time without having dedicated resources on both computers.

Energized Work
On average, studies had discovered that a worker is productive for about 3 of the 8 hours they spend at work. Allowing workers to work as a distributed team might sound as it would impede productivity, but without the distractions of a busy workplace, workers are more productive at home. We make sure to overlap the teams, but dedicated work hours are literally something that can make people less productive because they
feel the necessity to be at their computer expecting work instead of handling what they have to handle once they got to handle it.

Incremental Design
Working in a world where customer requirements are changing constantly, working in an incrementally and pivoting manner often is vital for software development teams. Using tools just like the ones we mention below allows members of the team to simply communicate about the status of projects, track progress, have targeted discussions, and implement any changes that require to be made going forward. Simply because a team is distributed doesn’t mean they can’t turn smoothly while all being
on an equivalent page.

Informative Workspace
The XP practice of Informative Workspace is all about the accessibility of data — mainly,
big charts and plans sprawling across an area. This is often still achievable during a distributed team through all the cloud-based tools. You don’t need a tool for each little thing, but a standard anti-pattern is misusing a tool or forcing one tool to suit all of your needs. Having your team invest in intuitive technologies that facilitate productivity is the key to the success of a distributed team as using those tools effectively.

Pair Programming
An audio or video tool in conjunction with a tool like VSCode LiveShare (or Floobits for
IntelliJ, EMACS, Atom, etc), allow pairs to show their individual computers into a pairing station. Programmers can communicate as if they were within the same room and watch each other’s code be written live into both of their local codebases.

Sit Together
Although it seems difficult to possess a team to sit together once they are spread far apart, feeling like you’re all sitting together is often even as effective. Using tools and consistent communication across a team (a major advantage of physically sitting together) is achievable on a distributed team, often with the result of higher productivity.

Continuous Integration
A huge portion of Agile’s effectiveness is that the feedback circuit — shortened feedback loops leave faster corrections and better quality code and products. Automated continuous integration and deployment and mature practices surrounding them are incredibly important to the success of distributed teams partially because they explicitly target the thought of shortened feedback loops. We often encounter teams who struggle with this thanks to infrastructure: if you host everything within internal networks and registries, VPNs become the lifeblood of a distributed team.

Real Customer Involvement
Many teams working within Agile frameworks involve the customer through a representative in order to make sure that there’s a far better feedback circuit between the team and therefore the customer. With distributed teams, it’s even as easy to involve the particular customer instead of (or additionally to) someone representing their interests. All of the tools that make distributed work possible for software teams are equivalent that makes customer involvement feasible without disrupting
anyone’s workday.

Working Tools

One of the unofficial best things about performing from the house is that you simply can attend, and host, meetings wearing a professional shirt and pajama bottoms. One among the unofficial worst things is that you simply have significantly more opportunities to urge distracted during meetings, maybe kids, a dog,

food, or another website.

There are many tools out there that will help simulate in-person interactions without actually being on-site with other participants. Here’s an inventory of our favorite tools in order of preference.

Hugo

Hugo team (free for little teams), maybe a tool that really does it about focuses entirely on better, more productive meetings. Users can keep personal meeting notes within the cloud, share and collaborate on notes and agendas, create and import templates to be used in the meeting, quickly reference past notes, use tags to quickly filter your saved notes, and integrate with other tools like Asana, Jira, and Trello. The appliance remains in its infancy as far as software goes, but its user-directed development approach allows users to submit and vote on features as if they were open-sourced software.

Zoom

With a good sort of features that make working in small groups or meeting en mass possible, Zoom is far and away from our favorite in terms of meetings and digital classrooms. Anyone with a paid Zoom account can create a persisting room that will be weakened into breakout rooms for Little group discussions, show tiled video of up to 30+ participants during a single window, and enable communication via quick buttons or through a talking interface.

Google Meet

Google Meet, (previously Hangouts) may be a common alternative to Zoom with similar functionality, although away narrower feature set. Google Meet comes free of charge together with your G Suite subscription if you’ve got one, but it is often inconvenient if not everyone on the team features a Google-hosted account.

Microsoft Teams

Microsoft Teams is to Microsoft as Google Meet is to the Google, but with some additional bells and whistles. It makes more sense to use this tool until you identify a requirement for a more robust tool.

“Asynchronous” Communication

As with any team, the power to speak asynchronously is invaluable on a foreign team. The marketplace has been flooded with tools that allow teams to use a contemporary equivalent of AOL Instant Messenger to speak asynchronously while still providing the choice of real-time communication. Our favorites, ranked, are below:

Slack

With several features, including built-in video and audio calls, this tool allows teams to work together, separately.

Microsoft Teams

If the team already depends on the Microsoft suite of tools, it makes sense to just use Microsoft teams. While this tool covers the same need as Slack, it is more along the lines of what Google Messages should have become for the Google universe. With Microsoft Teams, you can chat, meet, call, and collaborate with anyone on your team

Chanty

Claims to compete with Slack by emphasizing a simple, intuitive UI, focusing on the right balance between their interface and robust feature set. This tool comes with built-in integration with Zapier, its own task management system that allows any message to become a task, and support for video and voice meetings in addition to voice and text messages.

Discord

It is not a traditional enterprise solution for team communication, it provides a feature-rich environment for communication via text and voice. A team/company can create their own Discord server shortly, making the source of record private and restricting access to the server. The target that most uses this tool is the gaming community, which means that some team members will have zero learning curve, but some of the vernacular is very game-oriented (like “Guild Member”).

Visual Studio Code LiveShare

The naming of Microsoft’s VSCode is quite just like the naming of JavaScript — it’s almost nothing to do with the element referenced within the name. VSCode, like Atom, maybe a hackable, extensible editor that not only supports almost every language known to man but has full-blown integrations with them. We love this tool due to how full-fledged it’s, but also due to the built-in, free, LiveShare feature that permits us, to pair-program or live-code as if we are all at one pairing station.

Floobits

Floobits is a paid tool that permits participants to collaborate across editors, IDEs, and their browser-based coding platform. At the time of writing, it supports Sublime Text, Atom, IntelliJ, EMACS, and neovim.

Planning for the Week

Alignment within a team is vastly important whether or not your team is distributed. While working remotely, there is often an extended feedback cycle between work getting started and feedback on the direction of that employment so ensuring that the entire team has an equivalent vision from the start is even more important. Here’s an inventory of our favorite tools to assist gain and maintain alignment

Asana is a tool used to help teams collaborate and manage tasks and projects. Within Asana, teams are able to create and update projects, assign work to teammates, set deadlines, and continually communicate about tasks.

Pivotal Tracker is a cloud-based project management tool that takes the stance that stories are the root of all development work. Pivotal allows you to track various metrics for your team, prioritize your backlog and icebox, identify blockers directly in the app, and more.

Reflecting on the Week

In any environment, it’s important for the team to desire they’re empowered to supply honest feedback, whether on the work that they did, how they did it, or anything which may have been impactful. This becomes especially important as teams are just starting out with remote work. Within all of our immersive, we conduct a weekly retrospective with the scholars to reflect on the week, its wins and opportunities, and to redirect the form of that course and its future deliveries. This ability to vary within the moment is even more crucial for our virtual immersive. Here are a number of the choices in no particular order.

FunRetro

FunRetro allows any user with the link to access, and both read and write capabilities exist and are controlled by the creator of the tool. Retro boards are fully customizable (and accompany suggested templates), making your retro run efficiently and smoothly. This app also allows you to save retro boards, so you’ll refer back to historical ones do you have to need!

TeamRetro

TeamRetro is analogous to FunRetro, but it has more of an enterprise focus. Creating a team allows members to hitch retros without the necessity for a shared link. With team retro, items can become action items that persist from week to week, groups of things can be made to spot larger themes, and team health checks are often checked out in isolation or as a trend.

Internal Tools

In a number of our immersive, anyone can build their own tools to run and track retrospectives. Having this data at hand not only can inform your upcoming weekly cycle but can also be recalled to review themes, action items, etc.

Tips & Tricks

Make the foremost out of each Meeting

Everyone anticipates the “meeting that could be written in an email,” and yet this happens more as people begin to work in distributed environments. There are plenty of ways to bring the most out of meetings, but, like most other things, it’s important to have healthy practices surrounding them. Find below some of the “best practices” you can apply:

Make sure that meetings have an agenda — if you can’t write an agenda, does it got to be a meeting?

For any demonstrations or announcements, record your screen or video, bring everyone together, play it, then invite for questions. this provides you the added benefit of ensuring everything goes smoothly and leaves an artifact behind so that when people forget, they don’t feel the necessity to ask you.

Identify what the output of the meeting is: decision, plan, food for thought, etc.

Make sure that someone is taking comprehensive meeting notes.

Scroll to Top