Agility: float like a butterfly, sting like a bee

By

Mazen Lahham and Nick Newsom

22 Oct 2022

|

Blog

Person writing on sticky note
Person writing on sticky note

Digital transformation has immense potential to cut inefficiency and bureaucracy in the public sector. Difficult at the best of times, in periods of crisis it becomes even harder to introduce fit-for-purpose systems and processes to enhance public service delivery. Siren’s experience working on digital transformation in Lebanon shows, however, that it is not impossible. By adopting an agile approach to project management, we have been able to help the state better serve residents, despite a pandemic and biting financial collapse. What does it mean to be agile when working on such projects in low-resource, conflict-prone contexts?

Agile: born out of frustration

The Agile Manifesto was written as a response to major frustrations with the software development processes of the 1990s. At the time, developers had grown up using sequential project management methodologies that relied on careful planning and a rigid approach to implementation. While appropriate for certain types of projects, this methodology generated near constant conflict when used on projects with requirements that were prone to change.

This conflict was usually located between the Development and the Business Teams. Developers would complain that the business side had not provided clear requirements, leaving them with limited resources and unrealistic goals. The business consultants would meanwhile blame the developers for being too slow and producing poor-quality code. A siloed approach to roles and responsibilities additionally meant that many projects failed, as quality assurance (QA) was carried out at the end of the project, rather than on an ongoing basis. If the code didn’t work at the end of the project, it’d be too late to change it, and the developers would be blamed for failing to deliver.

Quality assurance from the start

“Working software is the primary measure of progress.”
“Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale.”- The Agile Manifesto -

Imagine being asked at the height of the COVID-19 pandemic to develop - in two weeks - a platform to manage the transparent and fair disbursement of vaccinations to an entire country. This was the reality we faced in early 2021, when soaring infection rates and rock bottom trust in the state necessitated the rapid deployment of such a platform (COVAX) - despite the fact that it would normally take around three months to do so.

How were we able to roll-out a quality product in rapid time? In Agile, testing is done alongside development; workable code is quality assured without delay until the software is complete. When working on critical systems whose failure may endanger public safety, QA may be brought forward even further. For the vaccination platform, for example, we started by writing the software’s test. We then proceeded with iterations of coding, testing and tweaking until the software made the grade.

Using this method, we deployed the COVAX platform within the two-week deadline. Bugs were of course present and quickly fixed, but most importantly, the software worked and the vaccination campaign could go ahead. A year later, more than 3.7 million people had registered on the platform for a vaccine and at least 2.5 million of them had taken one dose or more. Had we adopted a traditional, sequential method of project management, we would have certainly faced bottlenecks and potentially deadly delays.

Cross-functional teams

“The best architectures, requirements and designs emerge from self-organising teams.”
“Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.”- The Agile Manifesto -

Nobody foresaw that huge swathes of Beirut would be flattened by an explosion in the city’s port in 2020, pandemic or financial collapse in full swing. Unsurprisingly, few were ready to respond. However, if you build resilience into your teams, you stand a much better chance of being able to react to such shocks. In Agile, we talk of “cross-functional” teams. This means focussing on the team's cumulative knowledge, recruiting/training members who can do more than one thing professionally. If done successfully, teams will be able to work with minimal external dependency, thus reducing delays, and pick up the slack if one member leaves.

This served us well in the immediate aftermath of the blast, when we set out to map the damage done to public buildings. Our team already comprised a mechanical engineer, who had the expertise to develop a highly technical damage survey; technologists, who worked day and night to build the digital survey; architects and engineers who were capable of carrying out the damage assessment; and policy analysts, who crunched the data collected and wrote it up into a detailed report, which was published within five weeks of the blast.

Building cross-functional teams requires extensive training and effort. However, depending on the type of project and company structure, a hybrid approach may work, with managers occasionally opting to form project teams so as to allow staff to switch between short-term projects more easily. In this context, agility means not being stuck in one structure and being able to choose the best way to solve any problem based on your needs and current resources.

Simplicity and maximising “work not done”

“Simplicity is the art of maximizing the work not done”- The Agile Manifesto -

Software developers have a tendency to complicate things. At the same time, writing simple code, without removing important features, is very hard. As developers, we must therefore constantly ask: are we over-engineering? Are we complicating things in order to learn more or show off our abilities? Do we have complicated systems to handle simple projects? These questions are typically difficult to answer, as software development almost always involves varying levels of simplicity/complexity, but they can help us minimise the amount of work that is unnecessary.

Do this right and it pays dividends toward the overall user experience and stability of a piece of software. Take the IMPACT platform. During COVID-19 lockdowns, 14.9 million applications for mobility permits were submitted via the platform. This would not have been possible had the interface been overly complicated. We made it as simple as possible so as to make it accessible for even the most remote resident or mukhtar seeking to go about their errands during lockdowns.

We must therefore examine all our processes to remove bottlenecks, eliminate waste and add automation. We’ve found that staff involved in this review and optimisation exercise should speak a common process design language, like Business Process Model and Notation (BPMN). We’ve also been experimenting with using Camunda as a process automation tool to codify and implement the new, more efficient work processes that we are designing.

Credibly representing client needs

“Customer collaboration over contract negotiation.”
“Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”- The Agile Manifesto -

Lebanon’s financial and economic crisis means that young talents are leaving the country in droves. This, and the public sector hiring freeze, mean that it’s unreasonable to expect all our partners to have staff with the technical knowledge to act as Product Owners (PO). POs represent the needs and interests of the client, set priorities and regularly validate team output. They are therefore essential for maximising the value produced by developers. POs are normally appointed by the client, but since this is generally not possible given the circumstances described above, we have on occasion solved this problem by offering training on Agile project management to our clients so they may be actively involved. In other cases, we have sought to appoint a credible proxy internally. This could be someone from the business side with Agile experience. The important thing is that they properly represent the client.

Conclusion

Do all these, and your agility will be evident from the effectiveness and efficiency of your work. Think of the revolutionary boxer, Muhammed Ali Clay. His exciting and distinct style, in comparison to a more powerful style, made him the icon he is. "Float like a butterfly, sting like a bee," Ali's mantra, can remind us all of Agile - and just look at how he moved. It is about flow, speed, simplicity, courage, quality, and adaptability.