SlideShare a Scribd company logo
1 of 30
Download to read offline
Presented By
Steve Gladstone
steve.gladstone@spg-solutions.com
Presentation Roadmap
 What is an SDLC and why use one?
 Selected modern SDLCs:
 Waterfall Method
 Agile Development Methods
 Rational Unified Process (RUP)
 Extreme Programming (XP)
 Scrum
 Capability Maturity Model Integration (CMMI)
 Other SDLCs to research
 Wrap up and Questions
Why Use an SDLC?
 Project (per PMBOK): “a temporary endeavor undertaken
to create a unique product or service.”
 An SDLC is used to manage the constraints of the “Golden
Triangle”
What is an SDLC and why use one?
(Control Scope)
What is an SDLC and why use one?
(Control Duration)
What is an SDLC and why use one?
(Control Cost)
Waterfall
Waterfall (Traditional)
The following documents serve to clarify objectives and deliverables and to align sponsors, clients, and project team's
expectations:
 Project Charter
 Preliminary Scope Statement / Statement of work
 Business case / Feasibility Study
 Scope Statement / Terms of reference
 Project management plan / Project Initiation Document
 Work Breakdown Structure
 Change Control Plan
 Risk Management Plan
 Risk Breakdown Structure
 Communications Plan
 Governance Model
 Risk Register
 Issue Log
 Action Item List
 Resource Management Plan
 Project Schedule
 Project Status Report
 Responsibility assignment matrix
 Database of lessons learned
 Stakeholder Analysis
Issues With Waterfall Method
 The main problem with the waterfall model is the inflexible division of
a project into separate stages, so that commitments are made early on,
and it is difficult to react to changes in requirements. Iterations are
expensive.
 This means that the waterfall model is likely to be unsuitable if
requirements are not well understood or are likely to change in the
course of the project.
Agile Development Methods
 Agile software development refers to a group of software
development methodologies that promotes development iterations,
open collaboration, and process adaptability throughout the life-cycle
of the project.
 It chooses to do things in small increments, with minimal planning,
rather than plan at length. This helps to minimize the overall risk, and
allows the project to adapt to changes more quickly. There is also an
emphasis on stakeholder involvement. Meaning at the end of each
iteration, the stakeholder is consulted about the product and
comments are noted.
 Extreme Programming (XP) and Rational Unified Process (RUP)
are two types of agile methods (there are many others).
Agile Methods Rely Upon
Iterations and Releases
 Some of the principles behind the Agile Manifesto are:
 Customer satisfaction by rapid, continuous delivery of useful software
 Working software is delivered frequently (weeks rather than months)
 Working software is the principal measure of progress
 Even late changes in requirements are welcomed
 Close, daily cooperation between business people and developers
 Face-to-face conversation is the best form of communication (Co-location)
 Projects are built around motivated individuals, who should be trusted
 Continuous attention to technical excellence and good design
 Simplicity
 Self-organizing teams
 Regular adaptation to changing circumstances
 Essentially, scope can’t be fixed, so let’s fix schedule (time boxing), creating
iterations and releases
Agile Mapped To Latest PMBOK
Agile Mapped To Latest PMBOK
Rational Unified Process (RUP)
 The creators of RUP focused on diagnosing the characteristics of different failed software
projects; by doing so they tried to recognize the root causes of these failures. They also
looked at the existing software engineering processes and their solutions for these
symptoms.
 A representative list of failure causes includes the following:
 Ad hoc requirements management
 Ambiguous and imprecise communication
 Brittle architecture (architecture that does not work properly under "stress")
 Overwhelming complexity
 Undetected inconsistencies in requirements, designs, and implementations
 Insufficient testing
 Subjective assessment of project status
 Failure to attack risks
 Uncontrolled change propagation
 Insufficient automation
 Project failure is caused by a combination of several symptoms, though each project fails
in a unique way. The outcome of their study was a system of software best practices they
named the Rational Unified Process.
RUP Phases
 The Rational Unified Process (RUP) is an iterative software development
process framework created by the Rational Software Corporation, a division of
IBM since 2003.
 RUP is not a single concrete prescriptive process, but rather an adaptable
