Image without description
  • Jacco Meijer
  • |
  • Oct 17, 2025

Software development security

On risk assessments, security controls and the complexity of securing the Software Development Lifecycle (SDLC)

Software development security

Software security is a vital part of information security, covering everything from development to deployment. It is complex to secure because it involves multilayer architecture, developer behavior and the challenges of AI. Cloud services can simplify by shifting security responsibilities to providers but this increases the complexity of compliancy and governance.

– CISSP Common Body of Knowledge

"Discussions of information security must include the security of the software powering those information systems"


Software development

The long definition of software development:

the process of designing, creating, testing and maintaining software applications or systems. It involves writing code, designing software architecture, debugging and deploying programs to meet specific needs or solve particular problems. This process typically follows methodologies like Agile or Waterfall and includes tasks like writing user stories, coding, testing and documentation.

And the short version:

the full lifecycle of building software from an idea to a finished and functional product.

The phrase 'full lifecycle' from the short description brings the topic to that was is known as the Software Development LifeCycle (SDLC).

Software development lifecycle

A search on software development lifecycle in the Dutch NEN register brings up two standards:

StandardTitle and description
ISO/IEC/IEEE 15288Systems and software engineering - System life cycle processes
NPR 5333Output‑based measurement, performance management and contracting for agile software development and maintenance

ISO 15288 is not specific for software but a common framework of process descriptions for describing the lifecycle of systems. The SDLC process descriptions can be combined with security considerations as defined by e.g. NIST SP 800-160.

The Dutch NPR 5333 is a new standard (released november 2025). It is intended to help both clients (customers) and suppliers (developers) in defining, measuring and managing agile software projects in a objective, transparent and outcome oriented way.

The new NPR 5333 standard is listed here because one of the development methods in this post is Agile Scrum.

Development methods

The SDLC covers the full process from an idea to a finished functional product and development methods define the steps in this process. Methods differ by prioritizing different values like speed, quality, flexibility and documentation.

Waterfall

One of the oldest methods is called Waterfall. Although considered outdated and inflexible for modern software development, Waterfall is still used for many smaller projects where little collaboration is involved.

The Waterfall method's inflexibility significantly impacts security because it limits the ability to iteratively assess and update security requirements throughout the SDLC.

Agile Scrum

By the early 2000s, the software industry increasingly recognized that the traditional Waterfall method was too rigid for the fast changing demands of modern development. In response, the Agile Alliance in 2001 published the Agile Manifesto from which various Agile frameworks emerged. Today, the Scrum variant is one of the most widely adopted frameworks for software development.

Image without description
  • Jacco Meijer
  • |
  • Feb 11, 2022

Agile Scrum

The Agile Scrum framework is flexible enough to be used in many different ways. Here's one way of working.

DevSecOps

Inspired by Agile practices around 2007, DevOps found its way into the world. Its adoption is often described as a cultural shift, aiming to break down the traditional silos between software development and IT operations. DevOps creates a more integrated and efficient software delivery process.

A key advantage of the DevOps culture is the acceleration of software release cycles. The increased speed however also introduced new risks by expanding the attack surface. Largely due to the fact that many security teams remained siloed and were only brought into the process late in the SDLC.

Another consequence of faster releases was that traditional compliance processes were seen as obstacles, often delaying deployments due to their slow and manual nature.

In response to these challenges, the industry began shifting toward a new cultural model known as DevSecOps where security and compliance practices are integrated in all phases of the SDLC.

DevSecOps promotes shared responsibility for security across development, operations and security teams which ensures that speed does not compromise safety or compliance.

More on the security controls for every step of this approach can be read in a post on software development security controls.

Image without description
Figure 1. The DevSecOps approach with security integrated in every step

Other methods

Agile Scrum is not the only evolution of the traditional Waterfall model. While Scrum has gained widespread popularity for its iterative approach and emphasis on collaboration and flexibility, other methods have also emerged to address the limitations of the linear Waterfall process.

For example, the Spiral model introduces risk analysis and iterative development cycles, making it more adaptable to changing requirements and uncertainties.

ConceptWaterfallAgile ScrumDevSecOpsSpiral
ProcessLinearIterativeContinuousIterative
RiskAfterwardsManaged by sprintsContinuousCentral
SecurityAfterwardsNot inherentIntegratedPlanned
FlexibilityLowHighHighModerate
ProjectPredictiveEvolvingEvolvingHigh-risk

