1. Externalise all configuration to configuration files or environment variables.
  2. Internationalisation principles must be applied to ensure future localisation.
  3. Localisation of the software must be available in English and should be available in other relevant languages.
  4. Provide an API, using versioning for REST APIs.
  5. Use federated authentication and/or social login.
  6. Provide full configuration examples.
  7. Provide endpoints for monitoring (service status) and statistics (e.g. user requests and resource utilisation).
  8. Use structured logging, e.g. NSD JSON Schema.