process framework, intended to be tailored by the development organizations
and software project teams that will select the elements of the process that are
appropriate for their needs.
 The following are phases of RUP, which align to business activities intended to
drive successful delivery and deployment of projects. It also provides the
taxonomy for blue printing and producing enterprise architecture artifacts
across its different domains.
 Inception - Identify the initial scope of the project, a potential architecture for
the system, and obtain initial project funding and stakeholder acceptance.
 Elaboration - Prove the architecture of the system.
 Construction - Build working software on a regular, incremental basis which
meets the highest-priority needs of project stakeholders.
 Transition - Validate and deploy the system into the production environment
RUP: Phases, Disciplines, and Iterations
RUP and UML
 Unified Modeling Language (UML) is an essential set of object oriented tools (artifacts) used in RUP.
 Use only necessary artifacts. Not all those listed are required.
 Structure diagrams emphasize what things must be in the system being modeled:
 Class diagram
 Component diagram
 Composite structure diagram (added in UML 2.x)
 Deployment diagram
 Object diagram
 Package diagram
 Behavior diagrams emphasize what must happen in the system being modeled:
 Activity diagram
 State Machine diagram
 Use case diagram
 Interaction diagrams, a subset of behavior diagrams, emphasize the flow of control and data among the things in the
system being modeled:
 Communication diagram
 Interaction overview diagram (added in UML 2.x)
 Sequence diagram
 Timing diagram (added in UML 2.x)
UML Example: Sequence Diagram
XP Programming Practices
 Extreme Programming has 12 practices, grouped into four areas (some key items
elaborated upon below):
 Fine scale feedback
 Pair programming - two programmers work together at one keyboard. One types in code while the
other reviews each line of code as it's typed in. The person typing is called the driver. The person
reviewing the code is called the observer or navigator. The two programmers switch roles
frequently.
 Planning game – Integrate user stories in weekly iteration and release planning meetings
 Test driven development
 Whole team – The customer (end-user) is part of team and always on-hand
 Continuous process
 Continuous integration
 Refactoring or design improvement
 Small releases
 Shared understanding
 Coding standards
 Collective code ownership - Daily builds, smoke tests, “you broke it you fix it” approach
 Simple design
 System metaphor
 Programmer welfare
 Sustainable pace - software developers should not work more than 40 hour weeks, and if there is
overtime one week, that the next week should not include more overtime. Measure velocity of
feature creation and adjust commitments in next iteration.
Scrum Method
 Scrum (not an acronym) is a process skeleton that includes a set of practices
and predefined roles. The main roles in Scrum are the ScrumMaster who
maintains the processes and works similar to a project manager, the Product
Owner who represents the stakeholders, and the Team which includes the
developers.
 During each sprint, a 15-30 day period, the team creates an increment of
potential shippable software. The set of features that go into each sprint
come from the product backlog, which is a prioritized set of high level
requirements of work to be done.
 During sprint planning meetings the Product Owner informs the team of
the items in the product backlog that he wants completed. The team then
determines how much of this they can commit to complete during the next
sprint. During the sprint, no one is able to change the sprint backlog, which
means that the requirements are frozen for a sprint.
Going Agile With Scrum
Scrum Roles: Pigs and Chickens
 Several roles are defined in Scrum; these are divided into two groups;
pigs and chickens, based on a joke about a pig and a chicken.
 A pig and a chicken are walking down a road. The chicken looks at the
pig and says, "Hey, why don't we open a restaurant?" The pig looks back
at the chicken and says, "Good idea, what do you want to call it?" The
chicken thinks about it and says, "Why don't we call it 'Ham and
Eggs'?" "I don't think so," says the pig, "I'd be committed but you'd only
be involved."
Scrum Roles: Pigs
 Pigs
 The ones committed to the project and the Scrum process; they are the ones with "their bacon on
the line.“
 Product Owner
 Represents the voice of the customer.
 Ensures that the Scrum Team works with the right things from a business perspective.
 Writes User Stories, prioritizes them, then places them in the Product Backlog.
 ScrumMaster (or Facilitator)
 Primary job is to remove impediments to the ability of the team to deliver the sprint goal.
 Not the leader of the team (as they are self-organizing) but acts as a buffer between the team
