Type to SearchView Tags

Agile in a Time of a Pandemic: How Enterprises Can Scale Development During the COVID-19 Crisis
Meshach Samuel Europe Solution Head, Digital & Analytics Practice | November 20, 2020
109 Views

There is no doubt that the world is going through unprecedented times. As the COVID-19 pandemic rages across the globe, the humanitarian cost of this crisis is impossible to quantify. Even as the victim count continues to rise, there is hope of recovery on the horizon. Governments, organizations, and public institutions are aggressively taking steps to ensure the protection and health of their people. However, this has brought about major disruptions not only in people’s personal lives but also in their livelihoods.

Professionals who do not have to brave the frontlines as essential workers, are now quarantined, adjusting to work-from-home models. This shift towards a work-from-home or remote access model has presented every business and industry with its fair share of challenges such as optimizing distributed locations, network security compliance, and ensuring stable productivity, among others. But these are not new challenges and at HCL, we have already proven that we possess the capabilities to continue driving results in such scenarios.

Delivering Value Quickly with Agile

I am reminded of my experiences working on a highly complex and large-scale project with one of the largest international aircraft manufacturers. The key objective was very straightforward: to deliver value quickly. This involved improving the development approach to drive an accelerated time to market, reduce costs, streamline project flows, and minimize handover delays.

Achieving these outcomes required a diverse and highly skilled talent pool, and I believed co-locating would limit our ability to create a high performing Agile team. The client disagreed. I remained persistent in my advice and slowly, but surely, I was able to demonstrate how the perceived shortfalls of distributed development could be mitigated using an agile-at-scale approach. In the end, we were successful, and the project delivered value as planned.

A similar situation also arose while working with a major European bank that sought to launch a global platform that would help optimize costs and enhance sales opportunities. We advised them to scale their team across the globe with a distributed agile at scale approach. With our model derived out of practical experiences of executing distributed Agile at scale, we ensured that speed and quality did not suffer by focusing on the core bottleneck issues around people, process, and technology. Within six-weeks, the client was on-track and completely satisfied.

Abandoning Fears, Achieving Results

For those of us in solution development today, the conversation has turned to similar challenges. My point here is very simple – the world has already gone agile and embraced DevOps. Today, over 97% of organizations practice a variation of agile development methods even as the performance of DevOps teams continues to rise. According to the latest figures from the Accelerate State of DevOps 2019 report, the share of DevOps elite performers has increased from 7% to 20% over the 2018-19 period. This isn’t surprising since these approaches work at scale and across various process challenges such as remote working and work-from-home, making them more aspirational and necessary.

In the wake of the COVID-19 pandemic, Agile teams have changed radically, going from being co-located to being 100% remote. And while many organizations have struggled to maintain or ensure equivalent productivity levels in this situation, my experience has been very different. In fact, our initial analysis into the first 6-weeks of remote working shows us that remote teams are more productive than co-located teams. We analyzed these teams across our European region to determine what makes them an exception and to unravel their common best practices. I should note that our sample size was restricted to DevOps teams with full-stack developers with a period of measurement over 3 sprints (6-weeks) between program increments.

