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

CEN512 Agile Software Engineering-Module 2

The document outlines the Agile Software Engineering course, focusing on Agile principles, methodologies, and frameworks like Scrum and Kanban. It emphasizes iterative development, customer collaboration, and adaptability to change, detailing the Agile Manifesto and its 12 principles. Additionally, it discusses practical applications of Agile beyond software development, including event planning and marketing, while highlighting the benefits and challenges of adopting Agile practices.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views41 pages

CEN512 Agile Software Engineering-Module 2

The document outlines the Agile Software Engineering course, focusing on Agile principles, methodologies, and frameworks like Scrum and Kanban. It emphasizes iterative development, customer collaboration, and adaptability to change, detailing the Agile Manifesto and its 12 principles. Additionally, it discusses practical applications of Agile beyond software development, including event planning and marketing, while highlighting the benefits and challenges of adopting Agile practices.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 41

Agile Software

Engineering
CEN512
(Module 2)

Computer Software Engineering II

Course lectures
Dr Odu Tiwalade & Mr Emmanuel Simonyan
Course Learning Outcomes
By the end of the course:
• Students will demonstrate a deep understanding of
Agile principles, such as the Agile Manifesto, and be
able to apply frameworks like Scrum and Kanban in
software development.
• Students will learn how to work in iterative cycles
(sprints) to build and deliver software incrementally,
ensuring continuous feedback and adaptation to
changing requirements.
• Students will develop the skills needed to collaborate
effectively in cross-functional, self-organizing teams,
fulfilling roles such as Product Owner, Scrum Master, or
Developer in Agile projects.
Learning Objectives
By the end of the course, students should
• Grasp the core concepts of Agile, including iterative
development, continuous integration, sprint planning,
and retrospective processes, and how these elements
work together to ensure successful project outcomes.
• Apply Agile Practices to Real-World Projects.
• Utilize Agile Tools and Techniques for Project
Management.
Agile
Methodology
Introduction to Agile Software
Engineering
• Agile Definition: Agile is a software development
methodology that focuses on iterative development,
customer collaboration, and adapting to change. Unlike
traditional models that follow strict stages, Agile
emphasizes flexibility and responsiveness.
History of Agile Project Management
• The concept of Agile project management evolved as a response to the
rigidity and slow pace of traditional project management methodologies
like Waterfall.
• During the 1990s, software projects were often delayed, over budget, or
misaligned with customer expectations.
• This was largely because the Waterfall approach required extensive
upfront planning and had little room for changes once development
began.
• In 2001, a group of 17 software development experts met in Snowbird,
Utah, to discuss better ways of managing projects.
• This meeting resulted in the creation of the Agile Manifesto, which
became the cornerstone of Agile project management.
• The manifesto prioritised customer collaboration, responsiveness to
change, and delivering functional software quickly and iteratively.
The Agile Manifesto
• The Agile Manifesto, created in 2001, outlines four core
values that guide Agile development:
• Individuals and interactions over processes and tools.
Agile prioritizes communication and collaboration within
teams.
• Working software over comprehensive documentation.
While documentation is important, delivering working
software is the priority.
• Customer collaboration over contract negotiation. Agile
teams work closely with customers to ensure they meet
their needs.
• Responding to change over following a plan. Agile
welcomes changing requirements, even late in
development.
The 12 Agile Principles
• The Agile Manifesto is supported by 12 key principles, which
guide how Agile teams operate. Some of the key principles
include:
1. Customer satisfaction through early and continuous
delivery of valuable software.
2. Welcome changing requirements, even late in
development.
3. Deliver working software frequently, with a preference for
shorter timescales.
4. Close collaboration between business people and
developers throughout the project.
5. Build projects around motivated individuals and give
them the environment and support they need.
6. Face-to-face communication is the most effective method
of conveying information.
The 12 Agile Principles cont’d
7. Working software is the primary measure of
progress.
8. Sustainable development, with teams 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. Regular reflection on how to become more
effective, and adjustments are made accordingly.
How Agile Works
• Agile is an iterative and incremental approach to project
management and software development.
• Instead of focusing on delivering the entire product at
the end of the project.
• Agile emphasizes continuous delivery of smaller
pieces of the product throughout the development
cycle.
• These pieces, known as increments, are delivered in
sprints (typically 1–4 week cycles), with each sprint
ending in a potentially shippable product increment.
Incremental Development

