Royal Navy Design System

2019 - Product Design & Management

The information in this article omits any information as to the inner workings of the Royal Navy. This is a reflection of the work conducted by my team between 2018 and 2021, and any reference to internal Application teams has been generalised. I have had no involvement with The Royal Navy since 2021.

Problem

The Royal Navy is a behemoth of an organisation. It employs over 32,000 full-time personnel and collaborates with a large number of SME and Enterprise clients. Without active and conscious management, scale like this makes it incredibly easy for software design and behaviour to lack consistency.

Intended Outcomes

User-Centred Design teams should be autonomous in their problem solving, but still have confidence that their work meets both quality and consistency standards.

Proposed Solution

Create a Design System and accompanying standards that Designers and Developers can use to build Royal Navy (NELSON) applications.


Note

Whilst this article contains details of the various solutions implemented in the Navy context, it also contains more generalised thoughts regarding design and systems. Part recount, part brain-dump, it covers an array of topics, from design challenges within a large organisation, through to specific implementation details & technology opinions.

Defining the Mission Statement

A bit naff, but still worth the time to define. With an organisation the size of the Royal Navy, it's important for wider stakeholders (and yourself) to remember why you exist in the first place.

We found we were often


Technical Decisions

It is worth being confident and opinionated when making decisions about technology. Defining what your design system will and, more importantly, won't support will save a lot of headaches (and tech debt!) in the long run.

An early regret I have from the Royal Navy Design System is trying to appease too many parties at once. We had a large number of users wanting to implement the design system, but each were in a different stage of an application life-cycle. We had a true mixture of:

Gre