0% found this document useful (0 votes)
13 views31 pages

W3- Lecture 5&6-Agile Development

The document covers Agile Software Development, detailing methodologies such as Extreme Programming (XP), Scrum, and Kanban. It emphasizes iterative development, customer involvement, and adaptability to changing requirements, while also discussing the principles, roles, and artifacts associated with Scrum. Additionally, it outlines the advantages and disadvantages of these methodologies, providing insights into their application in software engineering.
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)
13 views31 pages

W3- Lecture 5&6-Agile Development

The document covers Agile Software Development, detailing methodologies such as Extreme Programming (XP), Scrum, and Kanban. It emphasizes iterative development, customer involvement, and adaptability to changing requirements, while also discussing the principles, roles, and artifacts associated with Scrum. Additionally, it outlines the advantages and disadvantages of these methodologies, providing insights into their application in software engineering.
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/ 31

CSC291 - Software Engineering Concepts

Lecture 5&6
Agile Development
4/13/2025 CSC291 - Software Engineering Concepts 2

Outline

Agile Software Development


• Extreme Programming
• Scrum
• Kanban
4/13/2025 CSC291 - Software Engineering Concepts 3

An Agile Process

• Agile means being able to “Deliver quickly. Change quickly.

Change often”

• Develops software iteratively

• Delivers multiple ‘software increments’

• Adapts as changes occur


4/13/2025 CSC291 - Software Engineering Concepts 4

Agile Software Development


Characteristics of Agile Software Development

• Small to medium sized teams


• changing requirements
• changing techniques
• Simple design
4/13/2025 CSC291 - Software Engineering Concepts 5

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.

• 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.
4/13/2025 CSC291 - Software Engineering Concepts 6

The Principles Of Agile Methods


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. 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

1. eXtreme Programming (XP)


2. Scrum
3. Kanban
4. Lean Development
5. Crystal
4/13/2025 CSC291 - Software Engineering Concepts 8

Extreme Programming

• Perhaps the best-known and most widely used agile method.

• New versions may be built several times per day

• Increments are delivered to customers every 2 weeks

• 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

Extreme Programming (XP)


XP Values
• Communication(Be together with your customer and fellow
programmers, and talk to each other )

• Simplicity (Use simple design and programming practices, and


simple methods of planning, tracking, and reporting)

• Feedback(Test your program and your practices, using


feedback to steer the project)
4/13/2025 CSC291 - Software Engineering Concepts 10

Extreme Programming Core Practices (A)


Principle or practice Description
Incremental planning Requirements are recorded on story cards
The developers break these stories into development ‘Tasks’.

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.

Refactoring All developers are expected to refactor / restructure the code


continuously as soon as possible code improvements are found.
This keeps the code simple and maintainable.
4/13/2025 CSC291 - Software Engineering Concepts 11

Extreme Programming Core Practices (B)


Pair programming Developers work in pairs, checking each other’s work and providing
the support to always do a good job.

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

On-site customer A representative of the end-user of the system (the customer)


should be available full time.
In an extreme programming process, the customer is a member of
the development team and is responsible for bringing system
requirements to the team for implementation.
4/13/2025 CSC291 - Software Engineering Concepts 12

The Extreme Programming Release Cycle


4/13/2025 CSC291 - Software Engineering Concepts 13

Example – Story Card For Downloading


Document
Down loading and printing an article

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

Task 2: Implement article catalog and sele ction

Task 3: Implement payment collection

Payment may be made in 3 different ways. The user


selects which way they wish to p ay. If the user
has a library subscription, then they can input the
subscriber key which should be checked by the
system. Alternatively, they can inp ut an organisational
account number. If this is valid, a debit of the cost
of the article is posted to this account. Finally, they
may input a 16 digit credit card number and expiry
date. This should be checked for validity and, if
valid a debit is posted to that credit card account.
4/13/2025 CSC291 - Software Engineering Concepts 15

What is Scrum?
• Scrum is light weight, interrelated practices and set of
laws to optimize the development environment and
reduce organizational overheads.

• A Scrum is just like the eight members of the Rugby team,


they all are packed together and work as a team. Only
one goal has to achieve by the entire team at a single
time. [Mike Beedle (2001)]
16
4/13/2025 CSC291 - Software Engineering Concepts

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

Scrum Process Flow


20
4/13/2025 CSC291 - Software Engineering Concepts

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

Why Scrum Works


Most of the defined model assumptions are
removed
Constant feedback
Focused on “What can be done” instead of “Why
it can’t be done”
23
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

• Ability to view all tasks of one • It is possible for members of a


project (Completed, In team to misinterpret the
Progress or In Testing, for information show on the
example); Kanban Board, especially when
• It is possible to limit the it is revealed as outdated;
number of running tasks (that • Since there are no timeframes
is, the amount of work, bearing in Kanban, you can face time
in mind its resolution or related problems, such as
deliverability); delays, associated with each
• Focus on the duration of a and every stage.
cycle – how long it takes a task
to go from backlog to the final
stage;
• Allows continuous deliveries.
28
4/13/2025 CSC291 - Software Engineering Concepts
4/13/2025 CSC291 - Software Engineering Concepts 29

Discussion Question
Suggest a suitable process model.

Mughal brothers Pvt Ltd is the distributor of the Qarshi


products in Pakistan. This company wants to automate
the sale purchase and inventory system. Previously the
company has no experience of information technology.
They have no idea of what will be the size, cost and
duration of the project.
4/13/2025 CSC291 - Software Engineering Concepts 30

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

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