Source: Ian Sommerville


2018
Agile vs. Waterfall Approach
Aspect Agile Waterfall
Structure Iterative and incremental Linear and sequential
Flexibility High flexibility to accommodate Low flexibility; changes are
changes costly after each phase

Customer Involvement Continuous involvement; Customer feedback typically


feedback is gathered in every gathered only at the end
sprint

Documentation Focus on working product over Emphasizes detailed


extensive documentation documentation at every stage

Delivery Continuous delivery of Final product delivered at the


functional increments end of the project

Risk Management Reduced risk; errors caught Higher risk as issues may only
early due to frequent iterations surface at the end
Key aspects of how Agile works:
• Iterations (Sprints): Projects are broken down into
smaller, manageable cycles called sprints, each
delivering part of the final product.
• Cross-Functional Teams: Teams in Agile are typically
self-organizing and cross-functional, which means
developers, testers, designers, and other roles
collaborate closely throughout the sprint.
• Frequent Feedback Loops: After each sprint, teams
review their progress, demonstrate the product to
stakeholders, and gather feedback. This ensures the
product stays aligned with the customer's needs.
Key aspects of how Agile works
cont’d
• Backlogs: The product backlog is a list of features,
enhancements, and bug fixes prioritised by the team and
product owner. The sprint backlog contains the tasks for
the current sprint.
• Continuous Improvement: Agile promotes regular
reflection (retrospectives) on how to improve team
processes and collaboration.

Example: Spotify, a major music streaming platform, uses


Agile to continuously deliver new features and
improvements to its users.
Scrum
• A scrum is a short, daily meeting that is usually held at
the beginning of the day.
• During a scrum, all team members share information,
describe their progress since the previous day’s scrum,
problems that have arisen and plans for the coming day.
• This means that everyone on the team knows what is
going on and, if problems arise, can re-plan short-term
work to cope with them.
Scrum Framework Overview
• Scrum is one of the most popular frameworks within
Agile, providing structure for iterative product
development.
Scrum Roles:
• Product Owner: Defines and prioritizes the product
backlog.
• Scrum Master: Ensures the team follows Agile
principles, removing roadblocks and facilitating
meetings.
• Development Team: Responsible for delivering the
product increment in each sprint.
Scrum meetings brief
• Scrum meetings should be short and focused. To dissuade
team members from getting involved in long discussions,
they are sometimes organized as ‘stand-up’ meetings
where there are no chairs in the meeting room.

• During a scrum, the sprint backlog is reviewed. Completed


items are removed from it. New items may be added to the
backlog as new information emerges.

• The team then decide who should work on sprint backlog


items that day.
Scrum Cycles

Source: Ian Sommerville


2018
Scrum Artifacts
Artifacts in Scrum help manage the project and track progress:
• Product Backlog: A prioritized list of features,
improvements, and fixes that the team will work on. The
product backlog is a list of what needs to be done to
complete the development of the product.
• The items on this list are called product backlog items (PBIs).
• Sprint Backlog: A subset of the product backlog selected for
a specific sprint.
• Increment: The sum of all completed items during a sprint,
representing potentially shippable functionality.
Sprint reviews
• At the end of each sprint, there is a review meeting, which
involves the whole team. This meeting:
• reviews whether or not the sprint has met its goal.
• sets out any new problems and issues that have emerged during the
sprint.
• is a way for a team to reflect on how they can improve the way they
work.
• The product owner has the ultimate authority to decide whether
or not the goal of the print has been achieved. They should
confirm that the implementation of the selected product backlog
items is complete.
• The sprint review should include a process review, in which the
team reflects on its own way of working and how Scrum has been
used.
• The aim is to identify ways to improve and to discuss how to use Scrum
more productively.
20
Self-organizing teams

21
Team size and composition
• The ideal Scrum team size is between 5 and 8 people.
• Teams have to tackle diverse tasks and so usually require people with
different skills, such as networking, user experience, database design and
so on.
• They usually involve people with different levels of experience.
• A team of 5-8 people is large enough to be diverse yet small enough to
communicate informally and effectively and to agree on the priorities of the
team.
• The advantage of a self-organizing team is that it can be a cohesive
team that can adapt to change.
• Because the team rather than individuals take responsibility for the work,
they can cope with people leaving and joining the team.
• Good team communication means that team members inevitably learn
something about each other’s areas
22
Team coordination
• The developers of Scrum assumed that teams would be co-located.
They would work in the same room and could communicate informally.
• Daily scrums mean that the team members know what’s been done and what
others are doing.

• However, the use of daily scrums as a coordination mechanism is based


on two assumptions that are not always correct:
• Scrum assumes that the team will be made up of full-time workers who share a
workspace. In reality, team members may be part-time and may work in
different places. For a student project team, the team members may take
different classes at different times.
• Scrum assumes that all team members can attend a morning meeting to
coordinate the work for the day. However, some team members may work
flexible hours (e.g. because of childcare responsibilities) or may work on
several projects at the same time.

23
External interactions
• External interactions are interactions that team
members have with people outside of the team.
• In Scrum, the idea is that developers should focus on
development and only the ScrumMaster and Product
Owner should be involved in external interactions.
• The intention is that the team should be able to work on
software development without external interference or
distractions.

24
Managing external interactions

Source: Ian Sommerville


2018 25
Project management
• In all but the smallest product development companies,
there is a need for development teams to report on
progress to company management.
• A self-organizing team has to appoint someone to take on
these responsibilities.
• Because of the need to maintain continuity of communication with
people outside of the group, rotating these activities around team
members is not a viable approach.
• The developers of Scrum did not envisage that the
ScrumMaster should also have project management
responsibilities.
• In many companies, however, the ScrumMaster has to take on
project management responsibilities.
• They know the work going on and are in the best position to
provide accurate information and project plans and progress. 26
Project management responsibilities

Source: Ian Sommerville 27


The Scrum Process
The Scrum process involves several key steps:
• Sprint Planning: The team selects the highest-priority
items from the product backlog to complete in the next
sprint.
• Daily Stand-Up: A 15-minute meeting where each
team member briefly shares their progress, plans, and
any blockers.
• Sprint Review: At the end of the sprint, the team
demonstrates the completed features to the product
owner and stakeholders.
• Sprint Retrospective: The team reflects on the sprint
Kanban in Agile
• Kanban is a visual method used to manage and improve workflows
by focusing on continuous delivery without overloading team
members.
Key Concepts:
• Visualize Workflow: Use a board with columns like “To Do,” “In
Progress,” and “Done.”
• Limit Work in Progress (WIP): Set limits on how many tasks can
be in progress at once.
• Continuous Delivery: Unlike Scrum, Kanban doesn’t have defined
sprints—tasks move through the workflow as they’re completed.

• Case Study Software (Trello). it a popular project management


