Agile Methodology
ISE Seminar
• A Short history of Software development processes
• Defining and Analyzing the Problem ...
• Agile Manifesto
• The Agile Values
• The Agile Principles
• Scrum
Agenda
Software Project Development
Software development processes
A [really] short history of
Software Project Development
traditional approach
to software development
REQUIREMENTS
DESIGN
DEVELOPMENT
TESTING
MAINTENANCE
Waterfall Development is
another name for the more
Waterfall Development
Waterfall Development
You complete one phase (e.g. design) before moving
on to the next phase (e.g. development)
You rarely aim to re-visit a ‘phase’ once it’s
completed. That means, you better get whatever
you’re doing right the first time!
• Is there any problem ?
Software Project Development
Waterfall Development
This approach is highly risky, costly and
generally less efficient
You don’t realize any value
until the end of the project
You leave the testing until the
end
You don’t seek approval from
the stakeholders until late in the
day
But… REQUIREMENTS
DESIGN
DEVELOPMENT
TESTING
MAINTENANCE
Takes too long
Changes
Skipped
Software Project Development
Software Project Development
Software Project Development
Software Project Development
Software Project Development
Software Project Development
AGILE
Rapid
Cooperative
Quality-driven
Not a process, it's a philosophy or set of values
Iterative
Adaptable
XP
Scrum
Lean
Crystal
Adaptive
FDD
DSDM
Pragmatic
RUP (120+)
XP (13)
Scrum (9)
Kanban (3)
Do Whatever!! (0)
More Prescriptive
More Adaptive
RUP has over 30 roles, over 20
activities, and over 70 artifacts
AGILE
Software Project Development
Software Project Development
Software Project Development
Software Project Development
Software Project Development
the most important factors
that you need to consider are
the people and
how they work together
A fool with a tool is still a fool.
Software Project Development
Software Project Development
Never forget that the primary goal of
software development is to create software,
not documents !
Otherwise it would be called
documentation development wouldn’t it?
When you ask a user whether they would want ??
A fifty page document describing what you intend
to build ?
or
The actual software itself, what do you think
they’ll pick?
Software Project Development
Software Project Development
Remember!!
Only your customer can tell you what they want
Software Project Development
Software Project Development
Remember!!
Nothing ever goes entirely on plan
but instead of sticking with something that
isn't working
It's much more effective to make adjustments
as your situation changes
Software Project Development
Following the values isn't always easy
But when you build them is your team's processes
You will definitely get a better software project
Software Project Development
Hmm..
So , Is that It ?
Software Project Development
Sure No !!
Software Project Development
The four core values are illuminated
by
12 principles of Agile software
development.
Software Project Development
“ Our highest priority is to
satisfy the customer through early
and continuous delivery of valuable
software. ”
Principle
#1
Software Project Development
“ Welcome changing requirements,
even late in development.
Agile processes harness change
for the customer's competitive
advantage.”
Principle
#2
Software Project Development
“ Deliver working software
frequently, from a couple of weeks to
a couple of months, with a preference
to the shorter time scale. ”
Principle
#3
Software Project Development
“ Business people and developers
must work together daily throughout
the project. “
Principle
#4
Software Project Development
“ Build projects around
motivated individuals. Give them the
environment and support they need,
and trust them to get the job done. “
Principle
#5
Software Project Development
“ The most efficient and effective
method of conveying information to
and within a development team is
face-to-face conversation.“
Principle
#6
Software Project Development
“Working software is the
primary measure of progress. “
Principle
#7
Software Project Development
“ Agile processes promote
sustainable development. The sponsors,
developers, and users should be able to
maintain a constant pace indefinitely. “
Principle
#8
Software Project Development
“ Continuous attention to
technical excellence and good design
enhances agility. “
Principle
#9
Software Project Development
“ Simplicity – the art of maximizing
the amount of work not done ,
is essential. “
Principle
#10
Software Project Development
“ The best architectures,
requirements, and designs emerge from
self-organizing teams. “
Principle
#11
Software Project Development
“At regular intervals, the team
reflects on how to become more
effective, then tunes and adjusts its
behavior accordingly.“
Principle
#12
Scrum
Scrum
• Scrum is an agile process that allows us to focus on delivering the
highest business value in the shortest time.
• It allows us to rapidly and repeatedly check actual working
software (2 – 4 weeks).
• The business sets the priorities.
Scrum characteristics
• Self organizing team to determine the best way to deliver the
highest priorities features
• Product progresses in a series of month-long “sprints”
• Requirements are captured as items in a list “product backlog”
• Uses general rules to create an agile environment for delivering
projects
Scrum sprint
Scrum sprint
• Scrum projects make progress in a series of “sprints”
• Typical duration is 2–4 weeks
• Product is designed, coded, and tested during the sprint
NO Changes During Sprint !
Scrum breaking down
Scrum artifacts
The scrum team uses artifacts to run scrum successfully
• Impediment backlog
• Product backlog
• Sprint backlog
• Burn down charts
Scrum ceremonies
• Sprint planning
• Sprint review
• Sprint retrospective
• Daily scrum
Scrum ceremonies
Sprint planning :
• Sprint planning meeting #1
• Sprint planning meeting #2
Scrum ceremonies
Sprint planning meeting #1:
• Purpose
• Basics
• Ingredients
• Output
Scrum ceremonies
Sprint planning meeting #2:
• Purpose
• Basics
• Ingredients
• Output
Scrum ceremonies
Sprint review:
• Purpose
• Basics
• Ingredients
• Output
Scrum ceremonies
Sprint retrospective:
• Purpose
• Basics
• Ingredients
• Output
Scrum ceremonies
Daily scrum
• Purpose
• Basics
• Ingredients
• Output
Scrum roles
• Scrum master
• Team
• Product owner
• Customer
• User
Scrum roles
Scrum Master:
• Represents management to the project
• Responsible for enacting Scrum values and practices
• Removes impediments (obstacles)
• Ensure that the team is fully functional and productive
• Enable close cooperation across all roles and functions
• Shield the team from external interferences
Scrum roles
Team:
• (5 - 9) people
• Cross functional (programmers – designers….)
• Full time
• Self organizing
Scrum roles
Team tasks:
• Delivers the product and is responsible for its quality
• Creating product backlog
• Analyses the backlog for information
• Works with product owner for strategic alignment
Scrum roles
Product owner:
• Define the features of the product
• Decide on release date and content
• Be responsible for the profitability of the product
• Prioritize features according to market value
• Adjust features and priority every iteration, as needed
• Accept or reject work results
Scrum roles
Customer:
• Executive managers
• Requests the product from Scrum team
• Budget
Scrum roles
User:
• Defines the product with his business knowledge
• Domain expert , end user , marketing department
Thanks For Listening

Agile Methodology