By September 25, 2020

Remote Software Development Strategies That Work

remote software developmentThe Ringelmann effect, an extensively studied organizational theory—states that people work more productively in small teams and that individual team members become less productive as a team's size increases.

In his 1975 book The Mythical Man-Month, Fred Brooks formulated an important observation regarding software development which came to be known as Brook’s Law. It asserts that a late software project would take more time to complete if additional human resources are allotted to the project; basically, it captures individuals’ general tendency to become less productive in large groups.

The efficiency of software development teams based on size is a fundamental aspect that measures a project's cost and enables the charting of efficient management practices.

Maybe Brook’s Law reflects on our hunter-forager ancestors’ mindset of working and living in small groups—that despite evolution, it’s still wired deep within us. Whatever the reasons may be, industry insiders say that software development’s future lies in small groups, especially in a post-COVID-19 world.

Software development is a highly collaborative endeavor. An organization requires highly proficient people with a diverse skill set—like front-end developers, back-end developers, system engineers, and QA engineers—to achieve anything fruitful. Furthermore, each of these job types has numerous subtypes—sometimes, you need hyper-specialized people too.

Locating people with hyper-specific skills and gathering them at one geographical location is not how the software industry operates. The world has become a global village, so an IT company headquartered in the USA might have multiple development centers and manufacturing facilities around the world. Justifiably, it pushes organizations to form remote teams.

COVID-19 lockdown mandates have given remote working the necessary push to become feasible for more team members. However, many other reasons could also be attributed to the remote collaborative software development model’s high success—outsourcing to cut costs being the most practical one!

A survey by Dice—one of the most famous sites in the Silicon Valley high-tech recruiting industry— found that remote working has emerged as the most popular and sought-after perk for tech professionals. Blueface—a leading global Unified Communications as a Service Provider (UCaaS)—forecasts that by 2025, remote work will become the primary work setup. As per AND CO’s survey, more than half of the respondents were working remotely full-time.

These results point to the assertion that remote work is the future. Why? Because it is advantageous to both employees and organizations.

Due to COVID-19 lockdown impositions, IT companies are facing remote working situations in many ways. Companies might be working as fully remote organizations, or with some team members working from home and some working from an office. Thousands of managers and team leaders have to unexpectedly manage remote teams. These teams might be located in the same city or spread out across time zones.  Handling newly remote teams could be tough, especially when they have never done so before and have little time to make the switch.

I hope this rundown helps software team leaders who find themselves managing remote teams to set up for success.

How To Build an Effective Remote Development Environment

For any IT company, strategizing and organizing a workable remote team has become crucial. It ensures that productivity remains up to the mark and each team member complies with delivery timelines.

There is no one-size-fits-all approach to creating an effective remote environment. The remote strategy has to be a carefully planned decision that is driven by the desire for the team to work in absolute tandem.

Instead of focusing on how a remote team’s members should work out their schedules, set up their remote workspace.

As someone who is largely responsible for the deployment and sustenance of remote working environments in my organization, both before and after the COVID-19 outbreak, I want to share what I’ve learned from my experience. These are the top methods I’ve used to create strong remote teams.

Use Collaborative Software Tools

Outsourcing in software development has become pretty common due to the availability of fail-safe, cloud-based collaborative tools. Remote teams require the right set of collaborative tools, ensuring every member remains on the same page to execute tasks without a physical manager overseeing them.

Collaboration tools can be conveniently divided into two types: text-based collaboration tools and audio-video communication tools.

Text-Based Collaboration Tools

Text is the most-used method of communication. It offers the advantage of being able to index and search messages instantaneously. Slack is one such collaborative tool that merges instant messaging, text messaging, and email into one. It is available in mobile and desktop versions so that remote teams can coordinate wherever they are.

Audio/Video Communication Tools

remote software developmentFace-to-face personal meetings are yet to lose their charm despite some inherent disadvantages. Sometimes it is better to be able to explain things in a more approachable way. With Skype, a collaboration tool that is immensely popular across the world, you can make unlimited voice and video calls either one-to-one or in groups, share files and code, and send instant messages. It comes in all three varieties—tablet, computer, and mobile. For those who are not on Microsoft’s systems, Zoom is a powerful competitor.

