Shell Method™ Software Engineering Process Repository
This project uses an iterative development lifecycle, where components of the application are developed through a series of tight iterations. The first iterations focus on very basic functionality, with subsequent iterations adding new functionality to the previous work and/or correcting errors identified for components in production.
The six stages of this Software Development Life Cycle (link to printable version) are designed to build on one another, taking the outputs from the previous stage, adding additional effort, and producing results that leverage the previous effort and are directly traceable to the previous stages. During each stage, additional information is gathered or developed, combined with the inputs, and used to produce the stage deliverables. It is important to note that the additional information is restricted in scope; “new ideas” that would take the project in directions not anticipated by the initial set of high-level requirements are not incorporated into the project. Rather, ideas for new capabilities or features that are out-of-scope are preserved for later consideration.
Each iteration through the SDLC produces a small, but critical amount of functionality (or enhancements to existing functionality) in a short time frame (generally six to eight weeks). By focusing efforts into a series of tightly scoped iterations, the project minimizes unwarranted scope creep and optimizes staff effort onto manageable, bite-sized project chunks. After each iteration is completed, the development team generates a list of recommendations for enhancements to be addressed in the next iteration.
Too many software development efforts go awry when the development team and customer personnel get caught up in the possibilities of automation. Instead of focusing on high priority features, the team can become mired in a sea of “nice to have” features that are not essential to solve the problem, but in themselves are highly attractive. This is the root cause of a large percentage of failed and/or abandoned development efforts and is the primary reason the development team utilizes the iterative model.
The following standards were used as guides to develop this SDLC description. The standards were reviewed and a tailored approach was developed to fit the specific requirements of database projects
ANSI/IEEE 1028: Standard for Software Reviews and Audits.
ANSI/IEEE 1058.1: Standard for Software Project Management Plans.
ANSI/IEEE 1074: Standard for Software Lifecycle Processes.
SEI/CMMI: DAR, IT, OPD, IPM, RD, REQM, IPM, PI, PMC, PP, PPQA, TS, VER, and VAL process areas.