2.47k likes | 4.8k Views
SDLC. the Systems Development Life Cycle and its evolution. Systems Development Life Cycle. Traditional method for developing software systems Four or Five Stages Use pre-dates software – applicable for product that takes time to develop
E N D
SDLC the Systems Development Life Cycle and its evolution
Systems Development Life Cycle • Traditional method for developing software systems • Four or Five Stages • Use pre-dates software – applicable for product that takes time to develop • Separates tasks into distinct phases with distinct outcomes • Provides plan for development • Framework for managing progress • Requires a project manager and team to execute • Defines what it means for the project to be “done”
SDLC: Analysis Phase • Study problem from the customer’s perspective • Interview, Observe, Surveys • Understand problem • Requirements documents • User focused
SDLC: Design Phase • Investigate the spectrum of solutions • Consider OTS solutions • Consider Open Source solutions • Design documents in the developer’s language • Prototype to verify feasibility and to get customer feedback
SDLC: Build Phase • Write Production Code • Make sure it works • Functionality most important • Avoid premature optimization • Utilize Alpha testing
SDLC: Deployment Phase • Must be scalable • Deliver final system • Beta testing • Roll out to more and more customers • Make sure deployment to new users doesn’t disrupt existing users
SDLC: Support Phase • Real people using the system • Training • Listen • Separate first impressions from real problems • Begin planning improvements
Traditional Waterfall Approach • Analysis Phase • Understand the problem, produce user focused documents • Design Phase • Understand the solution, produce technical documents and prototypes • Build Phase • Create the solutions, producing a functional system • Deployment Phase • Scale and deliver the solution, producing the final system • Support Phase • Listen to customer, fix bugs, maintain working system
Incremental SDLC • Analysis Phase • Understand problem producing requirements document • Design Phase • Understand and design modular system that can be built incrementally • Build Phase • Build the first working version or next increment • Deployment Phase • Scale and deliver first working version or increment • Support Phase • Listen to customer, plan and prepare for next detailed design of next increment niterations
Agile SDLC Methods • Active user involvement is imperative • Team must be empowered to make decisions • Requirements evolve but timescale is fixed • Requirements are defined at a high level, are “lightweight” and visual • Small incremental releases • Frequent delivery of products • Complete each feature before moving to the next • 80/20 rule – focus on 20% portion of effort that produces 80% of results • Testing throughout cycle – early and often • Collaboration and cooperation between all stakeholders essential
SCRUM Agile Method • Self-organizing teams • Requirements are captured as items in a list of “product backlog” • Product owner role prioritizes products and accepts or rejects work • Product progresses in a series of 2-4 week-long “sprints” • Product is designed, coded and tested during the sprint • ScrumMaster role ensures the team follows scrum rules • No specific engineering practices prescribed • Meetings (ceremonies) and documents (artifacts) are designed to maintain maximum team efficiency • Emphasizes individuals, interactions and structured meetings over process and tools • Emphasizes working software as outcomes over comprehensive documentation • Designed to be responsive to change rather than focusing on sticking to a plan
SCRUM Agile Method • Product requirements broken down into “user stories” listed in a product backlog list • Cross-functional Teams (7 +/- 2 members) choose products to complete in a 2-4 week sprint • Initial planning meeting generates initial sprint backlog list • Daily SCRUM meetings report status, problems • Team members might perform tasks not originally planned • No functional requirement changes during a sprint • At end of sprint, sprint review demonstrates deliverable • At end of sprint, sprint retrospective helps improve team for future sprints
SDLC: Conclusions • SDLC phases adapted from project management method developed prior to computers and software • Iteration improves the process by accounting for the easily changeable and adaptable nature of software • Iteration also reflects the natural coding practices of the software developer • Agile SDLC methods, most common today, go further by defining team rules, roles and procedures to • Shorten development times • Lower development costs • Reduces maintenance costs • Improve quality