Software Development Life Cycle
The software development life cycle (SDLC) is the entire process of formal, logical steps taken to develop a software product. Within the broader context of Application Lifecycle Management (ALM), the SDLC is basically the part of process in which coding/programming is applied to the problem being solved by the existing or planned application. The SDLC is broken down into six stages; project planning, requirements definition, design, development, integration/test, and application/acceptance.
The relationship of each stage to the others can be roughly described as a waterfall, where the outputs from a specific stage serve as the initial inputs for the following stage. During each stage, additional information is gathered or developed, combined with the inputs, and used to produce the stage deliverables.
In the first stage, the planning stage, the important task in creating a software product is extracting the requirements or requirements analysis. Certain functionality may be out of scope of the project as a function of cost or as a result of unclear requirements at the start of development. The phases of the system development lifecycle generally align with the phases of the project management lifecycle; however, SDLC phases do not correspond one-to-one with the project management phases.
One of the challenges for system development projects is aligning the SDLC with the project management lifecycle. In reality, each phase of the SDLC can be thought of as a miniproject in itself, requiring planning, execution, and analysis. As the Project Team proceeds through the project, they will need to create a clear and detailed plan for the phase immediately in front of them, along with a higher-level view of all remaining phases. As the team executes each phase, they will collect additional information that will enable the detailed planning of subsequent phases.
This SDLC is also consistent with newer techniques for system development, such as Rapid Application Development (RAD). RAD allows users to participate in an iterative design and development process. Conceptually, the project “loops” through the Design, Construction, and Acceptance phases, followed by re-Design, revised Construction, Acceptance, and so on.
Project management deliverables such as the Project Scope Statement, Project Schedule, and budget estimates are refined to reflect increasing clarity of scope and requirements with each iteration. Agile methods have proven their effectiveness and are transforming the software industry. As agile methods evolve and extend, Agile Alliance fosters a community where organizations and individuals find ways to transition to and advance Agile practices, regardless of methodology.
The Agile Alliance website offers an information hub where members can access a wide variety of resources; an article library, videos, presentations, local user group listings and links to additional agile resources. Agile Alliance organizes the largest, most diverse and comprehensive agile conference each year. Conference participants learn from hundreds of sessions spanning the entire agile organization and lifecycle, make business connections, and converse with agile thought leaders, practitioners, and authors.
In addition to this major conference Agile Alliance provides financial and organizational support to scores of local, regional and special interest conferences and user groups worldwide. This substitute practice will eventually be accepted more often the project SDLC. The programs are showing vast improvement and adaptability.