Task management utilities such as JIRA, Intercom, Monday, and Trello allow remote teams to set up work assignment priorities and follow up with tasks.

These collaborative software programs are critical in structuring your team and enhancing overall productivity. Don’t forget to test these tools beforehand to determine which suit your organizational workflow and requirements.

Say Goodbye to Excessive Supervision

Managing a remote team comes with serious challenges, not least of which is leading and organizing people across backgrounds, cultures, time zones, and countries. Many managers never have a chance to meet their team members in person.

This results in unconscious overcorrecting by way of micromanagement to ease the tension of not being in control of the task. A manager’s responsibility includes creating a positive work environment and boosting the morale of the team. Micromanaging hinders this, resulting in dissatisfied employees and a toxic environment.

Some managers take the approach of the perfectionist, leading to an unending trail of emails, rechecks, and revisions. This also causes tasks to pile up and makes it harder to meet deadlines.

Remote employees are by necessity practical and disciplined and can take responsibility for their performance, work, and actions. It is not a good idea to excessively supervise team members by continuously prodding them.

As a team leader, first of all, reflect on where your micromanaging urges are coming from. Is it insecurity? Do you think things would go badly if the team does not replicate your instructions exactly? Or do you think you would become out-of-sync with the details? If so, are you handling your anxieties by excessively supervising your employees?

Determine the critical aspects of the work where your supervision is a must, such as planning. Leave aside tasks that carry lesser significance, such as proofreading.

Directly ask your employees how often they would like to seek your supervision and what level of accountability they want to hold. If you really wish your team to bloom and learn, you must allow them a pre-assessed level of autonomy and authority.

I know, curtailing your micromanaging urges is hard. So why not start slowly? Test out letting go by giving your team full autonomy and accountability on the parts of the project that aren’t as critical.

The sine qua non is flawless communication, properly defined project goals, and addressing concerns regarding the software development project. As long as these are present, you should be able to step back from your team and let them handle the details.

Establish Processes

Do not assume that just by connecting talented people from around the world through remote tools, you will instantly start getting quality work. You require a well-defined process-oriented methodology for remote team management. The core principles of the Agile Manifesto, such as adaptive planning, early delivery, continual improvement, and flexible responses to change, can be applied to distributed teams.

Individuals with whom you will work in a remote environment might be amply experienced, yet they are working with you for the first time. If you set the rules of engagement and define the procedures, your team members will feel more confident. It will also help in building mutual trust. Building processes enables getting work done even in the absence of good leadership.

Establishing direction and structure will guide your teammates, streamline the collaboration, bring transparency and accountability, and ultimately boost productivity.
You can start creating a process by recognizing redundancies, risk zones, and dead-end areas for successive steps. Herein you can achieve consistency by defining the best- and worst-case scenarios across your team.

You can implement key performance indicators linked to tasks by identifying probable errors, dependencies, and bottlenecks. You can automate repetitive jobs that no longer require discretion with software tools such as JIRA.

Clearly defined and demarcated processes across your remote team’s spectrum will enable members to contribute more meaningfully and further instill job satisfaction and loyalty.

Established processes make sure that no efforts are wasted in figuring out trivial things like where to start, to whom to report, or how to seek help. Your teammates will become faster and smarter by remaining on the same page. You will also decrease potentially risky blunders in the long run.

Hire Only Self-Motivated People

remote software developmentAssessing if a candidate is the right fit for your company is a very tricky task even if you meet them face to face. The evaluation process becomes more challenging for a remote work environment as you can only interact virtually. Despite all this, evaluation is critical for determining the appropriate candidate for a remote role.

Not every developer, despite being amply talented, can work within a remote environment. So, it becomes especially important that you hire self-motivated people capable of doing well remotely.

Look for a “do it now” attitude. They must know the nitty-gritty of project delivery and be psychologically prepared to work in any situation.

Unless a candidate demonstrates beyond doubt that they would thrive in a remote development role, they cannot be the right fit regardless of skills or qualifications.

Even self-motivated people can become sluggish if they feel that their efforts are not getting counted. Hiring self-motivated people is just the first step—to keep them motivated, you must regularly communicate with them, understand cultural nuances, and treat them as you would any onsite employee.