and any distracting influences.
 Ensures that the Scrum process is used as intended (the enforcer of rules).
 Team
 The team has the responsibility to deliver the product. A small team of 5-9 people with cross-
functional skills to do the actual work (designer, developer etc.).
Scrum Roles: Chickens
 Chickens
 Not part of the actual Scrum process, but must be taken into account.
 An important aspect of an Agile approach is the practice of involving users, business and
stakeholders into part of the process. It is important for these people to be engaged and provide
feedback into the outputs for review and planning of each sprint.
 Users
 The software is being built for someone! If software is not used - much like 'the
tree falling in a forest' riddle - was it ever written?
 Stakeholders (Customers, Vendors)
 The people that will enable the project, but are only directly involved in the
process at sprint reviews.
 Managers
 People that will set up the environment for the product development
organization.
The Daily Scrum Meeting
 Each day during the sprint, a project status meeting occurs. This is
called a scrum or the daily standup.
 The scrum has specific guidelines:
 The meeting starts precisely on time. Often there are team-decided
punishments for tardiness (e.g. money, push-ups, hanging a rubber chicken
around your neck)
 All are welcome, but only "pigs" may speak
 The meeting is time boxed at 15 minutes regardless of the team's size.
 All attendees should stand (it helps to keep meeting short)
 The meeting should happen at the same location and time every day
 During the meeting, each team member answers three questions:
 What have you done since yesterday?
 What are you planning to do by tomorrow?
 Do you have any problems preventing you from accomplishing your goal? (It is the role of the
ScrumMaster to remember these impediments.)
Capability Maturity
Model Integration (CMMI)
 Regardless of the SDLC used in an enterprise, the must be a way to continuously improve
processes. CMMI provides this.
 The Capability Maturity Model Integration (CMMI) project is a collaborative effort to
provide models for achieving product and process improvement. The primary focus of
the project is to build tools to support improvement of processes used to develop and
sustain systems and products. The output of the CMMI project is a suite of products,
which provides an integrated approach across the enterprise for improving processes,
while reducing the redundancy, complexity and cost resulting from the use of separate
and multiple capability maturity models (CMMs).
 In essence, CMMI is a framework of best practices.
 http://www.sei.cmu.edu/cmmi/index.html (CMM/SEI Website)
Capability Maturity
Model Integration (CMMI)
 The model identifies five levels of process maturity for an organization:
 Level 1: Initial (chaotic, ad hoc, heroic): The starting point for use of a new process.
 Level 2: Repeatable (project management, process discipline): The process is used repeatedly.
 Level 3: Defined (institutionalized): The process is defined/confirmed as a standard business
process.
 Level 4: Managed (quantified): Process management and measurement take place.
 Level 5: Optimizing (process improvement): Process management includes deliberate process
optimization/improvement.
 There are key process areas (KPAs) within each of these maturity levels that characterize
that level, and five measures for each KPA:
 Goals
 Commitment
 Ability
 Measurement
 Verification
 Use the KPAs to help the enterprise climb to the next maturity level.
Other SDLCs To Research
 Prototyping
 Evolutionary Prototyping
 Spiral Model
 Chaos Model
 V-Model
 ICONIX Model
 …and many more
Wrap Up and Questions
 What is an SDLC and why use one?
 Selected modern SDLCs:
 Waterfall Method
 Agile Development Methods
 Rational Unified Process (RUP)
 Extreme Programming (XP)
 Scrum
 Capability Maturity Model Integration (CMMI)
 Other SDLCs to research
References & Credits
 “A Project Manager’s Survival Guide to Going Agile”,
Michele Sliger
 Wikipedia
 Rapid Development, Steve McConnell
 PMBOK
 Dilbert
 You-Tube

More Related Content

What's hot

Agile IT Service Management
Agile IT Service ManagementAgile IT Service Management
Agile IT Service ManagementIan Jones
 
Lean Agile Center of Excellence - Agile2017 Talk
Lean Agile Center of Excellence - Agile2017 TalkLean Agile Center of Excellence - Agile2017 Talk
Lean Agile Center of Excellence - Agile2017 TalkDeema Dajani
 
