My View of How to Execute Agile Projects With Highly Distributed Teams

My View of How to Execute Agile Projects With Highly Distributed Teams

As software development teams get increasingly distributed, setting the stage for real-time collaboration and communication to meet quality and time-to-market demands has become extremely important. An agile approach to software development has become the norm after initially being seen as a great source of competitive advantage. But making it work in a remote work setup doesn’t come easily.

According to the Harvard Business Review report on Workplace trends, 80% of respondents said they would have better relationships with more frequent team communications. Since teams are at remote locations, the lack of close-knit communication comes in the way of successful development. Remote teams often face trust issues, which impact their ability to communicate, solve problems together, and set the ground for fast-paced decision-making.

As the pandemic-induced ‘work from home” wave hit, as the site head of a mid-sized product development outfit, I had to confront some of these challenges. What follows in this article is a kind of personal assessment of what worked (or is working) for us. I don’t claim to be an authority on this so I invite addendums or counter views so all of us can get better.

Agile best practices for remote teams

For Agile teams that are accustomed to working with peers from the same place, the transition to a remote environment can diminish cohesion and bring down software development efficiency. Making Agile work for remote teams requires a substantial shift in culture that makes it easy for remote workers to communicate and bond with each other and build the level of trust needed – even in the absence of in-person meetings. Here are some Agile best practices to adopt for remote teams:

1.     Simplify the Agile process – The basic premise of agile is to empower teams to work more closely with each other, and in shorter iterations, so features and changes can be introduced quickly. For it to work in a mostly remote setup, project managers should ensure remote teams spend more time on actual work and less on administrative tasks. They need to talk less and do more and ensure communications do not eat into the team’s work time.

2.     Use single communication channel – Remote teams often are at risk of poor communication outcomes. Since individual members of remote teams reach out to their peers using different communication channels, tracking conversations and staying updated about project progress becomes difficult. For remote teams, it is essential to empower members to use a common communication channel, so everyone has end-to-end visibility into activities, can track and monitor progress as well as challenges, bottlenecks and team goals. That channel could be anything that everyone agrees on -as long as everyone uses that and it’s easy to track and record communications.

3.     Self-reliance and self-regulation – Agile teams – irrespective of whether they are working from a single location or different geographical regions – need to build a culture of autonomy and self-regulation to achieve common goals. Each team member needs to take responsibility for their work environment and take ownership wherever necessary. Such a culture makes it easier for teams to set the stage for stringent code reviews to maintain quality, minimize iterations, and reach individual goals as well as team and organization goals quickly and easily.

4.     More automation like CI/CD – Remote teams also often face the issue of delayed projects and missed deadlines because members end up waiting for documents, files, and code from others. It is advisable to integrate more automation across the CI/CD pipeline to reduce dependency on individuals. Foreseeing dependencies and proactively resolving them can also help teams have access to the resources they need, when they need it and thus meet deadlines with far higher speed and efficiency.

5.     Review deployment strategies and reduce risks – Remote teams also need to have procedures in place that help them in effectively lowering risks associated with deployments. Deployments tend to result in application downtime. So, a robust strategy in place can ensure the software is deployed – without causing any major performance issue. Opting for continuous deployments into the QA or test environments can lead to more robust implementations. So can the application of hot patches to quickly overcome any issues that occur during prod deployments.

6.     Maximize golden hours – When teams work from different geographies, the overlap in time zones gets significantly reduced. It is a crucial challenge for us since we have people onsite in the USA, at a nearshore location in Canada, and offshore here in India. To drive agile outcomes, it becomes necessary for organizations to maximize golden hours, so members from different locations can work together at the same time. A sufficient overlap not only created a time slot where teams can talk to each other, but it also gives them an excellent chance to review code, ask questions, and solve problems together.

Deriving the required outcomes from Agile in a remote work setup is not easy. In the absence of face-to-face communication and in-person meetings, trust takes a considerable beating which impacts collaborative software development. Doing agile work with remote teams requires them to continually track/measure project progress, improve/change what’s not up to the mark, and adapt to changing market needs and customer demands with greater efficiency. Keeping remote members motivated continuously and creating a unified team experience can not only encourage bonding but also help drive innovation with increased agility. That’s been my experience anyway. 

Top key points there Ashwin and using a single comms channel is key as we have realised

回复

要查看或添加评论,请登录

Ashwin Megha的更多文章

社区洞察

其他会员也浏览了