Distributed Development – Managing Remote Teams
Why to Care about Distributed Development
Distributed development, by definition, can be logistically complicated and requires strong management to undertake successfully. Organizing teams working across different geographies and aligning their vision on one overarching project is demanding. A general rise in remote-working, even before the COVID-19 outbreak, means that organizations need to be able to adopt this methodology. There are some immediate technical issues that arise from working on a project remotely. However, modern tools such as Git permit teams to work collaboratively from afar.
A Change in Mindset
The traditional office setup has often centered its work governance policies around hours worked. Employees show up at 9am, stay in the office, then go home. Managers keep an eye on this and note absences. This metric is deemed so important that companies have trialed software to establish whether workers are actually at their desks. Tracking someone working remotely in an external environment means there is inevitably less visibility. Focus instead shifts to objectives and deliverables. The ‘time spent’ becomes a distant second to the actual project targets.
As an approach, trust becomes a central two-way concern between remote teams and their managers. Managers need to trust that their teams will deliver on time. Teams need support keeping projects on track from their managers. Productivity also becomes a big concern – no longer can managers rely on having everyone present for long enough to get the job done. More than ever, project governance becomes a big question and something managers need to tackle head-on.
Challenges for Managers and Architects
The most immediate challenge with remote work is obviously communication. We’ve previously discussed how important aligning goals and setting regular communication calendars can be. But even among a team with great communication, managers still face a problem with assessing productivity. Which methods of discovery do they have to determine day to day changes to the platform? Where might problems occur? There’s a level of proactive management that remote working requires even more so than in-person management. Team members and managers are less accessible to one another. This makes identifying issues before they occur essentially. That way, they can be avoided and deadlines can be met.
Currently, if you wish to see how a team is developing on ServiceNow or Salesforce, it can be a laborious task. Firstly you need to define your own set of metrics, which is not an insignificant task. You need to understand both the available metadata on ServiceNow, Salesforce or SharePoint and its structure in order to do that. You also need a clear vision of what exactly you need. It can be all too easy to overlook a metric that might tell a crucial story. And that story may well give you the understanding to implement changes that will improve your platform quality and accelerate your project.
Distributed Development Metrics
So, now we’ve decided that we need some metrics to quantify productivity, we need to start looking for them. To save you some time, we’ve compiled a framework of 4 key areas you need to review:
• Productivity – understanding the patterns of where in the platform and when your team are working can make a massive difference to how you assign tasks.
• Velocity – in order to increase capacity you first need to understand how quickly your team can code and deploy. This can provide crucial baselines.
• Knowledge – how well do your developers understand the platform they work on? Which best practices are they less familiar with. This identifies areas for training.
• Hand-over – is your code sufficiently documented that someone else could easily work on it? Futureproof your code against team rotations and promotions.
The Need for Automation
Realistically, the above framework is a daunting prospect to start measuring manually. Recording such a comprehensive number of metrics once probably sounds time consuming, especially once you break them down into constituent best practices. Doing it regularly as a proactive management style requires? Well, that sounds unfeasible. Which is where tools step in. They save you that considerable time investment and present you with the metrics, empowering you to make those decisions. Whether that be through automating manual processes like code reviews, or triggering automatic alerts notifying you of key issues. Automation will let you do significantly more with less manpower, allowing you to work smarter, not harder.