Water-Scrum-Fall: The Good, the Bad, and the [Scrum]Butt-Ugly
Water-Scrum-Fall: The Good, the Bad, and the [Scrum]Butt-UglyWater-Scrum-Fall: The Good, the Bad, and the [Scrum]Butt-Ugly
Water-Scrum-Fall: The Good, the Bad, and the [Scrum]Butt-UglyBrad Appleton
 
ITSM & JIRA Service Desk
ITSM & JIRA Service DeskITSM & JIRA Service Desk
ITSM & JIRA Service DeskAmbientia
 
Agile Center of Excellence : Presented by Rahul Sudame
Agile Center of Excellence : Presented by Rahul Sudame Agile Center of Excellence : Presented by Rahul Sudame
Agile Center of Excellence : Presented by Rahul Sudame oGuild .
 
Agile Roles & responsibilities
Agile Roles & responsibilitiesAgile Roles & responsibilities
Agile Roles & responsibilitiesRavi Tadwalkar
 
What is Agile Service Management? Why Is it Important? ITSM Academy Webinar
 What is Agile Service Management? Why Is it Important? ITSM Academy Webinar What is Agile Service Management? Why Is it Important? ITSM Academy Webinar
What is Agile Service Management? Why Is it Important? ITSM Academy WebinarITSM Academy, Inc.
 
Agile Methodology in Software Development
Agile Methodology in Software DevelopmentAgile Methodology in Software Development
Agile Methodology in Software DevelopmentRaghav Seth
 
Non-functional Testing (NFT) Overview
Non-functional Testing (NFT) Overview Non-functional Testing (NFT) Overview
Non-functional Testing (NFT) Overview Assaf Halperin
 

What's hot (20)

Agile IT Service Management
Agile IT Service ManagementAgile IT Service Management
Agile IT Service Management
 
Agile
Agile Agile
Agile
 
Lean Agile Center of Excellence - Agile2017 Talk
Lean Agile Center of Excellence - Agile2017 TalkLean Agile Center of Excellence - Agile2017 Talk
Lean Agile Center of Excellence - Agile2017 Talk
 
Test Strategy
Test StrategyTest Strategy
Test Strategy
 
Water-Scrum-Fall: The Good, the Bad, and the [Scrum]Butt-Ugly
Water-Scrum-Fall: The Good, the Bad, and the [Scrum]Butt-UglyWater-Scrum-Fall: The Good, the Bad, and the [Scrum]Butt-Ugly
Water-Scrum-Fall: The Good, the Bad, and the [Scrum]Butt-Ugly
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
 
The Scrum Model
The Scrum ModelThe Scrum Model
The Scrum Model
 
Dynatrace
DynatraceDynatrace
Dynatrace
 
ITSM & JIRA Service Desk
ITSM & JIRA Service DeskITSM & JIRA Service Desk
ITSM & JIRA Service Desk
 
Introduction of sdlc
Introduction of sdlcIntroduction of sdlc
Introduction of sdlc
 
Agile Center of Excellence : Presented by Rahul Sudame
Agile Center of Excellence : Presented by Rahul Sudame Agile Center of Excellence : Presented by Rahul Sudame
Agile Center of Excellence : Presented by Rahul Sudame
 
Agile Metrics V6
Agile Metrics V6Agile Metrics V6
Agile Metrics V6
 
Scrum in an hour
Scrum in an hourScrum in an hour
Scrum in an hour
 
Agile Roles & responsibilities
Agile Roles & responsibilitiesAgile Roles & responsibilities
Agile Roles & responsibilities
 
What is Agile Service Management? Why Is it Important? ITSM Academy Webinar
 What is Agile Service Management? Why Is it Important? ITSM Academy Webinar What is Agile Service Management? Why Is it Important? ITSM Academy Webinar
What is Agile Service Management? Why Is it Important? ITSM Academy Webinar
 
Introducing SAFe® 5
Introducing SAFe® 5Introducing SAFe® 5
Introducing SAFe® 5
 
Agile
AgileAgile
Agile
 
Agile (Scrum)
Agile (Scrum)Agile (Scrum)
Agile (Scrum)
 
Agile Methodology in Software Development
Agile Methodology in Software DevelopmentAgile Methodology in Software Development
Agile Methodology in Software Development
 
