Download Agile SDLC Methodology

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Phase-gate process wikipedia , lookup

Software development wikipedia , lookup

Agile software development wikipedia , lookup

Transcript
Agile SDLC Methodology
SDLC
 SDLC - Software Development Life Cycle
 Linear sequence of stages
Phases in SDLC
Requirement
Design and Architecture
Coding
Testing
Implementation
Maintenance
Traditional SDLC Methodologies
 Waterfall Model
 Spiral Model
 Iterative Model
 V Model
 Big Bang Model
 Rapid Application Development Model
Project – What do we need to Know
Agile – When and Where
 1970 , Dr. Winston Royce Criticized the Traditional
SDLCs
 Questioned the adaptability of these methods to
Software Development
 Agile Evolved from techniques developed at DuPont
in the mid-80s
 Further defined in works by James Martin and
James Kerr et al.
Agile in a Nutshell
 Break Products into small incremental builds
 Builds are provided in iterations
 Duration- Iterations will be one to three weeks
 Cross Functional Teams work Simultaneously on
Planning, Requirements Analysis, Design, Coding ,
Unit testing & Acceptance Testing
 Iterative Approach – Working Software delivered
after each iteration
Redefining Agile
 A project management process that encourages
frequent inspection and adaptation;
 a leadership philosophy that encourages team work,
self-organization and accountability;
 a set of engineering best practices that allow for
rapid delivery of high-quality software;
 business approach that aligns development with
customer needs and company goals.
Agile SDLC
Myths
 No Detailed Documentation
 Open Communication with customer
 Adapt to changing Product Requirements
Dynamically
 Test the Product Frequently
Components of Agile Methodology
No
Component
Description
Classification
1
Values
A Standard considered
worthwhile or desirable
Communication
Simplicity
Feedback
Courage
Humility
2
Principles
Basic Generalization that
Core Principles
can be accepted as true and Supplementary Principles
that can be used as a basis
for reasoning
3
Practices
Process of doing (can be a
performance or action)
Core Practices
Supplementary Practices
Agile Principles
 Assume Simplicity
 Incremental Change
 Maximize Stakeholder Investment
 Model With a Purpose
 Multiple Models
 Quality Work
 Rapid Feedback
Agile Practices
 Active Stakeholder Participation
 Collective Ownership
 Create Simple Content
 Depict Models Simply
 Display Models Publicly
 Prove it With Code
 Use the Simplest Tools
Agile Manifesto Principle
Principles
Description
Individuals & Interactions
Self Organization & Motivation
Working Software
•Demo Working Software ( best means
to communicate with customer)
•No Detailed Documentation
Customer Collaboration
Continuous Customer Interaction
• To get Proper Product Requirements
•Cannot gather all requirements
Initially
Responding to Change
•Focus on Quick responses to change
•Continuous Development
People Involved in Agile
The Agile Team
 Architects
 Developers, Analysts, Designers
 Quality Assurance, Testers
 Tech Writers
 Product Owners / Customer Representatives
 Project Managers / ScrumMasters
 Note : Teams are small (~7), preferably co-located,
cross functional. Scale by adding teams, not more
people
Popular Agile Methods
 Rational Unified Process
 Scrum
 Crystal Clear
 Extreme Programming
 Adaptive Software Development
 Feature Driven Development
Scrum
 Iterative process of development used with agile
software development.
 Roles in Scrum are the ScrumMaster, the Product
Owner and the Team.
 During each sprint the team creates an increment of
potential shippable software
 Set of features that go into each sprint come from the
product backlog
Scrum (..Contd)
 Which backlog items go into the sprint is determined
during the sprint planning meeting.
 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.
What is a Backlog?
A backlog is the master list of all functionality
 Features
 Epics
 Stories
 Requirements
 Bugs
Item Attributes:
 Description
 Cost estimate (points or size)
 Business Value
 Priority
Product Backlogs vs. Sprint Backlogs
A Product Backlog is the master list of all functionality for
the product
 Features
 Epics
 Bugs
The Sprint Backlog is the list of functionality that the
team is committing to complete in the current iteration
 Storied
 Requirements
 Bugs
Product Management / Owner owns the backlogs
Agile Planning
 Beginning of iteration
 Review vision and roadmap
 Review development status, architecture and previous








iterations
Determine velocity
Review team availability & capacity
Review definition of done
Review product backlog & select items for iteration / sprint
Identify tasks & estimates
Identify challenges & risks
Review capacity required
COMMIT (planning not over until entire team commits to
sprint plan)
Agile Reports
 Product / Sprint / Iteration Backlog
 Release Burn-up chart (to show % complete)
 Defects – inflow, outflow, # of open defects per week
 Build quality per day/week
 Number of tests / tests passed per day/week
 Velocity over the last x sprint
 Action items, risks
 Burndown Charts (to show remaining effort)
Agile Retrospectives
 Meeting after an increment of work to inspect and adapt
their methods and teamwork
 What went well, What could be improved
 Team learning
 Catalyst for change
 Generate action
Sample Agenda
 Overview
 Gather data
 Prioritize
 Discuss
 Action Items
Agile Methodologies
 Feature-driven Development (rare) an iterative
development process. This practice is driven from a
client-valued functionality (feature) perspective.
 Test-driven Development (rare) is a software
development technique that uses short development
iterations based on pre-written test cases that define
desired improvements or new functions. Each
iteration produces code necessary to pass that
iteration's tests.
Agile Methodologies
 Lean (rare) is a process designed to eliminate waste,
amplify learning, make decisions late, fast delivery,
empowered teams, product integrity and an fully
understood system.
Thank You