Commercial enterprises, public organizations, civil institutions, and governmental partners typically require heavy upfront planning and operate within strict hierarchical structures - conditions that resemble a waterfall mindset and often clash with the agile, fail-fast approaches that dominate modern software engineering. This tension has shaped much of our work: while we advocate for adaptive, iterative delivery, our partners cannot simply switch their processes overnight, and we must constantly navigate the gap between two worlds.
We present a case study from a decade-long partnership in the Hungarian public sector. The system in question is critical for the daily life of millions of citizens: a large-scale enterprise application that began as a monolith and is now gradually being renewed into a microservice architecture. This migration represents one of the most complex modernization efforts we ever faced.
The heart of the story lies in the contradictions. As a technically skilled team, we strive to design robust architecture and deliver high-quality code. Through this case, we demonstrate clashes between agilists and architects, the governance of large-scale environments, the co-existence of legacy and modern systems, and the challenges of communicating architectural decisions to non-technical stakeholders.
In this talk, we share lessons learned from a project that feels like racing down the highway in a car powered by two engines, as the legacy and the renewed applications are running side-by-side. Our takeaway is that in such context success does not come from applying agile practices by the book, but from tailoring them carefully to the problem at hand meanwhile constantly improving the teams’ practices. The lessons we share are not abstract principles, but insights from building and evolving a system without which much of a country’s daily life would grind to a halt.