I agree to TechTarget’s Terms of Use, Privacy Policy, and the transfer of my information to the United States for processing to provide me with relevant information as described in our Privacy Policy.

Please check the box if you want to proceed.

I agree to my information being processed by TechTarget and its Partners to contact me via phone, email, or other means regarding information relevant to my professional interests. I may unsubscribe at any time.

Please check the box if you want to proceed.

By submitting my Email address I confirm that I have read and accepted the Terms of Use and Declaration of Consent.

A software development life cycle is the long-term view of software as a product, from initial planning through maintenance and eventual retirement of the completed application. Organizations strive to quickly and efficiently produce high-quality software through intricate planning, commonly referred to as SDLC phases or steps.

Standard SDLC phases

The number of phases in an SDLC can vary depending on the business and its software product goals, typically falling between five and seven steps. At the most basic level, software is designed, developed, tested and then released. Upon release, the software is maintained until it is discontinued.

In general, the SDLC process follows these phases:

Evaluate the existing system. If there is existing software in place, then any deficiencies in that software are identified before its retirement. This can be done by interviewing users and consulting with support personnel, as well as by reviewing metrics gathered through application performance monitoring (APM) tools. This step provides insight on the strengths and weaknesses of the current software and what can be implemented in the new software.

Define the new system requirements. Deficiencies in the existing software must be addressed; moreover, specific proposals are made for improvement, such as new features and functionality. If no previous software is in place, this phase is simply defining the requirements for proposed software. Requirements can include hardware, operating systems (OSes), programming and security.

Design the proposed system. The design phase turns the software specifications into a design plan. Plans are laid out concerning the architecture, hardware, OSes, programming, communications and security issues.

Develop the new software. During the development phase, the code is built, tested, integrated and managed. Developers must obtain and install new components and programs. The code's structure determines which tests are utilized. For example, the software could be built as a set of microservices instead of a monolith structure, which means the software would not have to be regression tested with further updates or iterations. Software testing is a large step in the SDLC, and some models count it as a separate phase from development.

Put the system into use. Deployment can be accomplished in various ways. Some new software is phased in, according to application or location, to gradually replace an old product. In other cases, the old system is shut down, and users cut over to the new system all at once.

Monitor the software. The new software should be exhaustively evaluated for performance and stability. Organizations use logs, as well as APM and other metrics-gathering tools, for monitoring. Any concerns should be reported to the development team for remediation in patches or ongoing software maintenance efforts.

Creating SDLC

SDLC models

Various SDLC models exist, and the right one depends on any given project:

Waterfall is a traditional linear and sequential approach to SDLC. The Waterfall model moves through the defined stages of SDLC only when a stage works as intended. This model can be adequate when the project is small and there are not any uncertainties in direction. However, Waterfall has fallen out of favor for SDLC adherents, due to the need for software development to be fast and flexible.

Agile is a much more utilized SDLC approach. Agile is an SDLC model that approaches software development in incremental but rapid cycles, commonly referred to as sprints. Each sprint builds upon the last. These sprints compose the project quickly with higher flexibility, as new changes in scope and direction can be implemented in each sprint. Agile can mean less time spent in the planning phases, and a project can diverge from original specifications. Documentation is crucial, regardless of the type of SDLC model for a given application, and is usually done in parallel with the development process.

Join the conversation

7 comments

Register

I agree to TechTarget’s Terms of Use, Privacy Policy, and the transfer of my information to the United States for processing to provide me with relevant information as described in our Privacy Policy.

Please check the box if you want to proceed.

I agree to my information being processed by TechTarget and its Partners to contact me via phone, email, or other means regarding information relevant to my professional interests. I may unsubscribe at any time.

Currently, it is used more for Software, but originally, it applied to the physical systems (hardware/infrastructure) and also included decommissioning/retirement of the server or machine itself. Now, many companies are using Cloud services for servers so that the company does not have to be concerned with the actual server, just with which applications are being implemented and upgraded on the cloud server farm.