OWASP

A comprehensive post on software development security should not overlook OWASP, the Open Worldwide Application Security Project. OWASP is a globally recognized organization that provides a wealth of security related resources, tools and best practices for developers and security professionals alike.

Image without description
  • Jacco Meijer
  • |
  • Jan 9, 2025

OWASP and CISSP

OWASP recommendations from the independent information security certification CISSP.

SDLC Maturity

Assessing and improving the maturity of the SDLC is critical to building efficient and secure software systems. Several established maturity models help organizations evaluate their current practices and guide continuous improvement:

  • Capability Maturity Model (CMM) and its successor, the Capability Maturity Model Integration (CMMI), are foundational frameworks that focus on improving software development processes across the organization through structured levels of maturity.
  • The Software Assurance Maturity Model (SAMM) developed by OWASP, specifically targets the integration of security practices into the SDLC, promoting a systematic approach to building secure software.
  • The Building Security In Maturity Model (BSIMM) helps organizations benchmark their existing software security initiatives and offers practical guidance for enhancing security across the development lifecycle.

Security controls & Risk analysis

The two post below continue from here by defining DevSecOps security controls and how to analyze software development risks.

Conclusion

Software development security is a multifaceted discipline that spans the entire Software Development Lifecycle (SDLC). From initial design to deployment and beyond. As development practices evolve from Waterfall to Agile Scrum and DevSecOps, so must security approaches. Traditional methods often treated security as an afterthought, but modern methods like DevSecOps integrate security and compliance throughout the entire SDLC. This promotes a culture of shared responsibility.

The goal of software development is not just to build functional software, but to ensure it is secure, resilient and compliant in a rapidly changing technological and regulatory landscape.

As the industry continues to prioritize speed and innovation, aligning development methods with robust security practices becomes not only a technical necessity but a strategic imperative.


Other posts

Image without description
  • Jacco Meijer
  • |
  • Oct 22, 2025

What cyber security mistakes do organizations still make?

A brief check on how the AI response for this question compares to real life experience.

Image without description
  • Jacco Meijer
  • |
  • Oct 19, 2025

Risk analysis for software development

By systematically identifying and assessing potential risks, teams can reduce uncertainty and prevent costly issues.

Image without description
  • Jacco Meijer
  • |
  • Oct 18, 2025

Security controls for software development

Exploring how security controls protect and improve every stage of the DevSecOps workflow.

Image without description
  • Jacco Meijer
  • |
  • Oct 14, 2025

Canonical controls with Enterprise Risk and Security Management

How to use the SCF canonical control objectives with ERSM in Archimate

Image without description
  • Jacco Meijer
  • |
  • Oct 7, 2025

ISO 27000, ISA 62443, NIS2, BIO, NIST CSF and NIST SP 800-53

How to align the steadily increasing number of cyber security frameworks, standards and regulations?

Image without description
  • Jacco Meijer
  • |
  • Aug 15, 2025

Asset security

Information asset identification and classification from a security perspective

Image without description
  • Jacco Meijer
  • |
  • Aug 8, 2025

Data security

Data identification, data roles and data classification from a security perspective

Image without description
  • Jacco Meijer
  • |
  • Jul 25, 2025

Threat modeling, security frameworks and Enterprise Architecture

Combining ISO 27001, NIST CSF and threat modeling with Enterprise Architecture strengthens all elements

Image without description
  • Jacco Meijer
  • |
  • Jul 18, 2025

Threat modeling as part of a risk framework

Threat modeling in the context of ISO 27001 and NIST CSF

Image without description
  • Jacco Meijer
  • |
  • Jul 11, 2025

Cyber security risk frameworks

Managing cyber security risk with ISO 27001 and NIST CSF

Image without description
  • Jacco Meijer
  • |
  • Jun 27, 2025

NIST CSF Tiers for cyber security risk governance and management

NIST CSF 2.0 contains useful tiers for Capability Maturity Modeling in Enterprise Architecture

Image without description
  • Jacco Meijer
  • |
  • Jun 20, 2025

Archimate risk assessment elements

A few simple specializations for working with risk assessments in Archimate

Image without description
  • Jacco Meijer
  • |
  • Jun 13, 2025

Security principles in Enterprise Architecture

Adding security principles to Enterprise Architecture for NIST CSF and ISO 27001

Image without description
  • Jacco Meijer
  • |
  • Jun 6, 2025

