• Understand users and their needs
  • Solve a whole problem for users
  • Provide a joined up experience across all channels
  • Make the service simple to use
  • Make sure everyone can use the service
  • Have a multidisciplinary team
  • Use agile ways of working
  • Iterate and improve frequently
  • Define what success looks like and publish performance data
  • Choose the right tools and technology
  • Make new source code open
  • Use and contribute to open standards, common components and patterns
  • Operate a reliable service