Managing development teams throughout the software development life cycle is never simple. Recent industry projections by Morgan Stanley reveal information technology (IT) departments will spend 4.2 percent more on software this year, a faster growth in spend than the 3.5 percent increase planned for overall IT budgets.
As organizations struggle to prioritize software development against challenges, including the tech talent shortage and competing IT priorities, such as the need for heightened information security, many are exploring new modes of team organization. One of these new approaches, distributed development, is defined as a software development project that uses contributors from multiple worksites or locations.
Why Distributed Development Matters in 2018
Distributed development is quickly growing in popularity. In 2014, 39 percent of development teams were defined as “far located,” or distributed across time zones and countries. By 2020, 59 percent of organizations plan to have 50 percent or more of their teams working in a distributed fashion.
The key difference between distributed custom software development teams is the fact there’s no “war room,” a shared office for developers to collaborate face-to-face. Distributed teams may involve contributors from outside the US but are not necessarily synonymous with global outsourcing. Distributed teams may consist exclusively of US-based contributors who work from home or varying office locations or global teammates.
- Better access to global talent pools
- Ability to form highly skilled teams around project-based work
- Potential for 24/7 project coverage with global schedules
- Flexibility to scale up project coverage with contractors
- Diverse, multi-cultural perspectives with global talent-sourcing
- Potential for cost savings on talent
- Ability to save costs on overhead expenses, such as office space
While there are challenges and disadvantages to the distributed development model, many of these roadblocks can be overcome by a skilled IT manager and knowledge of distributed development best practices. Read on to learn three ways IT leaders can unlock the productivity, flexibility and cost-savings benefits of distributed teams for custom software development projects.
1. Time Management
Distributed teams lack the ability to interact in real-time. While this may seem like a disadvantage, smart time management and superior project planning can help IT leaders control for success. Upfront planning for time matters. While team members may retain flexibility in hours worked, managers should request standard hours of availability for impromptu check-ins and document these hours of availability and time zones.
Without shared workspace or unified schedules, daily or bi-weekly stand-up meetings are critically important tools for team members to share updates. When time differences span 10-12 hours, planning these meetings at neutral times is critical, but may require participation from some contributors outside traditionally-scheduled hours. While this is occasionally a necessity, evening or early-morning meetings should be kept to a minimum.
For team managers, sensitivity to team members’ need to work together is crucial. On very large projects that involve sub-teams, Tomas Ulin of MySQL recommends organizing teams by module and time zone when possible to support collaboration.
2. Don’t Reject Agile and Scrum
Agile and Scrum have become the dominant modes of software development. In 2017, 71 percent of organizations report using Agile methodologies at least some of the time. While some aspects of the agile and scrum approaches may need to be modified to fit the distributed framework, organizations can still derive values from these structured approaches to the software development lifecycle (SDLC).
Clear project objectives are a necessity within the distributed model. Using a shared, globally accessible tool for project management such as Microsoft Project or Atlassian Jira can contribute to team-wide transparency around shared goals and progress. This may not only serve to enhance communications, it could improve productivity; research indicates that teams are more motivated by team goals than company or individual success metrics.
Additional Agile best practices for the distributed framework include:
- Self-organization: Encourage collaboration and relationship-building among remote team members
- Educate remote developers on stakeholders and business stakeholders.
- Encourage shared vision, knowledge, and feedback through transparent tools
- Create cross-functional teams across locations and time-zones
The agile methodology is in contrast to the waterfall methodology in terms of how projects are budgeted. Instead of a set project cost, the budget may be translated into a fixed rate per sprint, which can be translated into hours. Time and task-tracking of progress are a necessity for IT managers to maintain oversight of the budget and how performance is impacting the project.
3. Focus on Improving Distributed Communications
Shared tools for real-time communication are a success key for distributed teams, who lack the organic, water cooler interaction of co-located teams. Any project needs the right tools for real-time visibility and communications around source code project contributions via project management software. A wiki should be used to provide clear, accessible project guidelines are important. Similarly, tools such as Slack for real-time chat can minimize confusion over more latent forms of communication such as email.
David Champagne, a tech leader at Revolution Analytics believes that “accessibility” is key to successful distributed communications and recommends using a “range of technologies… Skype, Chat, IM, SMS, etc.” For distributed teams that hire when work is underway, onboarding is similarly crucial, and new hires should be assigned a mentor to help them get up to speed.
Distributed Development Is the New Normal for Custom Software Development
If you are looking to maintain your market share or industry leadership in the coming year, outsourcing offers faster development turnaround times while allowing you to maintain focus on your core capacities.
As remote work and other flexible working arrangements become increasingly common, distributed development teams are no longer a risky choice for organizations exploring custom software development or software outsourcing options. With an understanding of time management, project management and communications management across time zones, it’s possible to achieve remarkable results.