More and more developers are working remotely. A recent study found that 80% of developers want at least hybrid work, and one out of three prefer to work remotely 100% of the time.
This is hardly surprising; remote work brings many benefits, including no commute and a more comfortable workspace.
However, working from home comes with its challenges, and sometimes the simple solution of walking over to someone’s desk is sorely missed.
With that in mind, this article will advise you on providing your developers with the best possible working environment and, ultimately, increasing their productivity.
Table of Contents
1. Move Your Culture Online
When companies have a healthy culture, developers work together well; they have a good understanding of their co-workers’ skills and capacities.
Such a collaborative, intuitive environment is likely to result in increased productivity.
However, cultivating a quality company culture can be challenging even in an office environment. Take a look at these statistics:
Nearly a third of remote developers still feel alienated. To fully engage your developers, it’s worth promoting your company’s culture online.
One valuable quality of online company culture is transparency. You most certainly trust your employees, but a lack of shared physical space makes it harder to see their progress.
For example, host feedback sessions often; organize regular one-on-one meetings with your developers so you can frankly discuss everything on your minds.
Get unreal data to fix real issues in your app & web.
When delegating tasks, explain to the team how that project fits into the company’s big-picture goals.
If one of your employees messages you and you can’t respond right away, let them know. Don’t leave them hanging – it takes two seconds to type ‘I’m busy, I’ll respond in an hour.’
This message confirms that you’re online, even though you’re not available yet. Sending such messages is vital for remote work, as John Watkins advises:
By upholding full transparency, your employees will never doubt that you’re shirking off work or neglecting them, therefore increasing their own productivity.
In online culture, you’d also do well to promote fair, collaborative sharing; your developers should have equal access to shared resources.
Every team member should be able to use your organization’s facilities equally, and Queue is a great tool to help with this.
The Slack add-on helps coordinate between team members by organizing an employee queue.
The queue can be used for almost anything: sharing single-account tools, server access, and even choosing meeting leaders. Here’s an example:
Although this example doesn’t apply to remote teams, the same principle applies. With Queue, each team member gets a turn to use the company’s resources.
You can also use the feature for meetings so that everyone gets a chance to speak. Queue ensures everyone receives fair treatment.
2. Encourage Virtual Pair Programming
Pair programming is highly effective; it’s been shown to speed up development, shorten feedback loops, and, ultimately, make developers more productive.
As such, this collaborative practice is fairly popular, as a survey showed:
However, pair programming is usually performed at one desk – one developer codes while the other reviews.
The lack of a physical space obviously hinders traditional pair programming, and your developers might not even think remote pair programming is possible.
That’s where you come in – it’s your job to introduce your team members to tools for remote pair programming.
For example, Microsoft’s Visual Studio Live Share is a great solution.
The tool lets your team share their code and then collaborate on it in real-time, making it easy to edit and debug projects.
Developers can communicate via audio or chat, and there are no limitations; you can use it regardless of the programming language, editor versions, and type of application being built.
The video below explains in detail exactly how the feature works:
In fact, this digital resource has some benefits over on-site pair programming.
For starters, each developer can work within their editor preferences and track the other’s work from their own terminal.
Given these features, it’s not far-fetched to imagine even on-site teams utilizing this tool.
This Reddit user pointed out another, perhaps less-obvious advantage virtual pair programming has:
Virtual pair programming makes the collaboration process seamless, enabling effortless editing.
Two brains working together are bound to be more productive than one, especially for silly problems such as typos.
Virtual pair programming can also positively impact your employees’ mental health and increase productivity that way.
Constantly working remotely can be isolating, and pair programming helps with loneliness.
When two (or more) developers collaborate towards a shared goal, that encourages the community feeling that sometimes gets lost in working from home.
For these reasons and more, the CTO of GitHub is an advocate of virtual pair programming:
Virtual pair programming is sure to keep your remote developers’ spirits high, and it’s no secret that happy programmers are productive programmers
3. Make Sure Employees Understand Their Tasks
Working from home can sometimes be difficult, communication-wise. If your developers haven’t understood something, they can’t knock on your door or walk over to their co-workers.
And you won’t always be able to reply to their IMs immediately. Therefore, it’s crucial to provide clear instructions from the get-go so that your employees don’t lose time.
When delegating tasks to your developers, be as thorough as possible; better to give too much information than too little.
The developer might have to reach out later and interrupt their workflow with too little information. This is hugely detrimental, as research has proven:
Unclear instructions result in constant interruptions, which automatically decrease your developers’ productivity.
To minimize those interruptions, explain everything clearly to your developers from the beginning.
When delegating tasks, ensure to host a meeting to elucidate the project at hand – don’t send an e-mail.
By hosting a face-to-face debrief, you’ll be able to elaborate at length, and your developers will be able to ask questions right away.
If you use e-mails for task distribution, it will likely be a much longer process. There’s a high chance your developers might not understand something and will reply with some concerns.
Then, you’ll have to respond to their e-mail with the answers, and so on. Both of you will lose a startingly amount of time. A recent survey revealed the following:
Given the time lost inside the inbox, constant back-and-forth e-mails should be avoided when possible. Instead, host a meeting – it should be much more effective.
Finally, make sure to constantly remind your developers of the big picture.
As a manager, you can clearly see how every small task completed is another step towards the company’s ultimate goal, but your developers might not have that vast field of vision.
Therefore, explain why they’re doing what they’re doing; describe how their contributions are helping the company’s goals.
A valued Thomas, Noble & Russell employee elaborated on this:
Once your developers know how their work fits into the company’s long-term goals and big picture vision, their productivity should increase; they’ve realized that their efforts make a difference.
4. Automate as Much of the Development Lifecycle as Possible
If something can be done automatically, why would you do it manually? Your developers likely have repetitive tasks they do all the time, such as command lines, log mining, and deploying.
Think about automating these processes. Besides saving your employees’ time, automation will abolish collaboration bottlenecks and accelerate code distribution.
For these reasons, automation can be a huge productivity booster in remote teams.
Testing automation, in particular, is hugely popular; it runs through tests quickly and provides greater coverage for detecting bugs.
Furthermore, it’s easily modified to keep up with different devices, browsers, and operating systems.
However, the most significant benefit of automatic testing is that your developers don’t have to do it. Take a look at the graph below:
Automation testing requires almost no human effort, giving your developers more time to tackle other tasks and boosting productivity.
Furthermore, some testing is monotonous, such as regression testing. Constantly regression testing manually is bound to result in your developers losing focus eventually.
If nothing else, consider automating regression testing – your developers will thank you for it and eagerly turn to other tasks.
So, how to implement automized testing? There are countless tools available, of which the most popular is probably Jenkins.
These can then be incorporated into CI pipelines as automated tests for every build.
Jenkins will also give you an overview of trends. The tool tracks results and displays them as a trend graph:
With this trend report, your developers have a clear overview of test history and how they performed in the past. That way, they won’t lose time loading and processing each past report.
Besides testing automation, some tools help automate bug reporting. For example, with Shake, all users need to do is simply shake their phones.
This instantly generates a bug report, which is then forwarded to the dashboard:
This easy, streamlined workflow will significantly improve your standard bug reporting procedure, as all bugs and crashes are located in one central area.
This clear, clean overview greatly facilitates collaboration between remote developers.
5. Have Abundant Documentation for Internal Processes
Documentation is highly convenient for remote developers.
By extensively documenting internal processes, you create a permanent digital record for employees to refer to whenever they need a question answered.
Instead of waiting for a reply on Slack, developers can glance at the documentation and immediately find the information they need.
In other words, internal documentation serves as a ‘source of truth,’ which is invaluable for developers’ productivity. A survey proved how highly developers value documentation:
The people have spoken – if developers want good documentation, provide your team members with the best documentation. They’ll be guaranteed to be much more productive.
Imagine a new developer has joined your team, and they’ve just been assigned their first-ever ticket.
It would be a huge help to have detailed, written instructions about the exact steps when handling tickets. For example, the below flowchart would have been beneficial:
This flowchart walks the developer through every possible outcome, outlining each situation’s correct workflow.
Remote developers will significantly benefit from such directions, as they’ll have a constant point of reference to fall back on.
More broadly, it’s also helpful to explain people-based internal processes.
Requesting time off might be intimidating in a remote environment, as there is no way employees can guess when their team members have taken their holidays.
An online document detailing how to ask for time off and when their colleagues have taken time off would, paradoxically, improve your developers’ productivity.
Firstly, the clear guidelines would alleviate the stress of asking for time off; secondly, a healthy work-life balance is essential for preventing burnout and keeping productivity levels high.
GitLab is an excellent example of documenting these internal people processes. The company’s handbook even explains how promotions are decided on for all their employees to read:
This documentation will likely improve developers’ productivity, as they have clear insight into the promotion process.
Not only will they feel motivated by the prospect of advancement, but they’ll also probably appreciate the transparency of the promotion procedures.
It’s comforting to know that their employer is operating fairly and, that they have set processes in place; that there are no arbitrary decisions.
Who wouldn’t feel attached to a company like that?
6. Use Collaboration Tools Designed for Remote Teams
Ever since the Covid-19 pandemic first hit, a ‘work from home’ revolution has been slowly conquering traditional office settings.
To facilitate this new home office setting, countless collaboration tools have been designed, helping remote teams collaborate more efficiently.
Why not take advantage of these tools for your developers?
Small, low-maturity companies, in particular, have been proven to lack available tools. Examine the numbers below:
Employees strongly believe that tools would facilitate open cooperation. So, what kind of tools would do the job?
This can essentially be used as an asynchronous virtual standup, ensuring everyone remains informed without breaking their workflow.
Here’s an example of an asynchronous knowledge transfer:
By combining multiple tools into the Slack workflow, your developers will spend less time on iterative tasks; routine processes will be automated instead.
This automatically frees up more time for them to focus on high-priority tasks.
Furthermore, the endless integrations mean that your team members will rarely have to switch apps.
Instead, they’ll be able to video call, collaborate on files, manage calendars, and more while staying in Slack.
This is a great benefit, as switching between fragmented apps can easily disrupt an employee’s ‘flow.’
Another must-have tool is Jira – an issue and project tracking software popular with Agile teams.
Let’s say your developers work with a Scrum framework. Jira offers Scrum boards, which assist with breaking down large projects into individual tasks.
There’s an example below:
With this organizational framework, your developers can see the different work stages; what’s done, what needs to be done, and what’s being done.
They’ll also know who is responsible for which task, ensuring complete transparency.
If you prefer Kanban, don’t fret; Jira also has a Kanban board available:
These boards are fantastic tools for visualizing workflows; your remote team will know all the organizational particulars of your project at a glance.
Conclusion
With remote work being so highly-preferred among developers, it’s essential that you learn to incorporate certain tactics into your working model.
For starters, promote your company culture as much as possible online, and ensure that your employees always clearly understand the tasks asked of them.
You can facilitate this by having abundant documentation so that employees always have a reference point to refer to.
Consider introducing virtual pair programming as well for direct employee collaboration.
Finally, utilize tools – strive to automate the development lifecycle and incorporate collaboration solutions.
With these tactics, your remote developers’ productivity is sure to skyrocket.