Description: The triple constraints of cost, time, and requirements ultimately conspire to add risk into every project. Matching the needs of the project to the correct Software Development Life Cycle (SDLC) can greatly influence the chance of success. The purpose of this class is to help the attendee understand the differences between the various SDLC's. It then provides an overview of the major SDLC's, starting with traditional Waterfall and working forward through the history of systems development to today's Agile methods. The features and benefits of each life cycle type are explained relative to project needs, availability of well-formed client requirements, and timing of actual delivery of the software product. The need for discipline in using Agile methods is reinforced. Exercises are used to reinforce the understanding of the differences between the life cycles.
The afternoon session discusses best practices of the activities that should take place during each phase of the SDLC. The quality gate model is introduced along with the concepts of entrance and exit criteria during a project planning discussion. The separate stages of requirements development and the early need for test cases as validation of requirements are discussed. The difference between design and specifications are reviewed. Configuration management's contribution and change control needs are handled with the code/development portion. Post-implementation follow-up and peer review of work products are included in the session as well.
Learning
Objectives: Students will:
Understand the various SDLC'sLearn the pros and cons of using the different SDLC's
Understand the basic tenets of Agile Development Methods
Understand what should happen at each phase of the SDLC
Understand how to select the best SDLC for each project
Topics:
Module 1: Overview of Software Development Challenges
Projects, Life Cycles and Process
Software Engineering's Track Record
Projects in the CMMI
Module 2: Initiating a Project
Typical Project Overview
SDLC Definition
Typical Phases and
Activities
Vision and Scope
Feasibility
Module 3: Life Cycle Types
Traditional Waterfall
Spiral
Incremental
Evolutionary
Prototype
RUP
RAD
Agile
and All The Rest
Scope and Scalability
Module 4: The Individual Phases
Project Planning
Estimation
Requirements
Construction
Testing
Release
Post Implementation
Module 5: Some Final Thoughts
Outsourcing and the SDLC
Choose the Right Life Cycle
Focus on Quality
Questions and Answers
Prerequisites:Familiarity with Software Development Issues