Combining ISO 27001 and NIST CSF

How to use ISO 27001 and NIST Cyber Security Framework together

Image without description
  • Jacco Meijer
  • |
  • May 1, 2025

CISSP certification and Enterprise Architecture

How do the CISSP certification domains relate to Enterprise Architecture and the ArchiMate layers?

Image without description
  • Jacco Meijer
  • |
  • Apr 23, 2025

Architect roles in the ArchiMate context

An ArchiMate model that maps architect roles to the ArchiMate framework layers.

Image without description
  • Jacco Meijer
  • |
  • Mar 18, 2025

Visualizing IT Architecture in three languages, UML, C4 and ArchiMate

What are the differences and what are these languages most used for?

Image without description
  • Jacco Meijer
  • |
  • Feb 18, 2025

OAuth 2.0 and OpenID Connect Sequence Diagrams

Technical specs can be hard to read. While still highly technical, the UML Sequence Diagrams provided in this blog are a lot easier to understand.

Image without description
  • Jacco Meijer
  • |
  • Jan 9, 2025

OWASP and CISSP

OWASP recommendations from the independent information security certification CISSP.

Image without description
  • Jacco Meijer
  • |
  • Mar 21, 2024

UI Library with MDX documentation

Using the simple Render JSX plugin for Esbuild this post shows how to setup a simple UI library.

Image without description
  • Jacco Meijer
  • |
  • Mar 20, 2024

Render JSX plugin for Esbuild

Transform Esbuild generated JSX bundles to HTML pages.

Image without description
  • Jacco Meijer
  • |
  • Mar 19, 2024

Esbuild as a static site generator for MDX

Static site generators gain popularity. This blog is about using Esbuild as a static site generator for MDX.

Image without description
  • Jacco Meijer
  • |
  • Mar 18, 2024

11ty and Github pages

Simplifying the Contentful-Gatsby-Netlfy trio.

Image without description
  • Jacco Meijer
  • |
  • Jun 30, 2022

NPM7 and @npmcli/arborist

@npmcli/arborist is a powerful library that handles the new NPM 7 workspaces. This blog is about a simple make tool that uses the library.

Image without description
  • Jacco Meijer
  • |
  • May 12, 2022

Comparing React app, Nextjs and Gatsby

A new React project starts with a React toolchain. Main tools in the chains are SSR, React server components and GraphQL.

Image without description
  • Jacco Meijer
  • |
  • May 10, 2022

Versioning strategy for NPM modules

It is important to be able to bump the version of a NPM package without side effects.

Image without description
  • Jacco Meijer
  • |
  • Apr 12, 2022

React component themes and CSS variables

Creating React components with flexible themes by using CSS variables.

Image without description
  • Jacco Meijer
  • |
  • Mar 21, 2022

Content modeling with variants

The efficiency of a variant field in a content model.

Image without description
  • Jacco Meijer
  • |
  • Mar 12, 2022

Documentation

Documenting a software project is challenging. Here's a few simple guidelines that help a team writing clear documentation.

Image without description
  • Jacco Meijer
  • |
  • Mar 11, 2022

Javascript history

In 1986 David Ungar and Randall B. Smith developed Self at Xerox PARC. Inspired by Java, Scheme and Self Brendan Eich created Javascript in 1995.

Image without description
  • Jacco Meijer
  • |
  • Mar 10, 2022

On Javascript transpilers, bundlers and modules

There's Javascript transpilers, modules, bundles and bundlers. This is a brief overview of all of these.

Image without description
  • Jacco Meijer
  • |
  • Feb 11, 2022

Agile Scrum

The Agile Scrum framework is flexible enough to be used in many different ways. Here's one way of working.

Image without description
  • Jacco Meijer
  • |
  • Jan 20, 2022

What happened to Wheelroom?

Founded in 2018. Started to fly in 2020 and abandoned in 2021. What happened?

Image without description
  • Jacco Meijer
  • |
  • Jan 19, 2022

Contentful, Netlify and Gatsby four years later

What did we learn from using Contentful for four years?

Image without description
  • Jacco Meijer
  • |
  • Jan 18, 2022

Typescript interface for React UI components

How to define an interface for React UI components that prevents breaking changes.

Image without description
  • Jacco Meijer
  • |
  • Jan 17, 2022

Naming React components

What's in a name? A clear naming strategy helps developers communicate. Most devs rather spend time writing component code than wasting time on a good component name.