CSI341 - Lecture Notes 3 -Agile Methods
CSI341 - Lecture Notes 3 -Agile Methods
• Agile methods
• Examples of Agile Methods
• Extreme programming
• Scrum
1
Agile Methods
• Rationale
• Businesses operate in a fast –changing requirement and it is
practically impossible to produce a set of stable software
requirements
• Software has to evolve quickly to reflect changing business needs.
• Specification, design and implementation are inter-leaved
• System is developed as a series of versions with stakeholders
involved in version evaluation
2
Agile methods …
• Agile methods
• Focus on the code rather than the design
• Are based on an iterative approach to software development
• Are intended to deliver working software quickly and evolve this
quickly to meet changing requirements.
• The aim of agile methods is to reduce overheads in the
software process (e.g., by limiting documentation) and
to be able to respond quickly to changing requirements
without excessive rework.
3
Agile manifesto
4
Agile methods Principles
There are 12 principles. Five of them are provided below
Principle Description
Customer involvement Customers should be closely involved throughout the
development process. Their role is provide and prioritize new
system requirements and to evaluate the iterations of the
system.
Incremental delivery The software is developed in increments with the customer
specifying the requirements to be included in each increment.
People not process The skills of the development team should be recognized and
exploited. Team members should be left to develop their own
ways of working without prescriptive processes.
Embrace change Expect the system requirements to change and so design the
system to accommodate these changes.
Maintain simplicity Focus on simplicity in both the software being developed and
in the development process. Wherever possible, actively work
to eliminate complexity from the system.
5
Agile Methods Example: XP (Extreme
Programming)
• XP is an agile software methodology
• Higher priority on adaptability (“empirical process control
model”) than on predictability (“defined process control model”)
• Change in the requirements is normal during software
development
• Software developer must be able react to changing
requirements at any point during the project
• XP prescribes a set of day-to-day practices for managers and
developers to address this problem.
6
XP Day-to-Day Practices
1. Rapid feedback
• Confronting issues early results in more time for
resolving issues. This applies both to client feedback
and feedback from testing
2. Simplicity
• The design should focus on the current requirements
• Simple designs are easier to understand and change
than complex ones
3. Incremental change
• One change at a time instead of many concurrent
changes
• One change at a time should be integrated with the
current baseline.
7
XP day-to-day …
4. Embracing change
• Change is inevitable and frequent in XP projects
• Change is normal and not an exception that needs to
be avoided
5. Quality work
• Focus on rapid projects where progress is
demonstrated frequently
• Each change should be implemented carefully and
completely.
8
How much planning in XP?
9
How much planning in XP? …
• Stacks
• The user stories are organized into stacks of related
functionality
• Prioritization of stacks
• The client prioritizes the stacks so that essential
requirements can be addressed early and optional
requirements last
• Release Plan
• Specifies which story will be implemented for which
release and when it will be deployed to the end user
• Schedule
• Releases are scheduled frequently (e.g., every 1–2
months) to ensure rapid feedback from the end users.
10
Team Organization in XP
11
How much modeling in XP?
12
How much process in XP?
13
How much control in XP?
14
Scrum (adapted from Marty Stepp)
• Is an agile, lightweight process
• Can manage and control software and product
development
• Uses iterative, incremental practices
• Has a simple implementation
• Embraces adaptive systems development
• Embraces the opposite of the waterfall approach…
15
Scrum at a Glance
24 hours
Daily Scrum
Meeting
Potentially Shippable
Product Backlog Product Increment
As prioritized by Product Owner
16
Sequential vs. Overlap
17
Scrum Framework
Roles
•Product owner
•Scrum Master
•Team Ceremonies
•Sprint planning
•Sprint review
•Sprint retrospective
•Daily scrum meeting
Artifacts
•Product backlog
•Sprint backlog
•Burndown charts 18
Scrum Roles
• Product Owner
• Possibly a Product Manager or Project Sponsor
• Decides features, release date, prioritization, $$$
• Scrum Master
• Typically, a Project Manager or Team Leader
• Responsible for enacting Scrum values and practices
• Remove impediments / politics, keeps everyone
productive
• Project Team
• 5-10 members; Teams are self-organizing
• Cross-functional: QA, Programmers, UI Designers, etc.
• Membership should change only between sprints
19
Daily Scrum Meeting
• Parameters
• Daily, ~15 minutes, Stand-up
20
Scrum's Artifacts
21
Product Backlog
• The requirements
• Reprioritized at start of
each sprint
22
User Stories
• Example:
• "As a user, I want to log in, so I can access subscriber
content."
23
Sample Product Backlog
... 30
... 50
24
Sprint Backlog
25
Sample Sprint backlog
26
Sprint Burndown Chart
27
Sample Burndown Chart
Hours
28
Tasks Mon Tue Wed Thu Fri
Code the user interface 8 4 8
Code the middle tier 16 12 10 7
Test the middle tier 8 16 16 11 8
Write online help 12
50
40
30
Hours
20
10
0
Mon Tue Wed Thu Fri
29
Burndown Example 1
60
50
40
Hours remaining
30
20
10
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Days in Sprint
30
Burndown Example 2
49
48
47
46
Hours remaining
45
44
43
42
41
40
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Days in Sprint
31
Burndown Example 3
60
50
40
Hours remaining
30
20
10
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Days in Sprint
32
The Sprint Review
33
Problems with agile methods
34
Agile methods and software maintenance
35