Non-functional Testing (NFT) Overview
Non-functional Testing (NFT) Overview Non-functional Testing (NFT) Overview
Non-functional Testing (NFT) Overview
 

Similar to Overview of SDLC - Waterfall, Agile, and more

Software Development The Agile Way
Software Development The Agile WaySoftware Development The Agile Way
Software Development The Agile WayShahzad
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process IntroductionNguyen Hai
 
Software Development Process Models (SCRUM Methodology)
Software Development Process Models (SCRUM Methodology)Software Development Process Models (SCRUM Methodology)
Software Development Process Models (SCRUM Methodology)Muhammad Ahmed
 
CH02_Software_development_life_cycle (1).pptx
CH02_Software_development_life_cycle (1).pptxCH02_Software_development_life_cycle (1).pptx
CH02_Software_development_life_cycle (1).pptxKhcThKhnhHuyn1T20ACN
 
6 Contracts And Scenarios In The Software Development Process
6 Contracts And Scenarios In The Software Development Process6 Contracts And Scenarios In The Software Development Process
6 Contracts And Scenarios In The Software Development ProcessDarian Pruitt
 
Agile Development with Scrum.pptx
Agile Development with Scrum.pptxAgile Development with Scrum.pptx
Agile Development with Scrum.pptxzuma14
 
Lean Enterprise, A Definitive Approach in Software Development Production
Lean Enterprise, A Definitive Approach in Software Development ProductionLean Enterprise, A Definitive Approach in Software Development Production
Lean Enterprise, A Definitive Approach in Software Development ProductionBerk Dülger
 
Unified process,agile process,process assesment ppt
Unified process,agile process,process assesment pptUnified process,agile process,process assesment ppt
Unified process,agile process,process assesment pptShweta Ghate
 
An Introduction to Scrum
An Introduction to ScrumAn Introduction to Scrum
An Introduction to Scrummbalas2
 
Scrum an extension pattern language for hyperproductive software development
Scrum an extension pattern language  for hyperproductive software developmentScrum an extension pattern language  for hyperproductive software development
Scrum an extension pattern language for hyperproductive software developmentShiraz316
 
Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashedlivgeni
 
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)Anatoliy Okhotnikov
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSaqib Raza
 
An Overview of RUP methodology
An Overview of RUP methodologyAn Overview of RUP methodology
An Overview of RUP methodologyMasoud Kalali
 
A Pattern-Language-for-software-Development
A Pattern-Language-for-software-DevelopmentA Pattern-Language-for-software-Development
A Pattern-Language-for-software-DevelopmentShiraz316
 
Working with Agile technologies and SCRUM
Working with Agile technologies and SCRUMWorking with Agile technologies and SCRUM
Working with Agile technologies and SCRUMAndrea Tino
 

Similar to Overview of SDLC - Waterfall, Agile, and more (20)

Software Development The Agile Way
Software Development The Agile WaySoftware Development The Agile Way
Software Development The Agile Way
 
Software models
Software modelsSoftware models
Software models
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process Introduction
 
Software Development Process Models (SCRUM Methodology)
Software Development Process Models (SCRUM Methodology)Software Development Process Models (SCRUM Methodology)
Software Development Process Models (SCRUM Methodology)
 
CH02_Software_development_life_cycle (1).pptx
CH02_Software_development_life_cycle (1).pptxCH02_Software_development_life_cycle (1).pptx
CH02_Software_development_life_cycle (1).pptx
 
A littlebook about agile
A littlebook about agileA littlebook about agile
A littlebook about agile
 
Scrum and Agile SDLC 101
Scrum and Agile SDLC 101Scrum and Agile SDLC 101
Scrum and Agile SDLC 101
 
6 Contracts And Scenarios In The Software Development Process
6 Contracts And Scenarios In The Software Development Process6 Contracts And Scenarios In The Software Development Process
6 Contracts And Scenarios In The Software Development Process
 
Agile Development with Scrum.pptx
Agile Development with Scrum.pptxAgile Development with Scrum.pptx
Agile Development with Scrum.pptx
 
