Apollo, also known as ‘AIR MILES Next’, is a program that aims to introduce a new technical platform and way of working. There are no architects in Apollo, however, we’ve always had a technical roadmap – a set of ‘technical requirements’ to be more precise.
So, how do you build anything – in particular, a technical platform – without an architect? To answer this question, let’s first take a step back.
According to the book, the “Role of the Agile Architect” the architect has the overall understanding of the requirements, formulates the design, communicates the architecture, supports the developers and verifies the implementation. Furthermore, the author states that “in an agile development, the architect has the main responsibility to consider change and complexity while the other developers focus on the next delivery. In any system of real-world complexity, you can't allow anybody to change anything at any time, any more than any member of a family can take down a wall of the house.”
Architecture is constantly evolving
Over here, our approach is built around a set of Agile Manifesto values which allow us to embrace this approach whole-heartedly:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Responding to change over following a plan
And most of all, we support the idea that the best architectures, requirements, and designs emerge from self-organizing teams.
Architecture is no longer a static image of the system. It is constantly changing and is now considered a way of working. Architecture evolves thanks to constantly changing needs, technology trends and feedback from both happy and not-so-happy end-users. Architects don’t try to predict and force outcomes. They start with a set of technical requirements and ensure those requirements are addressed when delivering business value. Coming up with a solution based on requirements alone is very risky and typically leads to the wrong solution.
How the role of software architect is changing
In their book, “Lean Software Development”, Mary and Tom Poppendieck talk about a concept called, ‘the last responsible moment’. One way to interpret this concept is that not deciding is better than making any kind of decision. What this really means is that decisions should be made as late as possible, only when the information on which to base the decision is available. This concept goes against traditional architecture practices, but allows the architecture to evolve over time respecting architectural guiding principles.
So, are architects still needed? Of course, they are but their role has evolved in this new environment. It no longer involves sitting at a desk, creating diagrams and making design decisions. Rather, architects are servant leaders. They work with teams to help create solutions. They do this by:
- Facilitating design sessions with teams
- Transferring their knowledge to others
- Guiding teams through organizational and technical policies and practices
Listen, listen, listen
As mentors and coaches, the most important thing architects can do during design sessions is listen. Occasionally, they facilitate conversations and jump in to break decision deadlocks.
Lastly, architects are developers. During architecture spikes, POC’s or just because they feel like it, they roll up their sleeves and get to work coding with the rest of the team.
We have these types of architects in Apollo, but the difference is that we call them ‘competency leads’. More important than this title is their commitment to dig into systems and help teams get things done.