1
Fundamentals of
Software Engineering
LECTURE: AGILE AND EXTREME PROGRAMMING
2
AGILE DEVELOPMENT
2001 Kent Beck and 16 other software developers,
referred to as “Agile Alliance”, signed the “manifesto for
Agile software development” It stated We are
uncovering better ways of developing software by
doing it and helping others do it
Through this work we have come to value
Agile ▪ Individuals and interaction over processes and tool
Development ▪
▪
Working software over comprehensive documentation
Customer collaboration over contract negotiation
▪ Responding to change over following plan
That is, while there is value in the items on the right we
value the items on the left more
3
4
Agile Principles
Agile Alliance defined 12 agility principles:
1. Highest priority is to satisfy the customer through early and continues delivery of valuable software.
2. Welcome changing requirements even late n the development (for customers competitive
advantage).
3. Deliver working software frequently, from couple of weeks to couple of months.
4. Business people and developers must work together daily throughout the project.
5. Build project around motivated Individuals. Give them the environment and support they need,
and trust them to get the job done.
6. Most efficient and effective method of conveying information to and with team is face to face
conversation.
5
Agile Principles
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be
able to maintain a constant pace.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity the art of maximizing the amount of work done is essential.
11. The best architectures, requirements, and designs emerge from self organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its
behavior accordingly.
6
Agile Methods
Agile software development is a group of software development
methodologies that are based on similar principles.
Agile methodologies generally promote a project management
process that encourages
• frequent inspection and adaptation
• a leadership philosophy that encourages team work
• a set of engineering best practices that allow for rapid delivery of high quality
software, and a business approach that aligns development with customer
needs and company goals
What are Agile Methods?
7
8
• Agile methods emphasize Realtime
communication, preferably face to face,
over written documents.
Agile methods like XP relies on the close
Agile Methods •
collaboration of actively engaged
v/s Traditional individuals with ordinary talents and has
the ability to flexibly schedule the
Methods implementation of functionality,
responding to changing business needs.
Reference: Extreme Programming
explained: Embrace Change By: Kent
Beck with Cynthia Andres; 2nd ed., 2005
9
Extreme Programming (XP)
Scrum
Adaptive Software Development (ASD)
Crystal Clear and Other Crystal
Methodologies
Agile variants Dynamic Systems Development Method
(DSDM)
Feature Driven Development
Lean software development
Agile Unified Process (AUP)
10
Extreme Programming
XP (according to inventor Kent Beck) is
characterized by 12 practices:
Planning Game
Small Releases
Metaphor
Simple Design
XP (Xtreme Testing
Continuous Integration
Programing)
Pair Programming
Collective Ownership
Refactoring
40 Hour Week
On Site Customer
Coding Standards
11
12
What Xtreme that developers should have so much
freedom that 30 years of established best
Programming practices are thrown out the window. I
think this could be fairly termed XSP i.e.
is not Xtremely Stupid Programming.
13
XP (Extreme Programming)
XP Practices
Planning game programmers estimate effort of implementing
customer stories and customer decides about scope and timing of
releases
Short releases new release every 2 3 months
Simple design emphasis on simplest design
Testing development test driven.
Refactoring restructuring and changes to simplify
Pair Programming 2 people at 1 computer
14
Pair
Programming
(Key practice
of XP)
15
XP (Extreme Programming)
XP Practices
Collective ownership anyone can change any part of the code at any time.
Continuous integration new builds as soon as code ready
40 hour week maximum 40 hour week. No overtime
On site customer present and available full time for team
Coding standards rules exist and are followed
Open workspace large room small cubicles
Just rules team has own rules but can be changed any at time
16
Key Practices of XP
Planning
User stories are written.
Release planning creates the schedule.
Make frequent small releases
The Project Velocity is measured.
The project is divided into iterations
Iteration planning starts each iteration.
Move people around
A stand up meeting starts each day.
Fix XP when it breaks.
17
Key Practices of XP…..
Designing
Simplicity
Choose a system metaphor . (system of names for your objects that
everyone can relate to)
Use CRC cards for design sessions.
Create spike solutions to reduce risk.
Refactor whenever and wherever possible e.g. Techniques for
improving names and location of code Move method or move field
move to a more appropriate class or source file Rename method or
rename field changing the name into a new one that better reveals
its purpose
18
Class-
responsibility-
collaboration
card
19
Key Practices …
Coding
The customer is always available
Code must be written to agreed standards
Code the unit test first
All production code is pair programmed
Only one pair integrates code at a time
Integrate often
No overtime .
Testing
All code must have unit tests
All code must pass all unit tests before it can be released.
When a bug is found tests are created.
Acceptance tests are run often and the score is published.
20
Fitting it
all
together
21
XP Advantages/Disadvantages
Advantages
Built In Quality
Overall Simplicity
Programmer Power
Customer Power
Synergy Between Practices
22
XP Advantages/Disadvantages
Disadvantages
Informal, little, or no documentation
Scalability
Contract Issues
Misconception on the cost of change
Tailoring
23
When to use / Not to use
Applicable
Highly uncertain environments
Internal projects
Joint ventures
Not Suitable / Applicable
Large, complex environments
Safety critical situations
Well understood requirements
Distant or unavailable customer
24
Final Thoughts
Why XP succeeds
Why XP is popular
Why XP fails
Why XP is not the silver bullet
25
SCRUM
26
SCRUM
First presented to OMG in 1995 by shared concerns between Advanced
Development Methods (ADM) and
VMARK Software (VMARK).
ADM produces process automation software
VMARK produces object-oriented software development environments
Both companies were concerned over the lack of breakthrough productivity
being reported in object-oriented development projects
Not an acronym, Rugby team uses SCRUM meetings
A scrum is a team pack in Rugby , everybody in the pack acts together with
everyone else to move the ball down the field
27
Scrum is an agile, lightweight process to
manage and control development work.
Scrum is a wrapper for existing engineering
practices .
What is Scrum is a team based approach to
SCRUM ? iteratively, incrementally develop systems
and products when requirements are
rapidly changing
Scrum is a process that controls the chaos
of conflicting interests and needs
28
Scrum is a way to improve
communications and maximize co
operation .
Scrum is a way to detect and cause
the removal of anything that gets in
What is the way of developing and delivering
SCRUM ? products.
Scrum is a way to maximize
productivity .
Scrum is scalable from single projects
to entire organizations
29
30
User Story Examples
Standard template of a user story :
As a < type of user>
I want < some goal>
so that < some reason>
Ex1: As a power user, I can specify files or folders to backup
based on file size, date created and date modified.
Ex2: As a user, I can indicate folders not to backup so that my
backup drive isn't filled up with things I don't need saved.
Detail can be added to user stories in two ways: 31
By splitting a user story into multiple, smaller
user stories.
By adding “conditions of satisfaction.”
Ex1: As a vice president of marketing, I want to
select a holiday season to be used when
How is detail reviewing the performance of past advertising
campaigns so that I can identify profitable ones.
added to user Detail could be added as:
stories? Make sure it works with major retail holidays:
Christmas, Easter, President’s Day, Mother’s
Day, Father’s Day.
Holiday seasons can be set from one holiday
to the next (such as Thanksgiving to
Christmas).
Holiday seasons can be set to be a number
of days prior to the holiday.
32
33
34
35
36
37
Scrum
framework
38
39
Example
of Scrum
Artefacts
40
A
sample
product
backlog
41
Putting it
all
together
42
Define the features of the product
Decide on release date and content
Be responsible for the profitability of the
Product product (ROI)
Prioritize features according to market
Owner value
Adjust features and priority every iteration,
as needed
Accept or reject work results
43
Represents management to the project
Responsible for enacting Scrum values and
practices
Removes impediments
The Ensure that the team is fully functional and
ScrumMaster productive
Enable close cooperation across all roles
and functions
Shield the team from external
interferences
44
Typically 5 9 people
Cross functional:
Programmers, testers, user experience
The team designers, etc.
M embers should be full time
May be exceptions (e.g., database
administrator)
45
The team
Teams are self organizing
Ideally, no titles but rarely a possibility
Membership should change only between sprints
46