Lean Enterprise, A Definitive Approach in Software Development Production
Lean Enterprise, A Definitive Approach in Software Development ProductionLean Enterprise, A Definitive Approach in Software Development Production
Lean Enterprise, A Definitive Approach in Software Development Production
 
Unified process,agile process,process assesment ppt
Unified process,agile process,process assesment pptUnified process,agile process,process assesment ppt
Unified process,agile process,process assesment ppt
 
An Introduction to Scrum
An Introduction to ScrumAn Introduction to Scrum
An Introduction to Scrum
 
Lect3
Lect3Lect3
Lect3
 
Scrum an extension pattern language for hyperproductive software development
Scrum an extension pattern language  for hyperproductive software developmentScrum an extension pattern language  for hyperproductive software development
Scrum an extension pattern language for hyperproductive software development
 
Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashed
 
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
An Overview of RUP methodology
An Overview of RUP methodologyAn Overview of RUP methodology
An Overview of RUP methodology
 
A Pattern-Language-for-software-Development
A Pattern-Language-for-software-DevelopmentA Pattern-Language-for-software-Development
A Pattern-Language-for-software-Development
 
Working with Agile technologies and SCRUM
Working with Agile technologies and SCRUMWorking with Agile technologies and SCRUM
Working with Agile technologies and SCRUM
 