Schedule Regular Individual and Team Meetings

Getting communication on the right track is one of the most challenging parts of working remotely. Keeping every team member in the same loop and on the same page is easier said than done.

Remote teams often encompass members across various time zones, and the manager must find a time that works for everyone to meet regularly, such as on a monthly, weekly, or daily basis.

These meetings also form the bedrock of sharing issues and achievements. It instills a feeling of accountability and transparency within the team. Regular team meetings, albeit virtual ones, enable a manager to keep a handle on the team’s problems and bring resolutions to bottlenecks as soon as they arrive.

It is vital to ensure that the regular team meeting minutes are maintained and sent to all the meeting participants. The minutes-of-meeting part is essential because it acts as a “to-do” list that delegates personal responsibilities to individual team members.

Managers should avoid canceling meetings, especially those planned outside the regular schedule. Reschedule, postpone, or cancel these only in the most extreme situations. Otherwise, your remote team members might start developing a feeling of neglect and being unimportant.

In cases of extreme divergence in time zones, team meetings could become sporadic events. In these cases, make sure to have written records of the minutes and organize conference calls by slightly shifting work routine.

Face-to-face, one-on-one meetings play a crucial role in enabling employees to raise issues that they are otherwise unwilling to communicate. Holding face-to-face meetings with every team member at regular and pre-decided intervals is an excellent strategy to reach out to them and enable them to convey their problems. After these meetings, check if you have received answers to:

  • Are the developers enjoying their work?
  • Should they be given different work?
  • Does the working environment encourage employees to give their best?
  • As a manager, what can you do to solve any issues?

Individual sessions have a significant role to play in early recognition of problems and nipping those in the bud will prevent a mess later on.

Conflict Management in Remote Teams

It is natural to have a difference of opinion among team members. If not given sufficient oversight, it will not take much time for a minor difference of opinion to become a full-fledged conflict.

Conflicts are not unique to remote teams; they can occur anywhere. However, detecting them early on in remote teams where one-on-one communication is a rarity is a challenge. Remote team managers must be able to detect conflict early and have a pre-planned conflict resolution strategy in place.

It is difficult to detect conflicts among team members in a remote setting. As time zones may be different, problems cannot be sorted out on a regular basis. It is possible for two workers to argue in private messages and leave the other team members in the dark.

It is essential for managers to actively gauge the signals of conflict. For example, there could be a change in the tone of email and messages. If a team member who was earlier a very active participant in the team chats, typically using animated GIFs, exclamations, and emojis, suddenly starts giving one-word responses, it might be an indicator that they are not happy with another team member.

Having identified a possible conflict among your team members, a manager must get down to business and resolve it timely. The issues could further exacerbate if the manager does not intervene.

However, being proactive does not mean becoming a micromanager and watching everything like a suspicious hawk. You just need to ask the right questions at the right times with individual teammates.

Strengthening a Remote Team Might Be Tough, But It Pays in the Long Run

remote software developmentRemote work offers incredible advantages. Team members feel that they are part of a grand experiment that further gives them the liberty of becoming more experimental! And very soon it could be the new normal.

With the imposition of lockdown worldwide due to the coronavirus pandemic, the software industry has had no choice but to embrace this new normal. But adaptation and evolution lead to survival, said Darwin.

It’s doubtful that things will go back the way they were before after the pandemic recedes or we find a vaccine. The software development scene has permanently changed, and it is a change for the better.

If you are one among those who have always worked at the same workplace with your team members—it might come to you as a rude awakening. However, the good news is that you can always learn and evolve.

Remote working has its inherent benefits as well. With the embracing of strategies such as collaborative tool utilization and proper project management strategy adoption, all barriers requiring an onsite team will vanish.

About the author

Naveen Chandra Joshi

Naveen Joshi works as a Technology Consultant. Having spent 10+ years of his life delivering functional software in various roles, he has gained immense experience of the strategies that really work, what the operational realities of our time and domain are, and which methodologies just remain on paper as a good read. For these many years, his job of getting things done in the best way possible has enlightened him to distinguish theory from practice, wrongs from rights, and doomed-to-fail shortcuts from rigorous methods.