4- Generic Software Processes and Agile [1]
4- Generic Software Processes and Agile [1]
Models
4- Generic software process models & Agile Methods [1]
Overview of Software Process Models
Waterfall Model
Spiral Development
Generic Software Process Models
3
Evolutionary development
interleaved rather
than separate, with Outline
Development
Intermediate
description versions
rapid feedback
across activities.
Final
Validation
version
4
Evolutionary development (cont.)
5
Formal systems development
• Applicability
• Critical systems especially those where a safety or security
case must be made before the system is put into operation
6
Formal systems development
• Problems
• Need for specialised skills and training to apply
the technique
• Difficult to formally specify some aspects of the
system such as the user interface
7
Spiral development
• Process is represented as a spiral rather than as a
sequence of activities with backtracking
Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analysis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
next-level product
8
Spiral development (cont.)
s
es
en
siv
on
sp
Re e
od
C
tle it
Br
Copyright © 2010 AgileInnovation
ty
ali
Qu
Your Favorite!
Transparency
im es
Cy cle T
Long
ty
plexi
Com
ity
uctiv
Prod
points
Pain
Agile manifesto
Our values:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value
the items on the left more.
s and
• Understanding Agility
• Effective communication, rapid
delivery, and adaptability
Methods
The Manifesto for Agile Software
Development
Background:
https://agilemanifesto.org
18
The Manifesto for Agile Software
Development
https://agilemanifesto.org
19
Twelve Principles of Agile
Software
1. Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile
processes harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple
of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout
the project.
5. Build projects around motivated individuals. Give them the environment
and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and
within a development team is face–to–face conversation.
20
Twelve Principles of Agile Software
(cont.)
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors,
developers, and users should be able to maintain a constant pace
indefinitely.
9. Continuous attention to technical excellence and good design
enhances agility.
10.Simplicity – the art of maximizing the amount of work not done – is
essential.
11.The best architectures, requirements, and designs emerge from
self–organizing teams.
12.At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts its behavior accordingly.
21
What is “Agility”?
Yielding …
• Rapid, incremental delivery of
software. 22
Why and What Steps are “Agility”
important?
23
Agility and the Cost of Change
• Accommodate changes late in the software project without dramatic cost and time impact.
24
• Overview of Agile Methods
4. Agile • Extreme Programming (XP): An
example of Agile in action
Methodolo • Scrum: A popular Agile framework
gies • Comparing Agile with Plan-driven
Approaches
Extreme programming
A popular form of Agile
Extreme Programming (XP) takes an ‘extreme’ approach to iterative development.
New versions may be built several times per day;
Increments are delivered to customers every 2 weeks;
All tests must be run for every build and the build is only accepted if tests run successfully.
Customer involvement means full-time customer engagement with the team. - Specifications through user
stories broken into tasks
People not process : pair programming, collective ownership and a process that avoids long
working hours.
Regular system releases. - release set of user stories
Maintaining simplicity through constant refactoring of code.
Set
Adapt Controller
Target
Detail Development
• The Sprint Cycle and its Activities
Scrum
• Scrum is easy to understand, but can be difficult to
master
45
46
Scrum Sprints
• Timebox iteration for project work
• A timebox is a predetermined duration
• Scrum sprints are between one and four weeks in
duration
• During a sprint no changes are made that would affect
the goal of the sprint
• A sprint can be cancelled if they change in the project
goals make the sprint goals obsolete
• Only the product owner may cancel a sprint
47
More About Scrum Sprints
• If a sprint is cancelled, uncompleted backlog items are
returned to the product backlog
48
Scrum Artifact – Product Backlog
• The product backlog is the source for all product requirements
• The product owner sorts and prioritizes the backlog items
• The development team always works on the most important items
based on the prioritized items in the product backlog
• The backlog is always prioritized before the current sprint
• Backlog refinement is done by both the product owner and the
development team working in harmony
• The team estimates their capacity to attack the items in the product
backlog
49
Scrum Artifacts – Sprint Backlog
• Sprint backlog is a subset of the product backlog
• Sprint backlog serves as the goal for the current
iteration
• Sprint backlog is a view into the work to be
accomplished in the current sprint
• Sprint backlog is updated and refined by the
development team
50
Scrum Artifact – Product Increment
• The product increment is the outcome of an Iteration
51
Scrum Team Roles
• Scrum Master – responsible for communicating the scrum methodology
and ensuring the methodology is used effectively
52
53
Looking At The Scrum Activities
• Scrum activities are also known as events or
ceremonies
54
Grooming the Backlog
• Backlog refinement (formerly known as backlog
grooming): the product owner and some, or all, of the
rest of the team review items on the backlog to ensure
the backlog contains the appropriate items, that they
are prioritized, and that the items at the top of the
backlog are ready for delivery
• The product owner owns the backlog
• Backlog refinement is the prioritization backlog items
• The entire project team may participate in the backlog
grooming
55
Sprint Planning Meeting
• Project team needs to discuss the goals of the upcoming
sprint
• Team discusses how the work will be accomplished
• Product owner reviews with team items in the updated
backlog
• Development team defines how the work will be done in
the goals of the sprint will be achieved
• The development team is self-organized
56
Participating In a Daily Scrum
• The daily scrum is also known as a stand-up meeting
• This is a 15-minute time-boxed meeting
• The daily scrum is held every day at the same time and
location
• The daily scrum is for the development team only
58
Sprint Reviews
• Hosted at the end of every sprint
• Attendees will be the development team, the product
owner, scrum master, and sometimes other project
stakeholders
• Development team will demo the work created in the
increment
• The group will decide if “Done” has been achieved
• The development team and the product owner will
discuss the sprint and the remaining items in the
product backlog
59
Sprint Retrospective
• The development team meeting posted after the sprint
review, but before the next sprint planning meeting
• This is a meeting to inspect an adapt
• Lessons learned and opportunities for improvement
• Review of the product owner’s feedback about the last
iteration
• An opportunity to improve on their approach based on
the retrospective and the last sprint
60
7.
Balancin • When to Use Agile vs. Plan-driven
g Agile Methods
and Plan-
• Contexts where Agile is most effective
• Situations where Plan-driven approaches
Approach
es
Balance plan driven and agile
• Not great for Agile:
• What type of system is being developed?
• Plan-driven approaches may be required for systems that require a lot of analysis before
implementation (e.g. real-time system with complex timing requirements).
• What is the expected system lifetime?
• Long-lifetime systems may require more design documentation to communicate the original
intentions of the system developers to the support team.
• What technologies are available to support system development?
• Agile methods rely on good tools to keep track of an evolving design
• How is the development team organized?
• Many teams; Outsourcing ---> need design documents to control borders
Culture or contract needs detailed specification
Is rapid feedback from users realistic?
Large scale, not co-located may require more formal communication methods
Need high level programming skills - refactoring, work with little spec
Outside regulation documentation requirements
Conclusi
on