Professional Documents
Culture Documents
Lecture 5 - Agile Models
Lecture 5 - Agile Models
Fundamentals of
Software Engineering
LECTURE: AGILE AND EXTREME PROGRAMMING
Project Failure – the trigger for Agility
• Reference: Extreme Programming explained: Embrace Change By: Kent Beck with Cynthia Andres; 2nd ed., 2005
What is an Agile method? (1)
7
Summary of Principles of agile methods
Agile Teams.
u With that skill mix, agile techniques have been shown to work many times.
13
Extreme Programming
u XP (according to inventor Kent Beck) is
characterized by 12 practices:
u Planning Game
u Small Releases
u Metaphor
u Simple Design
XP (Xtreme u Testing
Continuous Integration
Programing) u
u Pair Programming
u Collective Ownership
u Refactoring
u 40 Hour Week
u On Site Customer
u Coding Standards
15
16
Metaphor
u The above mentioned features of the Extreme Programming methodology formulate its
12 practices. Metaphor is one of them.
u An Extreme Programming system metaphor is a practice that is used by the XP
developers to replace the standard project architecture used in traditional software
development methodologies.
17
Extreme programming practices (a)
Principle or practice Description
Requirements are recorded on story cards and the stories to be
Incremental planning included in a release are determined by the time available and
their relative priority. The developers break these stories into
development ‘Tasks’.
Pair
Programming
(Key practice
of XP)
20
XP (Extreme Programming)
u XP Practices
u Collective ownership anyone can change any part of the code at any time.
u Continuous integration new builds as soon as code ready
u 40 hour week maximum 40 hour week. No overtime
u On site customer present and available full time for team
u Coding standards rules exist and are followed
u Open workspace large room small cubicles
u Just rules team has own rules but can be changed any at time
21
Key Practices of XP
u Planning
u User stories are written.
u Release planning creates the schedule.
u Make frequent small releases
u The Project Velocity is measured.
u The project is divided into iterations
u Iteration planning starts each iteration.
u Move people around
u A stand up meeting starts each day.
u Fix XP when it breaks.
22
Refactoring
u Refactor whenever and wherever possible e.g.
u Techniques for improving names and location of code
u Examples
u Move method or move field
u move to a more appropriate class or source file
u Rename method or rename field
u changing the name into a new one that better reveals
its purpose
23
Key Practices …
u Coding
u The customer is always available
u Code must be written to agreed standards
u Code the unit test first
u All production code is pair programmed
u Only one pair integrates code at a time
u Integrate often
u No overtime .
u Testing
u All code must have unit tests
u All code must pass all unit tests before it can be released.
u When a bug is found tests are created.
u Acceptance tests are run often and the score is published.
24
Fitting it
all
together
25
XP Advantages/Disadvantages
u Advantages
u Built In Quality
u Overall Simplicity
u Programmer Power
u Customer Power
u Synergy Between Practices
26
XP Advantages/Disadvantages
u Disadvantages
u Informal, little, or no documentation
u Scalability
u Contract Issues
u Misconception on the cost of change
u Tailoring
27
When to use / Not to use
u Applicable
u Highly uncertain environments
u Internal projects
u Joint ventures
u Not Suitable / Applicable
u Large, complex environments
u Safety critical situations
u Well understood requirements
u Distant or unavailable customer
28
Requirements scenarios
² In XP, a customer or user is part of the XP team and is responsible for making
decisions on requirements.
² User requirements are expressed as scenarios or user stories.
² These are written on cards and the development team break them down into
implementation tasks. These tasks are the basis of schedule and cost estimates.
² The customer chooses the stories for inclusion in the next release based on their
priorities and the schedule estimates.
SCRUM
32
SCRUM
Roles
•Product owner
•ScrumMaster The Process
•Team
•Sprint planning
•Sprint review
•Sprint retrospective
•Daily scrum
Artifacts
meeting
•Product backlog
•Sprint backlog
•Burndown charts
36
The Sprint cycle
² Sprints are fixed length, normally 2–4 weeks. They correspond to the
development of a release of the system in XP.
² The starting point for planning is the product backlog, which is the list of work to
be done on the project
² The selection phase involves all of the project team who work with the customer
to select the features and functionality to be developed during the sprint
37
Product Backlog
38
The Sprint cycle
² Once these are agreed, the team organize themselves to develop the software.
During this stage the team is isolated from the customer and the organization,
with all communications channelled through the so-called Scrum master
² The role of the Scrum master is to protect the development team from external
distractions
² At the end of the sprint, the work done is reviewed and presented to
stakeholders. The next sprint cycle then begins.
² Velocity is a measure of the amount of work a Team can tackle during a single
Sprint and is the key metric in Scrum. Velocity is calculated at the end of the
Sprint by totaling the Points for all fully completed User Stories.
² A burn down chart is a graphical representation of work left to do versus time.
The outstanding work (or backlog) is often on the vertical axis, with time along the
horizontal. That is, it is a run chart of outstanding work. It is useful for predicting
when all of the work will be completed.
43
Sprint - Duration