0% found this document useful (0 votes)
23 views20 pages

L3b - Agile Software Development v1

Uploaded by

oshigarg.14
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views20 pages

L3b - Agile Software Development v1

Uploaded by

oshigarg.14
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Agile project management

COMP3297 by Leo Yeung L3 - Agile Software Development 25


Agile project management - Scrum

 Background: The standard approach to project management is plan-driven.


▪ Project managers draw up a plan for the
project showing what should be delivered,
when it should be delivered and who will
work on the development of the project
deliverables.
▪ Agile project management requires a
different approach, which is adapted to
incremental development and the practices
used in agile methods.
 Scrum (2001) is an agile method that focuses
on managing iterative development. There
are three phases:
1. outline planning
2. a series of sprint cycles → increments
3. wraps up the project

COMP3297 by Leo Yeung L3 - Agile Software Development 26


Who are in the Scrum Team?

3. Product Owner
- Individual (or a small group)
- Identify & prioritize product
features or requirements
- Continuously review product
2. Scrum Master backlog
- Ensure Scrum process - Can be customer, PM or
is followed. stakeholder representative
- Guide the team use
Scrum effectively
- Interface with rest of 1. Developers
the company, s.t. Scrum - Group of self-organizing
team is not diverted by software developers
outside interference - Usually, <7 people
- Develop software and
essential project documents