Recently uploaded

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Overview of SDLC - Waterfall, Agile, and more

  • 2. Presentation Roadmap  What is an SDLC and why use one?  Selected modern SDLCs:  Waterfall Method  Agile Development Methods  Rational Unified Process (RUP)  Extreme Programming (XP)  Scrum  Capability Maturity Model Integration (CMMI)  Other SDLCs to research  Wrap up and Questions
  • 3. Why Use an SDLC?  Project (per PMBOK): “a temporary endeavor undertaken to create a unique product or service.”  An SDLC is used to manage the constraints of the “Golden Triangle”
  • 4. What is an SDLC and why use one? (Control Scope)
  • 5. What is an SDLC and why use one? (Control Duration)
  • 6. What is an SDLC and why use one? (Control Cost)
  • 8. Waterfall (Traditional) The following documents serve to clarify objectives and deliverables and to align sponsors, clients, and project team's expectations:  Project Charter  Preliminary Scope Statement / Statement of work  Business case / Feasibility Study  Scope Statement / Terms of reference  Project management plan / Project Initiation Document  Work Breakdown Structure  Change Control Plan  Risk Management Plan  Risk Breakdown Structure  Communications Plan  Governance Model  Risk Register  Issue Log  Action Item List  Resource Management Plan  Project Schedule  Project Status Report  Responsibility assignment matrix  Database of lessons learned  Stakeholder Analysis
  • 9. Issues With Waterfall Method  The main problem with the waterfall model is the inflexible division of a project into separate stages, so that commitments are made early on, and it is difficult to react to changes in requirements. Iterations are expensive.  This means that the waterfall model is likely to be unsuitable if requirements are not well understood or are likely to change in the course of the project.
  • 10. Agile Development Methods  Agile software development refers to a group of software development methodologies that promotes development iterations, open collaboration, and process adaptability throughout the life-cycle of the project.  It chooses to do things in small increments, with minimal planning, rather than plan at length. This helps to minimize the overall risk, and allows the project to adapt to changes more quickly. There is also an emphasis on stakeholder involvement. Meaning at the end of each iteration, the stakeholder is consulted about the product and comments are noted.  Extreme Programming (XP) and Rational Unified Process (RUP) are two types of agile methods (there are many others).
  • 11. Agile Methods Rely Upon Iterations and Releases  Some of the principles behind the Agile Manifesto are:  Customer satisfaction by rapid, continuous delivery of useful software  Working software is delivered frequently (weeks rather than months)  Working software is the principal measure of progress  Even late changes in requirements are welcomed  Close, daily cooperation between business people and developers  Face-to-face conversation is the best form of communication (Co-location)  Projects are built around motivated individuals, who should be trusted  Continuous attention to technical excellence and good design  Simplicity  Self-organizing teams  Regular adaptation to changing circumstances  Essentially, scope can’t be fixed, so let’s fix schedule (time boxing), creating iterations and releases
  • 12. Agile Mapped To Latest PMBOK
  • 13. Agile Mapped To Latest PMBOK
  • 14. Rational Unified Process (RUP)  The creators of RUP focused on diagnosing the characteristics of different failed software projects; by doing so they tried to recognize the root causes of these failures. They also looked at the existing software engineering processes and their solutions for these symptoms.  A representative list of failure causes includes the following:  Ad hoc requirements management  Ambiguous and imprecise communication  Brittle architecture (architecture that does not work properly under "stress")  Overwhelming complexity  Undetected inconsistencies in requirements, designs, and implementations  Insufficient testing  Subjective assessment of project status  Failure to attack risks  Uncontrolled change propagation  Insufficient automation  Project failure is caused by a combination of several symptoms, though each project fails in a unique way. The outcome of their study was a system of software best practices they named the Rational Unified Process.
  • 15. RUP Phases  The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003.  RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs.  The following are phases of RUP, which align to business activities intended to drive successful delivery and deployment of projects. It also provides the taxonomy for blue printing and producing enterprise architecture artifacts across its different domains.  Inception - Identify the initial scope of the project, a potential architecture for the system, and obtain initial project funding and stakeholder acceptance.  Elaboration - Prove the architecture of the system.  Construction - Build working software on a regular, incremental basis which meets the highest-priority needs of project stakeholders.  Transition - Validate and deploy the system into the production environment
  • 16. RUP: Phases, Disciplines, and Iterations
  • 17. RUP and UML  Unified Modeling Language (UML) is an essential set of object oriented tools (artifacts) used in RUP.  Use only necessary artifacts. Not all those listed are required.  Structure diagrams emphasize what things must be in the system being modeled:  Class diagram  Component diagram  Composite structure diagram (added in UML 2.x)  Deployment diagram  Object diagram  Package diagram  Behavior diagrams emphasize what must happen in the system being modeled:  Activity diagram  State Machine diagram  Use case diagram  Interaction diagrams, a subset of behavior diagrams, emphasize the flow of control and data among the things in the system being modeled:  Communication diagram  Interaction overview diagram (added in UML 2.x)  Sequence diagram  Timing diagram (added in UML 2.x)
  • 19. XP Programming Practices  Extreme Programming has 12 practices, grouped into four areas (some key items elaborated upon below):  Fine scale feedback  Pair programming - two programmers work together at one keyboard. One types in code while the other reviews each line of code as it's typed in. The person typing is called the driver. The person reviewing the code is called the observer or navigator. The two programmers switch roles frequently.  Planning game – Integrate user stories in weekly iteration and release planning meetings  Test driven development  Whole team – The customer (end-user) is part of team and always on-hand  Continuous process  Continuous integration  Refactoring or design improvement  Small releases  Shared understanding  Coding standards  Collective code ownership - Daily builds, smoke tests, “you broke it you fix it” approach  Simple design  System metaphor  Programmer welfare  Sustainable pace - software developers should not work more than 40 hour weeks, and if there is overtime one week, that the next week should not include more overtime. Measure velocity of feature creation and adjust commitments in next iteration.
  • 20. Scrum Method  Scrum (not an acronym) is a process skeleton that includes a set of practices and predefined roles. The main roles in Scrum are the ScrumMaster who maintains the processes and works similar to a project manager, the Product Owner who represents the stakeholders, and the Team which includes the developers.  During each sprint, a 15-30 day period, the team creates an increment of potential shippable software. The set of features that go into each sprint come from the product backlog, which is a prioritized set of high level requirements of work to be done.  During sprint planning meetings the Product Owner informs the team of the items in the product backlog that he wants completed. The team then determines how much of this they can commit to complete during the next sprint. During the sprint, no one is able to change the sprint backlog, which means that the requirements are frozen for a sprint.
  • 22. Scrum Roles: Pigs and Chickens  Several roles are defined in Scrum; these are divided into two groups; pigs and chickens, based on a joke about a pig and a chicken.  A pig and a chicken are walking down a road. The chicken looks at the pig and says, "Hey, why don't we open a restaurant?" The pig looks back at the chicken and says, "Good idea, what do you want to call it?" The chicken thinks about it and says, "Why don't we call it 'Ham and Eggs'?" "I don't think so," says the pig, "I'd be committed but you'd only be involved."
  • 23. Scrum Roles: Pigs  Pigs  The ones committed to the project and the Scrum process; they are the ones with "their bacon on the line.“  Product Owner  Represents the voice of the customer.  Ensures that the Scrum Team works with the right things from a business perspective.  Writes User Stories, prioritizes them, then places them in the Product Backlog.  ScrumMaster (or Facilitator)  Primary job is to remove impediments to the ability of the team to deliver the sprint goal.  Not the leader of the team (as they are self-organizing) but acts as a buffer between the team and any distracting influences.  Ensures that the Scrum process is used as intended (the enforcer of rules).  Team  The team has the responsibility to deliver the product. A small team of 5-9 people with cross- functional skills to do the actual work (designer, developer etc.).
  • 24. Scrum Roles: Chickens  Chickens  Not part of the actual Scrum process, but must be taken into account.  An important aspect of an Agile approach is the practice of involving users, business and stakeholders into part of the process. It is important for these people to be engaged and provide feedback into the outputs for review and planning of each sprint.  Users  The software is being built for someone! If software is not used - much like 'the tree falling in a forest' riddle - was it ever written?  Stakeholders (Customers, Vendors)  The people that will enable the project, but are only directly involved in the process at sprint reviews.  Managers  People that will set up the environment for the product development organization.
  • 25. The Daily Scrum Meeting  Each day during the sprint, a project status meeting occurs. This is called a scrum or the daily standup.  The scrum has specific guidelines:  The meeting starts precisely on time. Often there are team-decided punishments for tardiness (e.g. money, push-ups, hanging a rubber chicken around your neck)  All are welcome, but only "pigs" may speak  The meeting is time boxed at 15 minutes regardless of the team's size.  All attendees should stand (it helps to keep meeting short)  The meeting should happen at the same location and time every day  During the meeting, each team member answers three questions:  What have you done since yesterday?  What are you planning to do by tomorrow?  Do you have any problems preventing you from accomplishing your goal? (It is the role of the ScrumMaster to remember these impediments.)
  • 26. Capability Maturity Model Integration (CMMI)  Regardless of the SDLC used in an enterprise, the must be a way to continuously improve processes. CMMI provides this.  The Capability Maturity Model Integration (CMMI) project is a collaborative effort to provide models for achieving product and process improvement. The primary focus of the project is to build tools to support improvement of processes used to develop and sustain systems and products. The output of the CMMI project is a suite of products, which provides an integrated approach across the enterprise for improving processes, while reducing the redundancy, complexity and cost resulting from the use of separate and multiple capability maturity models (CMMs).  In essence, CMMI is a framework of best practices.  http://www.sei.cmu.edu/cmmi/index.html (CMM/SEI Website)
  • 27. Capability Maturity Model Integration (CMMI)  The model identifies five levels of process maturity for an organization:  Level 1: Initial (chaotic, ad hoc, heroic): The starting point for use of a new process.  Level 2: Repeatable (project management, process discipline): The process is used repeatedly.  Level 3: Defined (institutionalized): The process is defined/confirmed as a standard business process.  Level 4: Managed (quantified): Process management and measurement take place.  Level 5: Optimizing (process improvement): Process management includes deliberate process optimization/improvement.  There are key process areas (KPAs) within each of these maturity levels that characterize that level, and five measures for each KPA:  Goals  Commitment  Ability  Measurement  Verification  Use the KPAs to help the enterprise climb to the next maturity level.
  • 28. Other SDLCs To Research  Prototyping  Evolutionary Prototyping  Spiral Model  Chaos Model  V-Model  ICONIX Model  …and many more
  • 29. Wrap Up and Questions  What is an SDLC and why use one?  Selected modern SDLCs:  Waterfall Method  Agile Development Methods  Rational Unified Process (RUP)  Extreme Programming (XP)  Scrum  Capability Maturity Model Integration (CMMI)  Other SDLCs to research
  • 30. References & Credits  “A Project Manager’s Survival Guide to Going Agile”, Michele Sliger  Wikipedia  Rapid Development, Steve McConnell  PMBOK  Dilbert  You-Tube