Quick Hits: The Software Development Life Cycle (SDLC)

The Software Development Life Cycle (SDLC) can be described as a phased process employed for software development that typically consists of the following phases: Design, Build, Testing, Release, Support. The SDLC can be implemented in two ways: Waterfall or Agile method. The Waterfall method follows that of traditional project management where all scope is agreed upon upfront and all work is aimed to a specific release date. The Agile method is a bit more flexible and allows for full releases after any stage (sprint cycle).

In terms of security controls, during the Design Stage, all agreed upon scope should be decided upon by the appropriate stakeholders. The agreed upon information should be stored securely and the project plan should be stored on a secure project management application. This is to ensure the proper implementation of changes as any small change which has not been fully vetted can cause problems which cascade across the enterprise.

In the Build Phase, continuous code review needs to be conducted as minor programming error can lead to significant security vulnerabilities. In the testing phase, unit testing and end-user testing is at the forefront.

Testing such as penetration testing (active) and log monitoring (passive) should be conducted. Right before the official release, the product should be released in a beta environment to ensure the functionality works as intended.

Lastly to aid in support, all change/release notes should be properly documented.