(Reference: https://www.visual-paradigm.com/scrum/what-is-scrum-team/)
COMP3297 by Leo Yeung L3 - Agile Software Development 27
Scrum sprint cycle (1)

 Sprints (A development iteration) are fixed length, normally 2–4 weeks.


2.
- Product Owner prioritize the items in product backlog
- Team selects highest priority items they believe can be completed
- Development team organize themselves to develop software
- Velocity: estimate how much of the backlog could be covered based on previous stat

1. (Starting point)
- List of “to do” items must be done on the project. 3. (see next slide)
- They may be feature definitions for the software, software
requirements, user stories or descriptions of supplementary tasks that
are needed, such as architecture definition or user documentation.
- Selection phase involves all of the project team.

COMP3297 by Leo Yeung L3 - Agile Software Development 28


Scrum Board

 An office whiteboard that includes information


and post-it notes about the Sprint backlog, work
done, unavailability of staff, and so on.

Kanban board

User Stories

Tasks

(Reference: https://www.scrum.org/resources/what-is-a-sprint-backlog)
COMP3297 by Leo Yeung L3 - Agile Software Development 29
Scrum sprint cycle (2)

4.
Daily Scrum: A daily meeting of the Scrum team (short, face-to-face & whole team) (See
next slide)
- review progress and prioritizes work to be done that day
- Isolate customer and organization (All communication channelled through ScrumMaster)

COMP3297 by Leo Yeung L3 - Agile Software Development 30


Teamwork in Scrum

 The ‘Scrum master’ is a facilitator who


▪ arranges daily meetings,
▪ tracks the backlog of work to be done,
▪ records decisions,
▪ measures progress against the backlog,
Agile Simulation - The Daily Standup
▪ communicates with customers and Ref: https://youtu.be/q_R9wQY4G5I?t=224
management outside of the team.
 The whole team attends short daily meetings
(Scrums) where all team members: Everyone on the team
▪ share information, knows what is going
▪ describe their progress since the last meeting, on and, if problems
arise, can re-plan
▪ describe problems that have arisen,
short-term work to
▪ discuss what is planned for the following day. cope with them!
COMP3297 by Leo Yeung L3 - Agile Software Development 31
Scrum sprint cycle (2)

7. (end of the sprint)


- present to stakeholders
- update product backlog
- process improvement

6. All team members share


information in a review
meeting

5. which means that it is in a


finished state and no further
work, such as testing, is
needed to incorporate it into
the final product.

COMP3297 by Leo Yeung L3 - Agile Software Development 32


Scrum benefits

 The product is broken down into a set of manageable


and understandable chunks.
 Unstable requirements do not hold up progress.
 The whole team have visibility of everything and
consequently team communication is improved.
 Customers see on-time delivery of increments and gain
feedback on how the product works.
 Trust between customers and developers is established
and a positive culture is created in which everyone
expects the project to succeed.

COMP3297 by Leo Yeung L3 - Agile Software Development 33


Distributed Scrum

COMP3297 by Leo Yeung L3 - Agile Software Development 34


Think-Pair-Share

 Question: Which role best fit you?

Any tips?
(Reference: https://k21academy.com/scrum-master/scrum-master-vs-product-owner-which-role-is-suitable-for-you/)

COMP3297 by Leo Yeung L3 - Agile Software Development 35


Scaling agile methods

COMP3297 by Leo Yeung L3 - Agile Software Development 36


Scaling agile methods

 Agile methods have proved to be successful for small and medium


sized projects that can be developed by a small co-located team.
 Scaling agile methods involves changing these to cope with
larger, longer projects where there are multiple development
teams, perhaps working in different locations.
▪ ‘Scaling up’: developing large software systems that cannot be
developed by a small team.
▪ ‘Scaling out’: across a large organization with many years of software
development experience.
 When scaling agile methods, it is important to maintain agile
fundamentals:
▪ Flexible planning, frequent system releases, continuous integration,
test-driven development and good team communications.

COMP3297 by Leo Yeung L3 - Agile Software Development 37


Practical problems with agile methods

 The informality of agile development is incompatible with the legal


approach to contract definition that is commonly used in large
companies.
▪ Sol: A contract that pays for developer time rather than functionality
is required. (Risk: what has to be delivered cannot be guaranteed)
 Agile methods are most appropriate for new software development
rather than software maintenance. Key problems are:
▪ Lack of product documentation (Sol: high-quality and readable code)
▪ Keeping customers involved in the process (Sol: change proposal)
▪ Maintaining the continuity of the development team (Sol: Properly no)
 Agile methods are designed for small co-located teams yet much
software development now involves worldwide distributed teams.
▪ Sol: Multi-team Scrum (Advanced SE Topic)

COMP3297 by Leo Yeung L3 - Agile Software Development 38


(Test your knowledge)
Agile and plan-driven methods

 Most projects include elements of plan-driven and agile


processes. Deciding on the balance depends on:
▪ Is it important to have a very detailed specification and design
before moving to implementation?
▪ Is an incremental delivery strategy, where you deliver the software
to customers and get rapid feedback from them, realistic?
▪ How large is the system that is being developed?

COMP3297 by Leo Yeung L3 - Agile Software Development 39


(Test your knowledge)
Agile and plan-based factors

1. How large is the 5. How good are the 8. Is it standard organizational


system being designers and practice to develop a detailed
developed? programmers in the system specification?
2. What type of system development team? 9. Will customer representatives
is being developed? 6. How is the be available to provide
3. What is the expected development team feedback of system
system lifetime? organized? increments?
4. Is the system subject 7. What support 10. Can informal agile development
to external regulation? technologies are fit into the organizational culture
available? of detailed documentation?
COMP3297 by Leo Yeung L3 - Agile Software Development 40
Agile methods for large systems

 System of Systems, collections of separate, communicating


systems, where separate teams develop each system
 Brownfield development, include and interact with a number of
existing systems
 System configuration, a significant fraction with system
configuration rather than code development
 Regulatory constraints, constrained by external rules and
regulations limiting the way that they can be developed.
 Prolonged Procurement, long procurement and development time,
difficult to maintain coherent teams
 Diverse stakeholders, practically impossible to involve all of
these different stakeholders in the development process.

COMP3297 by Leo Yeung L3 - Agile Software Development 41


Scaling up to large systems

 A completely incremental approach to requirements


engineering is IMPOSSIBLE.
 There CANNOT be a single product owner or customer
representative.
 For large systems development, it is NOT possible to focus
only on the code of the system.
 Cross-team communication mechanisms have to be
designed and used.
 Continuous integration is practically IMPOSSIBLE.
However, it is essential to maintain frequent system builds
and regular releases of the system.

COMP3297 by Leo Yeung L3 - Agile Software Development 42


Key points

 Agile methods are incremental development methods that focus on


rapid software development, frequent releases of the software,
reducing process overheads by minimizing documentation and
producing high-quality code.
 Agile development practices include:
▪ User stories for system specification
▪ Frequent releases of the software,
▪ Continuous software improvement
▪ Test-first development
▪ Customer participation in the development team.

COMP3297 by Leo Yeung L3 - Agile Software Development 43


Key points

 Scrum is an agile method that provides a project management


framework.
▪ It is centred round a set of sprints, which are fixed time periods
when a system increment is developed.
 Many practical development methods are a mixture of plan-based
and agile development.
 Scaling agile methods for large systems is difficult.
▪ Large systems need up-front design and some documentation
and organizational practice may conflict with the informality of
agile approaches.

COMP3297 by Leo Yeung L3 - Agile Software Development 44

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy