Before Christmas we started working on our architecture principles; a set of principles to empower and guide all colleagues who design, build or buy technology for the Co-op. We put together a team from across the Co-op Group to create the principles in line with Co-op values.
Since then, our architects who put them together have improved them, shortened them and have tested them with some of the people who’ll be using them.
It’s important to show and to share
We knew that the best way to get meaningful feedback would be to test the principles with real users. We asked our colleagues across different projects and business units to test them so we could get a better idea of how well they might work in the wider Co-op. Colleagues told us they wanted the principles to have more clarity, direction and include pointers on how to use them. So we’ve made changes based on their feedback.
Here’s a shorter version of the latest version of our 10 Architecture Principles. Note: this is just that: a latest version, and we anticipate this will change (probably shorten) in the future.
Understand what people need
We find out who all the real users are and how to meet their needs in order to define what a service should do and who else is it impacts. Technical and design decisions should come from what people need and not from organisational structures or silos.
Act based on context
Context includes our environment, the wider Co-op, the value chain, the changing market, and the problem we’re trying to solve. Technology quickly becomes uncompetitive as the industry moves on. We need to look beyond the industries we know well for examples of ways we could do things better.
It’s not just about the technology
Coming up with a technology ‘solution’ before we’ve understood the problem could mean we waste significant time and money on a project that goes wrong. We understand problems well when we test how a technology fits with users needs, processes, people and data.
Working together makes things better
When we work in silos we usually only see things from one perspective. That means we’re less likely to spot problems that will come up later on in a project so having conversations early on will lead to a better outcome.
Trusted, reliable and secure
We need to consider how well a technology needs to work (as opposed to what it does) so that it’s trusted, reliable, easy to support and secure. If we don’t do this, the technology won’t meet user needs and will cost a lot of time and money to fix. We need to take time to ensure the technology is secure, reliable, supportable and that it handles data responsibly.
Prove it works
Just because something worked for someone else, doesn’t mean it will work here. If we haven’t proven that something actually meets real user needs before committing, we might find ourselves making compromises later on.
Balance cost, value and risk
We should make decisions based on a good understanding of cost, value and risk and how they impact each other. For example, choosing a solution because it’s the cheapest to deliver doesn’t mean it’s going to be the cheapest to run, manage or provide the same amount of value.
Scope and ownership will change
We can’t assume everything will stay the same. Things will change but we don’t always know what when we’re designing something. Smaller things are easier to change so we need to look for opportunities to break down problems and choose the right technology for each component.
Make things so that they work with other things
If our technology limits our access to data, is difficult to use with other things, or doesn’t work with other technologies, we’re going to have very little flexibility in the future. We can create value we didn’t expect through appropriate sharing and reusing of services and information while respecting data protection, privacy and security requirements.
Do the hard work to keep it simple
Thinking ahead is important. If we’re replacing something, we should make sure we completely remove the old thing first. We need to leave things in a better condition than how we found them.
Next up: governance
We’re going to start work on a new governance model that will sit alongside and complement the principles. We’ll talk about our progress on that soon.
The Co-op architecture community
We’re always looking for talented people to come and work with us. At the moment we’re recruiting platform and software engineers to join our growing engineering community. You can find out more about working for Co-op Digital.