BETA

Skip links

  • Skip to primary navigation
  • Skip to content
  • Skip to footer
Queensland government logo Queensland government logo
Sign in Sign out
Sign in
  • Profile summary
  • Sign out
Department of Education Department of Education Developer Portal
  • Home
  • Tags
  • Chat
  • New
    APIs
  • Help
  • Contact us
  • Dark mode
  • Home
  • Tags
  • Chat
  • New
    APIs
  • Help
  • Contact us
  • My profile
  • Dark mode

Secure development lifecycle

Gary Morton
by Gary Morton
16 April 2025
Last updated 29 April 2025
Security Standards
Security Standards

Overview
To ensure security is designed into software and systems from the beginning, development teams must adopt and apply secure development standards, controls, and best practices throughout the software development lifecycle (SDLC).

Security should not be a final checkbox—it must be baked into the everyday way we plan, build, test, deploy, and evolve digital solutions.

Our development principles describe how we aim to deliver secure, high-quality, and user-focused products in a modern, sustainable way.

Secure development practices

Area Standard & best practices
Planning & design Security, change-readiness, and prototyping must be considered early. While established patterns (e.g., separation of concerns, microservices) offer a solid foundation, they must evolve with the solution. Teams should enable fast, lightweight prototyping to validate designs rather than relying solely on documentation. Threat modelling and early risk identification should be part of initial planning activities.
Code management Code must be managed using trusted systems (e.g., Azure DevOps, GitHub). Use feature branching to isolate changes and maintain stability. Code should be modular, testable, and scannable, supporting iterative delivery and continuous refactoring. Apply access controls, mandatory peer reviews, and automated static analysis tools (e.g., SonarQube) to surface technical debt and vulnerabilities early.
Testing Testing must occur continuously during development—not just at the end. Use feature-level unit, integration, and security tests embedded in the CI/CD workflow. Security validation should be built into delivery pipelines (e.g., dependency scanning, code quality gates), not reliant on annual penetration tests. Synthetic or obfuscated data should always be used in non-production environments.
Deployment Deployments should be small, frequent, and automated to reduce risk and support faster feedback. Avoid “big bang” releases. Use tools like Azure Pipelines or GitHub Actions to ensure consistent, repeatable deployment with built-in quality gates and environment-specific secrets management. Where appropriate, deploy changes to a beta or trusted user group first, using feature flags or staged rollouts to reduce risk.
Stakeholder collaboration Engage stakeholders continuously throughout development—not just at delivery milestones. Co-design sessions, product reviews, and early user engagement (e.g., with beta testers) are essential to aligning security, usability, and business goals. Teams should regularly demonstrate working features and gather feedback to ensure the product remains fit-for-purpose.
Risk management Post-deployment, maintain visibility over system health and security through logging, telemetry, and alerting. Audit trails, behavioural analytics, and regular review of access and data use should be part of the operational lifecycle. Maintain awareness of known vulnerabilities in dependencies via tools like Dependabot or Snyk.

Case study: The Developer Portal

The Developer Portal exemplifies a modern and secure SDLC model, delivering high-value outcomes using lightweight, flexible controls:

  • Agile delivery enables ongoing prioritisation and re-alignment of effort based on emerging needs.
  • Feature branching and modular code in GitHub and Azure DevOps ensure flexibility and traceability.
  • DevSecOps pipeline integrates security into the development lifecycle from day one.
  • Separation of concerns between logic, data, and presentation allows targeted updates and clearer risk controls.
  • Soft launching via beta flags enables real-time feedback from early adopters without compromising general stability.
  • Synthetic test data ensures privacy and compliance while maintaining functional testing integrity.
  • Frequent feature-level reviews promote team awareness, quality, and opportunities to pivot based on feedback.

Sample secure controls in practice

Control type Example tools / techniques
Version control & feature branching Azure DevOps, GitHub, GitHub Flow
Security-aware CI/CD Azure Pipelines, GitHub Actions with built-in quality and security gates
Static code analysis SonarQube, GitHub Advanced Security, ESLint
Dependency vulnerability scanning Dependabot, Snyk, WhiteSource
Secrets management Azure Key Vault, GitHub Secrets
Testing Jest, NUnit, Postman (with secure data), DAST tools
Feature flagging / Beta testing LaunchDarkly, Azure App Configuration, GitHub Feature Flags

Continuous improvement

Security is not static. Teams should regularly:

  • Review and iterate on security practices as the product and context evolve.
  • Refactor to reduce complexity and risk as systems grow.
  • Embed security champions to promote awareness and challenge assumptions.
  • Promote learning, not blame, when addressing defects or risks.
Powered by Link to AI chat
  • Copyright
  • Disclaimer
  • Privacy
  • Right to information
  • Accessibility
  • Jobs in Queensland Government
  • Other languages

© The State of Queensland (Department of Education) 2025

Queensland Government