Defence Technology Principles

Principle 9 — Continually improve

The best way to build good, user-centric products is to start small and iterate often.

Use modern delivery methods and place continuous improvement at the heart of your service.

You need to plan for change and iterate quickly by proactively understanding user needs and business requirements as they develop.

Work with your business area on improvements that have the most value. You should frequently carry out user research as part of your development cycle.

The best way to build good products is to start small and iterate often. Release a minimum viable product (MVP) early, test it with actual users and learn from the feedback. To achieve this, manage your project or programme using an agile framework.

Work in an agile way

Iteration reduces risk. It makes big failures unlikely and turns small failures into lessons. This is part of an agile delivery model.

To deliver consistent, quality outcomes, we recommend using modern agile software development practices when building digital services:

  • Identify and empower a product owner: Appoint a product owner whose primary role is to be accountable for how well the product meets user needs
  • Deeply understand user needs: Engage with real and/or expected users to identify and understand their underlying needs
  • Prioritise rapidly delivering value to users: Your team needs to define its MVP, which is the smallest release possible to deliver a solution that meets a user need
  • Use version control: You should use a MOD managed version control system, such as GitHub, for all source code that will deploy and run a solution, including both infrastructure-as-code and application code
  • Track work consistently: Use a MOD-managed central location for tracking current and future work, for example Jira as the work tracking tool and Confluence for document design details and decisions
  • Automate testing: Include automated tests that verify functionality as part of the continuous integration / continuous delivery (CI/CD) pipeline
  • Provide support and feedback mechanisms: Measure support issues by giving users a way to feed back to the team and receive a reply in a reasonable timeframe
  • Document and share Application Programming interfaces (APIs): Document APIs using industry standard API-Specification formats (i.e. OpenAPI, RAML)
  • Automate deployments: You must be able to automatically deploy the solution to non-production and production environments using a MOD-managed CI/CD pipeline, for example Tekton on the Defence DevSecOps Service
  • Automate monitoring: See how systems are working through enterprise application performance monitoring (APM) tools, to understand how your solution is performing and changing over time
  • Automate alerting and incident response: Solutions must integrate with enterprise monitoring tools, automatically detecting and fixing problems as much as possible
  • Use data to drive decisions: Have continuous ways to measure how a product is performing for users, which helps to make decisions about the backlog and roadmap
  • Iterate and improve continually: Capture and respond to changes in user needs, technology or government policy throughout the product’s lifetime

To learn more about agile working, read the Government Service Standard.

What you should do

To ensure your solution meets users’ needs, and to reduce the risk of delivering the wrong thing and not meeting standards:

  • follow the DDaT Capability Framework to help recruit the right people
  • follow the Government Service Standard
  • follow the Technology Code of Practice
  • create a 'learn fast' culture which moves away from blame and knows that small, managed 'failures' are good practice
  • regularly carry out user-centred design practices, such as user research, to understand their needs and build these into your change lifecycle
  • plan for change and iterate quickly; do not aim for quarterly releases unless it’s most appropriate for your service; try to get changes out as quickly as possible
  • prioritise your product backlog to ensure the timebox or sprint aims are clearly understood and delivered
  • regularly engage with users and stakeholders about your service, for example, through show and tell sessions

Updated 09 Sep 2024