W3- Lecture 5&6-Agile Development
W3- Lecture 5&6-Agile Development
Lecture 5&6
Agile Development
4/13/2025 CSC291 - Software Engineering Concepts 2
Outline
An Agile Process
Change often”
Agile Methods
• These methods
• Focus on the code
• Are based on an iterative approach to software development
• Are intended to deliver working software quickly and evolve
this quickly to meet changing requirements.
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. Team
members should be left to develop their own ways of working.
Adapt 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.
4/13/2025 CSC291 - Software Engineering Concepts 7
Agile Methodologies
Extreme Programming
• All tests must be run for every build and the build is only
accepted if tests run successfully.
4/13/2025 CSC291 - Software Engineering Concepts 9
Small releases The minimal useful set of functionality that provides business value
is developed first.
Releases of the system are frequent and incrementally add
functionality to the first release.
Simple design Enough design is carried out to meet the current requirements and
no more.
Test-first development An automated unit test framework is used to write tests for a new
piece of functionality before that functionality itself is implemented.
Collective ownership The pairs of developers work on all areas of the system, all the
developers take responsibility for all of the code. Anyone can change
anything.
Continuous integration As soon as the work on a task is complete, it is integrated into the
whole system. After any such integration, all the unit tests in the
system must pass.
Sustainable pace Large amounts of overtime are not considered acceptable as the net
effect is often to reduce code quality and productivity
First, you select the article that you want from a displayed list.You
then have to tell the sy stem how you will pay for it - this can either
be through a subscription, through a comp any account or by credit
card.
After this, you get a cop yright form from the system to fill in and,
when you have submitted this, the article you want is downloaded
onto your comp uter.
You then choose a p rinter and a copy of the article is printed. You
tell the system if printing has been successful.
If the article is a print-only article, you canÕt keep the P DF version
so it is automatically deleted from your comp uter.
4/13/2025 CSC291 - Software Engineering Concepts 14
Task Cards
Task 1: Implement principal work flow
What is Scrum?
• Scrum is light weight, interrelated practices and set of
laws to optimize the development environment and
reduce organizational overheads.
Scrum in Detail
Scrum Phases
There are three phases in Scrum given below:-
Planning - In planning phase of Scrum model, the
requirements are gathered by the customers by scratching
a new system
Development Sprints - In this phase of Scrum, the
developers start coding and developing the functions or
module in sprints iterations
Closure - In this phase, the final product is released, and
documentation is made. Sprint review meeting conduct to
check either the goals are achieved or not
4/13/2025 CSC291 - Software Engineering Concepts 17
Scrum in Detail…..continue
Scrum Roles
Product Owner - Product owner has different
responsibilities. Their main responsibility is to define
the features of the product backlog. Product backlog is
the lists of features which are required by the
customer
Scrum Master - Scrum Master is the team lead or
project manager of the project. It has close links with
product owner. It has responsibility to solve all
problems faced by the team members during the life
cycle
Team - The team members in Scrum consist of seven
members. The number can vary from project to
project. The main function of the team is to develop
the product. The team complete the different tasks
assigned by the product owner.
4/13/2025 CSC291 - Software Engineering Concepts 18
Scrum in Detail…..continue
Scrum Artifacts
There are three artifacts in Scrum are Product backlog, Sprint Backlog
and Burn down Charts.
• Product Backlog - In product backlog, product owner prepares a list of
customer requirements and then prioritized them with high return of
investment. The higher priority function is made first and lower propriety
function develops later in development phase.
• Sprint Backlog - In sprint backlog, the team of the Scrum is committed to
complete all tasks given by the product owner within the time frame. Sprint
backlog are maintained by Scrum Master.
• Burn Down Chart - In burn down chart sprint progress, release progress
and product progress are maintained through graphs. The estimation of
the product list is maintained in it. The estimated time are mentioned in
the graph to complete the different task. It is maintained by product owner
4/13/2025 CSC291 - Software Engineering Concepts 19
Standup meetings
21
4/13/2025 CSC291 - Software Engineering Concepts
Scrum
Scrum says that Repeated/Defined problems, solutions,
Developers and organizational environment is not entirely
possible because developers change from one project to
another.
Scrum assumes that the development process is always
empirical and not defined.
Scrum says uncertainties are impossible to measure,
therefore, looks beyond the repeatable /defined approach
22
4/13/2025 CSC291 - Software Engineering Concepts
Advantages
Great emphasis on teamwork
Team learns and contributes throughout the
process
Team becomes autonomous and strives for
excellence
Rotation of leadership depending on the phase
gives a distributed nature of project execution
4/13/2025 CSC291 - Software Engineering Concepts 24
Advantages (Cont.)
The management team has a pulse on the
progress of the team, stepping in whenever
required
Creates an open environment and encourages
feedback
Evaluation of effort and subsequent rewards are
based on the team performance
Reduced need for meetings, authorization and
reporting
Iterative model leading to a delivery every 30
days
25
4/13/2025 CSC291 - Software Engineering Concepts
Disadvantages
Reusability is not considered in Scrum model.
In product backlog, the product owner prioritized the item
and business values in terms of most return of
investment. This will not be suitable in large scale
projects.
Changing requirements is welcome at any stage of the
development in Scrum. This will tend to increase the cost
of the project and also increase the time.
In Scrum, a daily meeting takes place for 15 minutes.
These meetings are not considered to be a good strategy
to cope the problems. Basically, it tends to increase the
complexity of the project.
Increase feedback by the customer will increase the
quality of the product but feedback which comes in later
stage of the development will become a big problem. It
will be very difficult to change the scope of the project in
later stage of the development life cycle.
26
4/13/2025 CSC291 - Software Engineering Concepts
Kanban
The word Kanban is of Japanese origin and its meaning is
linked to a time concept, “just-in-time”.
The Kanban method exists in a board or table (Kanban
board), divided into columns, that shows every flow of
the software production.
As the development evolves, the information contained in
the table changes, and when a new task comes into play,
a new “card” is created.
The Kanban method requires communication and
transparency so that the members of a team can know
exactly at what stage the development is and can see the
status of the project at any time.
27
4/13/2025 CSC291 - Software Engineering Concepts
Kanban
Advantages Disadvantages
Discussion Question
Suggest a suitable process model.
Conclusion
What is a process model?
Importance of Process Models
Different Models- Pros and Cons
Agile Methodologies
XP
Scrum
Kanban
4/13/2025 CSC291 - Software Engineering Concepts 31
Reading Assignment
Chapter 3: Agile Development
by “Software Engineering- A Practitioner's Approach”
(Book and Lecture Slides are already uploaded on
resource link.)
Resource Link:
https://sites.google.com/cuilahore.edu.pk/sec