10/10/2023
EC-360
SOFTWARE ENGINEERING
Week 2
Agile Software Development
Ref: Chapter 3 Software Engineering 9th Ed, by Roger Pressman
Dr Farooque Azam
Today’s Week: Agenda
• Recap
• Agile Manifesto
• Agile Development
• Agile Development Models
• Extreme Programming (XP)
• Scrum
• Jira
1
10/10/2023
RECAP – WEEK 1
Classical
Waterfall
Model
EC-360 Software Engineering 4
2
10/10/2023
Shortcomings of the Classical Waterfall
Model
• The classical waterfall model is an idealistic one since it
assumes that no development error is ever committed by
the engineers during any of the life cycle phases.
• However, in practical development environments, the
engineers do commit a large number of errors in almost
every phase of the life cycle.
• Once a defect is detected, the engineers need to go back
to the phase where the defect had occurred and redo
some of the work.
• To minimise the errors, sometimes we use prototype
approach.
EC-360 Software Engineering 5
Situation where classical waterfall model
is Suitable
• Well-Defined Requirements: When the project has clear, stable,
and well-documented requirements from the beginning, without
expecting significant changes
• Low to Moderate Complexity: For projects that are relatively
straightforward and not overly complex in terms of functionality and
architecture
• Small to Medium-Sized Projects: often appropriate for smaller
to medium-sized projects with limited scope and a manageable team
size
• Client's Preference: Client desires a traditional and linear
approach due organizational policies.
EC-360 Software Engineering 6
3
10/10/2023
AGILE DEVELOPMENT
The Manifesto for
Agile Software Development
In 2001, (“Agile Alliance”) signed the “Manifesto for Agile Software
Development.” as follows: -
while there is value in the items on the right, we value the items
on the left more: -
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
Kent Beck et al
https://agilemanifesto.org/
4
10/10/2023
Introduction
Agile Software Development
• Agile Software Development is a set of principles and
practices for software development that prioritizes
flexibility, collaboration, and customer satisfaction.
• It aims to deliver valuable software incrementally and
iteratively while adapting to changing requirements and
feedback throughout the project's lifecycle.
• Agile methodologies promote a more customer-centric,
collaborative, and adaptive approach to software
development
Agility and the Cost of Change
10
5
10/10/2023
When Not to Use Agile
1. Your customer requires neat documentation of each
development cycle
2. Your customer requires approvals at each stage of
development
3. Your customer wants you to use the traditional methodology
and doesn’t want to hear about Agile
4. Your software house does not invest in spreading Agile
practices among the developers, testers, and management.
https://hygger.io/blog/when-not-to-use-
agile/#:~:text=Agile%20methods%20allow%20you%20to,not%20using%20Agile%20
development%20methods.
11
Agile Approaches
1. There are several Agile approaches and frameworks that
organizations can choose from, depending on their specific
needs and preferences: -
2. We will see two of most influential approaches: -
• Extreme Programming (XP)
• Scrum
12
6
10/10/2023
EXTREME PROGRAMMING
(XP)
13
Extreme Programming (XP)
• The most widely used agile process (IN PAST), originally
proposed by Kent Beck
• Extreme Programming uses an object-oriented approach
as its preferred development paradigm
• Includes a set of rules and practices that occur within the
context of four framework activities: planning, design,
coding, and testing.
14
7
10/10/2023
Extreme Programming (XP)
15
13 XP Practices
(Source: https://condor.depaul.edu/mwright1/se450/lectures/class-02-008.html )
16
8
10/10/2023
13 XP Practices
1. Whole Team (onsite customer) 7.Pair Programming
2. Planning Game 8.Collective Code Ownership
3. Small Releases 9.Continuous Integration
4. Common Metaphor 10.Sustainable Pace (40-Hr)
5. Simple Design 12.Coding Standards
6. Test-driven Development 13.Customer Tests
7. Refactoring
(Source: https://condor.depaul.edu/mwright1/se450/lectures/class-02-008.html )
17
Tutorial: https://www.tutorialspoint.com/scrum/index.htm
SCRUM
18
9
10/10/2023
Extreme Programming (XP)
19
SCRUM
20
10
10/10/2023
Scrum
• Originally proposed by Schwaber and Beedle
• Scrum—distinguishing features
– Work occurs in “sprints” and is derived from a
“backlog” of existing requirements
– Meetings are very short
21
Scrum at a Glance
24 hours
Daily Scrum
Meeting
Backlog tasks 30 days
expanded
Sprint Backlog by team
Potentially Shippable
Product Backlog Product Increment
As prioritized by Product Owner
Source: Adapted from Agile Software
Development with Scrum by Ken
Schwaber and Mike Beedle.
22
11
10/10/2023
Do Little of Everything Regularly
Requirements Design Code Test
Rather than doing all of one
thing at a time...
...Scrum teams do a little of
everything all the time
23
Scrum Framework
Roles
•Product owner
•Scrum Master
•Team Ceremonies
•Sprint planning
•Daily scrum meeting
•Sprint review
•Sprint retrospective
Artifacts
•Product backlog
•Sprint backlog
•Burndown charts
24
12
10/10/2023
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 sanctioning Scrum values and practices
• Remove obstacles / politics, keeps everyone productive
– Project Team
• 5-10 members;
• Cross-functional: QA, Programmers, UI Designers, etc.
• Membership should change only between sprints
25
Sprint Planning Meeting
Team
Sprint planning meeting
capacity
Sprint prioritization
Product • Analyze/evaluate product Sprint
backlog backlog goal
• Select sprint goal
Business
conditions Sprint planning
• Decide how to achieve sprint goal
Current • Create sprint backlog (tasks) from Sprint
product product backlog items (user
stories / features) backlog
• Estimate sprint backlog in time
Technology units or story points
26
13
10/10/2023
Daily Scrum Meeting
• Parameters
– Daily, ~15 minutes, Stand-up
• Not for problem solving
– Only team members, Scrum Master, product owner, can talk
– Helps avoid other unnecessary meetings
• Three questions answered by each team member:
1. What did you do yesterday?
2. What will you do today?
3. What obstacles are in your way?
27
The Sprint Review
• After completion of Sprint
• Team presents what it accomplished during the
sprint
• Typically takes the form of a demo of new
features or underlying architecture
• Informal
– No slides
• Whole team participates
28
14
10/10/2023
The Sprint Retrospective
• Team discusses results of last sprint
• The retrospective includes three main
questions/points for discussion:
– What went well during the sprint cycle?
– What went wrong during the sprint cycle?
– What could we do differently to improve?
• Process improvements are made at the end of
every sprint. This ensures that the project team
is always improving the way it works.
29
Scrum's Artefacts
• Scrum has remarkably few artefacts
– Product Backlog
– Sprint Backlog
– Burndown Charts, and other monitoring Charts, etc
• Can be managed using just an Excel spreadsheet
– More advanced / complicated tools exist:
– JIRA is one popular option: -
– https://www.atlassian.com/software/jira
• Jira Tutorial for Beginners: Jira Project Management
– https://youtu.be/nHuhojfjeUY?si=Aa6ybjbqiNCSRjtJ
30
15
10/10/2023
Product Backlog
• The requirements
• A list of all desired work on project
• Ideally expressed as a list of user
stories along with "story points", such
that each item has value to users or
customers of the product
• Why we use story points (relative
estimation)? What is Team Velocity?
This is the
• Teams starting out with story points
product backlog
use an exercise called planning
poker. See: -
See more on Story Points here:
https://www.atlassian.com/agile/project- – https://www.youtube.com/watch?v=TxSzo
3lwwWQ
management/estimation
• Prioritized by the product owner
• Reprioritized at start of each sprint
31
User Stories
• Instead of Traditional Requirements, Agile
project owners do "user stories"
– Who (user role) – Is this a customer, employee,
admin, etc.?
– What (goal) – What functionality must be
achieved/developed?
– Why (reason) – Why does user want to accomplish
this goal?
As a [user role], I want to [goal], so I can [reason].
32
16
10/10/2023
User Stories - Example
• Example:
– "As a user, I want to log in, so I can access subscriber
content.“
– https://www.atlassian.com/agile/project-management/user-stories
• Story points: Rating of effort needed to implement this
story
– common scales: 1-10, shirt sizes (XS, S, M, L, XL),
etc.
– https://www.atlassian.com/agile/project-management/estimation
33
Story Points
• Story points are a relative estimation method.
• This means that we estimate the effort required to
complete a task by comparing it to other tasks that we
have already completed.
• This makes story points more accurate than time
estimation because we are less likely to be influenced by
factors such as complexity and experience.
• Estimate how many story points the team can complete
in a sprint and use this information to plan the sprint
34
17
10/10/2023
Team Velocity
• To calculate team velocity from story points for a sprint, you
can follow these steps:
– Add up the total number of story points completed by the team in the sprint.
– Divide the total number of story points completed by the number of days in
the sprint.
• For example, let's say that a team completes 20 story
points in a 2-week sprint. The team's velocity would be 10
story points per week.
• Here is the mathematical formula for calculating team
velocity:
– Velocity = Total story points completed / Number of days in the sprint
• It provides estimate how much work the team can complete in
future sprints
35
Sample Product Backlog
Set by product
owner
36
18
10/10/2023
Sample Sprint Backlog
• The Sprint Backlog is a subset of the Product Backlog, consisting of
the highest-priority user stories or tasks selected for a specific sprint.
• It is the work to be completing during the upcoming sprint
• The Sprint Backlog is created collaboratively during the Sprint
Planning meeting
37
Sprint backlog Monitoring
During the spring the progress is monitored and maintained during
daily scrum meeting. You can do it in JIRA Scrum Board.
38
19
10/10/2023
Sprint Burndown Chart
• A display of what work has been completed
and what is left to complete
– one for each developer or work item
– updated every day
– (make best guess about hours/points completed each
day)
39
Burndown Chart
40
20
10/10/2023
Burndown Example – JIRA
Graphical View
41
Burndown Example – JIRA
Tabular View
42
21
10/10/2023
Burndown Example 1
No work being performed
Sprint 1 Burndown
60
50
40
Hours remaining
30
20
10
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Days
15 16in17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Sprint
43
Burndown Example 2
Work being performed, but not fast enough
Sprint 1 Burndown
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 Days
15 16in17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Sprint
44
22
10/10/2023
Burndown Example 3
Work being performed, but too fast!
Sprint 1 Burndown
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
45
END Week 2
• Homework
– Explore concepts: Story Point? And Team Velocity?
– Jira Tutorial for Beginners: Jira Project Management
• https://youtu.be/nHuhojfjeUY?si=Aa6ybjbqiNCSRjtJ
– Scrum Project vs Kanban Project in 6 minutes - JIRA Tutorial
• https://www.youtube.com/watch?v=3hHrHA3GaUA&t=76s
– The Power of Jira and Confluence: An Introduction
• https://www.youtube.com/watch?v=B43noLXB_UU
– Tutorial: How to use Bitbucket in Jira Cloud
• https://www.youtube.com/watch?v=9nkjCsS4KUU
– Learn scrum with Jira Software
• https://www.atlassian.com/agile/tutorials/how-to-do-scrum-with-jira-software
46
23