tool, uses a Kanban board to help teams visualize their tasks and
manage progress.
Tools for Agile Development
There are several tools that support Agile processes:
https://www.atlassian.com/
https://github.com/vectrlabs/GitHub-Kanban?tab=readme-
Continuous Integration and
Continuous Delivery (CI/CD)
• CI/CD automates software delivery by ensuring that code is
integrated, tested, and delivered to production frequently and
reliably.
• CI (Continuous Integration): Developers frequently merge their
changes into the main codebase. Each change triggers an
automated build and testing process to catch errors early.
• CD (Continuous Delivery): Automates the deployment process
so that new code can be pushed to production quickly and safely.
• Tools: Jenkins, GitLab CI, and CircleCI.
• Example: Open source softwares uses CI/CD to deploy
hundreds of small updates daily, ensuring continuous
improvement without service interruptions.
Benefits of Agile Software
Engineering
• Recall in our last class
1. Faster Time to Market: Agile allows teams to deliver
functional software quickly, even if the full feature set isn’t
ready.
2. Increased Flexibility: Agile teams can adapt to changes in
requirements or user needs at any stage of development.
3. Enhanced Collaboration: Agile promotes close collaboration
between development teams and stakeholders.
4. Improved Quality: Continuous testing and regular feedback
help identify and fix bugs early.
Some challenges with Agile methodology
• Lack of Documentation: Agile tends to prioritize working
software over documentation, which can lead to knowledge gaps.
• Frequent Changes: Constantly shifting priorities can make long-
How to Adopt and Apply Agile in Any
Kind of Project
• Agile can be applied to many different types of projects, not just software
development.
• The key is to focus on iterative progress, frequent feedback, and flexible,
collaborative teams.
Plan in Sprints
• Organize work into sprints (typically 1–4 weeks) with a clear set of
deliverables. For example, in a research project, Sprint 1 might involve
gathering sources and writing the literature review, while Sprint 2 might
focus on data collection and analysis.
Create a Product Backlog
• Break the project down into user stories or tasks that deliver value. For
example, in a software project, the backlog might include tasks such as
"integrate a payment processor " or “create the feeds feature."
How to Adopt and Apply Agile in Any
Kind of Project cont’d
Hold Sprint Reviews and Retrospectives
• At the end of each sprint, conduct a sprint review
where the team presents what they have accomplished.
Gather feedback from stakeholders, then hold a sprint
retrospective where the team reflects on what went
well and what can be improved.
Use Kanban for Visual Task Management
• Agile can be supported with tools like Kanban boards,
Notion Board, Google Sheets or Github Board
where tasks move through stages such as “To Do,” “In
Progress,” and “Done.” This provides a visual
representation of the project’s progress.
How to Adopt and Apply Agile in Any
Kind of Project cont’d
Continuous Feedback and Adjustment
• Encourage constant feedback from customers, stakeholders,
and team members.
• Adjust priorities and the backlog based on this feedback to
ensure that the project evolves in the right direction.
Set Up a Cross-Functional Team
• Whether you’re managing a marketing campaign, organizing
an event, or writing a report, gather a team that has all the
necessary skills.
• In Agile, teams are typically self-organizing and include
members from multiple disciplines.
Practical Applications of Agile
Beyond Software Development
Agile in Event Planning:
• For event management, tasks like booking venues, managing guest
lists, and arranging speakers can be organized into sprints.
• The event’s progress can be visualized using a Kanban board,
ensuring that nothing is overlooked.
Agile in Marketing:
• Marketing teams can adopt Agile to plan and execute campaigns in
iterative cycles, frequently testing strategies and messaging based
on customer feedback.
Agile in Final Project Research and Report Writing
• As a researcher you can adapt it in your academic research iterative
process from the start of the project to the final results.
Recap of Agile Concepts
Throughout the presentation, we’ve covered:
• The Agile Manifesto.
• Scrum and Kanban frameworks.
• Real-world examples from Spotify, Amazon, Netflix, and
others.
• Integrating Agile into group projects.
Final Questions and Discussion

1. How would you apply Agile methodologies in your group


project?
2. What do you think is the biggest challenge in adopting
Agile in a large organization?
Recommendation

• Book: Deep Work by Cal Newport ( It will help your focus


if you are someone who is easily distracted)

• https://agilemanifesto.org/principles.html

You might also like