2. Work out how to deliver value early and incrementally
In an Agile environment, our aim is to deliver value frequently and incrementally. This is not always as straightforward as it may seem, particularly when we are dependent on external services in order to deliver.
User-facing products are frequently dependent on the delivery of external services. Backend products are often faced with the double-edged sword of being a dependency for a related front-end product, whilst also being dependent on other external services.
Finding a way to navigate this highly interdependent environment in order to deliver value early and incrementally is crucial. The design of backend infrastructure is essential to minimising and mitigating these dependencies, and whilst technical team members are generally responsible for architecture decisions, it’s important as a product owner to understand the implications of the chosen architecture. Spotify has provided interesting insights into how it designs its backend infrastructure to minimise dependencies.
Delivering “value” doesn’t always have to mean delivering production software. It could mean resolving downstream dependencies early to enable other teams to work more efficiently. One way to achieve this is to build a mocked interface to enable external services to integrate, whilst building out the actual service behind the scenes.
3. Know your user (or know the people who do)
In order to make the best decisions for our products, we need to consider the desired outcomes of both the business and our users.
It's generally straightforward to imagine how a user will interact with a product that has a direct user interface. We research our users’ behaviour, understand their environment, and we design and build our products accordingly to enable them to achieve their desired outcomes.
It's just as fundamentally important to consider the end user when making product decisions about a backend system, although often less straightforward. If your product has a user interface, connect with the team building it. Collaborate to understand the user’s needs and drivers, and refine a set of principles that you can adapt to guide your decision-making process.
Is the user’s priority speed, security or something else? Is there any heavy-lifting the backend can do to improve the user’s experience on the front-end? Having a solid understanding of your user will enable better, more holistic product decisions.