Having said that, here are the recommendations that I offer to any organization seeking to accelerate their agile practices during these times of crisis to get ahead of the curve and deliver true value:

  1. Product and cross-functional teams

    The onset of the COVID-19 pandemic has unveiled some very interesting results for how teams are adapting and performing. We are witnessing a higher degree of performance and greater probability of success from Product or Feature teams during this critical period. This is mainly due to their smaller size, smaller iterations, high performing T-Shaped engineers, cross-functional and self-organizing nature, higher prevalence of trust and transparency and the focus on working towards a common purpose. Every team’s dynamics are being tested during these times and Product/Feature teams have been found to be more resilient and sustainable.

  2. DevOps maturity

    We have also noticed a direct correlation between a team’s velocity and the maturity of their DevOps practices. Balanced maturity across the entirety of DevOps practices tends to yield greater TCO benefits in terms of speed, quality, and predictability than isolated maturity in specific practices. This includes aspects such as Continuous Integration, Continuous Deployment, Continuous Testing, Continuous Provisioning, Continuous Planning/Elaboration, and Continuous monitoring and Observability. Teams that drive Continuous Delivery are naturally more adept at delivering software at speed. Consequently, our recommendation has always been to mature the DevOps practices evenly across these areas to gain sustainable, long-term benefits. I have explored this point of view on scaling DevOps in my Scaling Agile blog series where I have called-out the principle of eliminating or automating hand-offs as being an effective approach for development teams.

  3. Empathy driven through good engineering practices

    I strongly believe that Servant Leadership is the best approach that is applicable across all roles. In engineering, we enact this by showcasing and encouraging empathy towards and amongst fellow engineers. In a work from home environment, the best way for engineers to exhibit empathy is by following good engineering practices. This requires them to adhere to established and consistent practices like clean code, Boy Scout’s rule, continuous code merges, frequent Pull Requests, nightly builds, good code commit comments, remote pairing, following the 12-factor app principle, using Gherkins language for story elaboration, codifying Definition of Ready (DoR), and Definition of Done (DoD), along with the memorialization of design evolution and decisions with tools like Figma, and the adoption of collaboration platforms. Following these requirements diligently and with discipline enables team members to demonstrate trust and empathize with each other. And of course, this leads to a naturally higher velocity and quality from the team.

    In a remote work environment, the best way for engineers to exhibit empathy is by following good engineering practices.

  4. Working agreements

    It is important to moderate working agreements between team members, especially with remote teams. These work from home agreements typically contain numerous steps, such as allocating time for sprint ceremonies, following a remote pairing structure and principle, daily schedule for synchronous communication, making time for code merges, adhering to the memorialization principle, enacting rotation policies, utilizing the Pomodoro technique agreement, leveraging the Eisenhower matrix agreement for prioritization, following coding guidelines and architecture principles, to name a few. Our advice for every remote working team is to define and adhere to the working agreement, moderated by the Agile coach.

  5. Multi-team and hierarchical collaboration and communication

    There are always apprehensions regarding reduced velocity and effectiveness when multiple teams come together to drive decisions. Just a few instances of such ceremonies include PI planning sessions, QBRs, lean budgeting session, program backlog prioritization sessions, user experience research and analysis, usability testing, and integration testing. The heavy usage of collaboration tools like video conferencing facility, sync/async communication platforms, messaging platforms, and memorialization tools have proven to be effective when it is excellently moderated by Agile coaches. The results can be further improved by leveraging business and process architecture techniques with domain driven methods like Wardley mapping. With the surge of remote work, we’ve also noted that hierarchical communication has been a critical challenge. But it can be resolved by implementing the organization hierarchy in all communication and collaboration platforms and enforcing role-based access controls for a more streamlined result.

  6. Measurement

    During these uncertain and volatile times, it’s important to drive confidence within a team and effectively measure the appropriate metrics. But this has been a challenge during the current COVID-19 pandemic. With managers lacking trust in their engineers to deliver, the problem is further compounded by the proliferation of remote working as the norm. In such scenarios, my suggestion has always to ‘leverage’, rather than create, data that can be measured automatically from the DevOps pipeline itself. By following this demarcated approach, we can stay honest, transparent, and boost trust within and between teams. Objective metrics like the number of code merges, number of pull requests, code churn rate, DORA metrics of Deployment frequency, lead time to change, change failure rate, and mean time to restore have proven to be an effective and accurate indication of team performance.

Many organizations facing the current crisis may be hesitant to stay the course with agile team. They may believe that distributed teams are less efficient, slower to handoff work, and more prone to misalignments. They may resist the progress already made and may even consider abandoning agile development models entirely. They may even think that ending product teams and reverting to large, batch-based project development models is the only way to ensure survival. This would be a mistake.

While it is not unusual to experience uncertainty during these times, moving backwards is not the answer. It is easy to call out instances where distributed teams have been inefficient and co-location has been the only pathway to productivity. But this has only been the case because most organizations have not advanced and scaled their agile development practices adequately. And it does not take a pandemic to prove this to be true as experienced by all our FENIX customers who have either seen their velocities stabilize or increase over time.

In fact, now is the time, when businesses are trapped in a forced distributed framework that we can truly unleash the full potential of agile and take it to scale. But this is only possible if we leverage all the best practices at our disposal and ensure clear communication and transparency with business. Agile at scale requires teams to be adaptive and responsive to change. But this response can only be assured if it is supported with the right tooling, engineering practices, best-of-breed engineers and fail-fast as an approach with shorter iterative processes.