An Approach to Software Development Life
The Software Development Life Cycle (SDLC) can be implemented in an
organization in many ways.
In this document, I will explain the phases of the Waterfall approach and explain
how one organization implemented a modified version of this process.
2. Waterfall Approach
One approach (commonly referred to as the Waterfall approach) consists of five
phases: Requirements, Design, Coding, Test and Maintenance.
The Requirements Phase is comprised of gathering requirements, writing the
scope document and preliminary Requirements Specification, reviewing the
specification with the customers, preparing the final Requirements Specification,
and gaining key stakeholder approval for the Requirements Specification through
a formal Requirements Review.
In the Design phase, the Requirements Specification is used as the basis for the
Design Specification. The Design Specification explains how the requirements
will be implemented. If the software requires user interaction, a storyboard may
be used to help determine the design. If the software does not require user
interaction, a flow chart may be all that is needed.
The Design Specification will also include information on programming
languages, platforms and operating systems that will be used for the application.
During the coding phase, the software is written. Depending upon the complexity
of the design, this phase consists of unit testing by individual developers, and
various levels of integration testing by subsystem owners.
During this phase, full system test is performed to insure that the system
performs to specification. The test specifications should have been completed in
the prior phases for use during system test.
During the maintenance phase, the software is used in production. Issues with
the tool and new requirements are captured in a ticketing system and reviewed
for implementation in future releases.
3. Modified Implementation
One modified implementation of the Waterfall approach consists of four phases:
Systems Engineering, Coding, Test, and Maintenance.
3.1 Systems Engineering
The Systems Engineering phase combined the Requirements and Design
In this phase, requirements for new features and bug fixes were elicited from the
customer. Additional requirements were gathered from existing requirements in
the requirements ticketing system.
Scope documents and Systems Engineering Specifications were created that
documented the requirements and included user implementation details that
would typically be included in the design phase.
The coding phase consisted of phases referred to as Mini Code Locks. A mini
code lock was a snapshot of the code at a particular date in the complete coding
cycle. Each release typically consisted of two mini code locks and a final code
During the test phase, an Integration and Test team performed system test on
the complete system. This phase began after the first mini code lock. The
integration and test team reset the software baseline after each mini code lock
date. The final test was run against the final code lock.
This phase is the same as the Maintenance phase in the standard Waterfall
approach defined in the approach defined above.