The ‘arctic fox’ model of software delivery

How to build simplicity into your team and ways of working

Mark Rees
Mark Rees
Nov 15, 2020 · 6 min read

Recently, I celebrated my seven year anniversary of originally starting at Xero, and it got me thinking about what we’ve achieved in that time. Scaling from a startup to a global tech company in the space of 14 years means we’ve had to respond to an incredible amount of growth and change, from our customers and teams to our ways of working.

I remember the original meetings we ran every six weeks to coordinate a release in the main Xero application. These involved getting all the product managers and tech leads across Xero into a single room. Someone would read through a list of all the different artefacts that could be released, one by one. And people were asked to raise their hand if they had changed anything in that artefact.

Looking back, it’s hard to imagine how it ever worked. And unfathomable to think that we would only release once every six weeks, when we now release many hundreds of times a week.

The story of Xero from a delivery perspective is the story of scaling. It’s about the challenges and opportunity of rapidly growing the number of people working on a single product, ensuring that every new person increases our capacity to deliver valuable software to our customers. Essentially, making sure that 1 + 1 = 2.

In my time at Xero, this scaling has been relentless — we’ve gone from 10 teams to 14, 22, 36, 60 and now over 100. This rapid growth is inspiring. It brings wave after wave of talented, ambitious people into our company and creates opportunities for them to be involved in work that you’d never see in a smaller company, such as:

  • Site Reliability Engineering: the discipline pioneered by Google that applies software engineering ideas to the task of operating a SaaS platform (like Xero), where software takes over manual, labour-intensive operational support tasks, allowing engineers to focus on higher-value work.
  • Platform-as-a-Service: the internal products and product teams that make using AWS cloud services as easy, secure and reliable as possible. Teams responsible for tooling, automation and guidance focus on the best way to use AWS network, storage, data, eventing and deployment capabilities.
  • Engineering Practice: a small but incredibly impactful group of teams that lead our efforts to build a sustainably excellent software engineering culture and practice. They guide the way we build software at Xero through standards, education and support.
  • Data Science and Advanced Analytics: the platform and capability we are building that is changing the way we develop products and services, and will define the next generation of Xero product offerings.

Managing complexity at scale

Of course, this rapid growth and scale also presents a series of challenges:

  • For a fast growing company like Xero, it’s always difficult to evolve your processes at exactly the right pace. Too fast and you build processes that slow you down, too slow and processes lag the size of the organisation, making it more difficult to get stuff done.
  • Software systems are complex, and as their size and the number of teams working on them increases, dependency management becomes a critical capability. Every team depends on others to achieve their mission, so building mechanisms to surface and reconcile these dependencies is vital.
  • All of our teams are expected to support the software they build. This is essential to ensure they balance investment in new features against improvements to old software. But sometimes the operational burden of maintaining existing products can become overwhelming.
  • We continue to hire a lot of engineers at Xero, spread across locations including New Zealand, Australia and Canada. Keeping pace with our hiring goals and managing an increasingly distributed team is one of the biggest challenges we face.
  • Another fundamental challenge any scaling product team faces is balancing autonomy and consistency. We hire amazing people, so we want to give them the autonomy to develop innovative solutions for our customers. However, with a large team comes the need to ensure consistent practices and approaches. Getting this balance right is a constantly evolving and fascinating challenge to tackle.

At their core, all of these challenges are symptoms of complexity. But in many ways this is a paradox, because when we break it down, our delivery model is in fact very simple: we organise ourselves into many small, autonomous, cross-functional teams that are aligned with customer outcomes.

Finding simplicity in complexity

Without order, combining simple elements can become unruly and unmanageable. But it is possible to create a complex system, made up of any number of simple elements, that runs at optimal efficiency and performance. Perhaps the best example of this is life itself.

Credit: phys.org

The image above is a carbon molecule. It’s the fundamental building block of life and one of the keys to creating the complex system that sustains us and every other living thing. Each molecule is a simple element, but when combined can form creatures of amazing beauty, like one of my favourite animals — the arctic fox. This extraordinary creature has adapted to frigid extremes through its ability to construct maze-like underground dens, and grow the best fur insulation of any mammal on the planet.

Photo by Jonatan Pie on Unsplash

So how can we bring that same order to a complex system like Xero? We could respond with solutions that match the complexity of the problem, like large agile frameworks, rigid structures and processes, and the endless search for the bleeding edge idea. But in my experience, the solution to complexity is almost never more complexity. It’s simplicity.

Again, life itself is a great example here. How does this incredibly complex system not collapse on itself in an entropic mess? It regulates itself through a series of simple, self-regulating feedback loops. There are plenty of concepts that we use to do this in our teams and organisations. They include:

  • Acknowledging upfront that many of the problems that we have to solve are complex and the exact solution is hard to predict ahead of time. This means we need to frame our solutions to these problems as a series of experiments where we test our best thinking and learn as we go. It means adopting a hypothesis-driven approach to product development, which adopts this mentality and gives it structure.
  • A clear prioritisation model that is focused on getting our most valuable work to our customers as soon as we can. There is always much more work that we can possibly manage, so we must develop a structured approach for deciding what we should do first. There are many ways to do this — I wrote about this in my article on how prioritisation has guided my personal approach to mental wellbeing.
  • Using lean methods for managing the flow of work, so we can deliver the most value to our customers. Product development is the business process of translating ideas into working software that is consumed by customers. To optimise this process, we can use ideas from lean that describe the importance of delivering value in small batches, establishing short feedback loops so we can quickly assess the impact of our changes, and minimising hand offs between teams.
  • Understanding and managing the cognitive load on our teams. To maximise the productivity and well-being of our teams, we need to be mindful of the complexity of the environment they operate within. We have talented people, but to do their best work we need to make sure they have the mind space to focus on the highest value problems. This means developing structures, tools and processes that are easy to use and understand.

Applying these simple ideas is the best antidote to complexity and the best way to improve the delivery of a network of teams like ours. So my challenge to you is to think about your own maze-like den structures and how you can build simplicity into your ways of working.

Humans of Xero

Insights, inspiration and stories from the Humans of Xero