Professional Documents
Culture Documents
Collect
User stories
Planning
Each cycle: game
approx 2 weeks
Release
Write test
code cases
integrate
test
2
3
Agile Software Development
4
Agile Software Development
5
One Month’s Goals
6
7
8
Too Many Meetings
9
No Code Without Tests
10
What is Agility?
12 12
Agile Model Driven Development (AMDD)
Model Storming
(minutes)
Reviews
(optional)
All Cycles
(hours)
Implementation
(Ideally Test Driven)
(hours)
Cycle 1: Development
13 Cycle 2: Development
Copyright 2003-2005
Cycle n: Development Scott W. Ambler
Iterative and Incremental Development
People not process The skills of the development team should be recognized and
exploited. Team members should be left to develop their own
ways of working without prescriptive processes.
Embrace 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
15 work to eliminate complexity from the system.
Principles to achieve agility
16
Principles to achieve agility
18 18
eXtreme
Programming
19
Extreme programming
refactoring
pair programming
Release
unit test
software increment continuous integration
project velocity computed
22 22
acceptance testing
XP - Planning
Begins with the creation of a set of stories (also called
user stories)
Each story is placed on an index card
The customer assigns a value (i.e. a priority) to the story
Agile team assesses each story and assigns a cost
Stories are grouped to for a deliverable increment
A commitment is made on delivery date
After the first increment “project velocity” is used to help
define subsequent delivery dates for other increments
23
User Stories
24
Pair Programming
25
On-Site Customer
26
Testing in XP
• Testing is central to XP and XP has developed an
approach where the program is tested after every change
has been made.
• XP testing features:
– Test-first development.
– Incremental test development from scenarios.
– User involvement in test development and validation.
– Automated test harnesses are used to run all component
tests each time that a new release is built.
27
XP - Testing
28
http://www.extremeprogramming.org/map/project.html
29 29
30 30
31 31
32 32
33 33
agile and scrum
agile
Abstract
scrum
Concrete implementation of
agile
34
Scrum
35
3
6
What is Scrum?
37
Sample Product Backlog
38
Process – Scrum
Suitable for development of unique products from unique
specifications
Basic principles for the agile method Scrum
Self-organization – Leave responsibility to self-organizing teams
Transparency – Let anybody know what happens at any time
Good news as well as bad ones are visible early
Feedback – Work in a tight, empiric loop with the ”product
owner” (customer)
”Sprints” of 2 – 4 weeks
Self-assessment – Team retrospective after each sprint
39
Scrum: Co-located teams
40
Scrum Roles
Product Owner
Possibly a Product Manager or Project Sponsor
Decides features, release date, prioritization, $$$
Scrum Master
Typically a Project Manager or Team Leader
Responsible for enacting Scrum values and practices
Remove impediments / politics, keeps everyone productive
Project Team
5-10 members; Teams are self-organizing
Cross-functional: QA, Programmers, UI Designers, etc.
Membership should change only between sprints
41
Product Owner
42
The Scrum Master
43
Scrum Team
44
Scrum - Gathering requirements
Stories
Customer “tells a story”
Non-technical
ex: “When I check a piece of equipment, I want to know all
the information about it.”
Tasks
Technical requirements needed for stories
ex:
host a database of equipment information
track equipment with barcodes
convert scanned codes into SQL queries
display query results to the user
45
Scrum this semester
Generate stories
Divide stories into tasks
Give each task a time estimate
Assign each task a group member(s)
Track tasks in GitHub or productivity
software
Scrum board
46
Scrum Highlights
Scrum roles
Product owner (PO) responsibilities to describe and prioritize requirements
Team responsibilities to produce within a time boxed ”sprint” (iteration)
Scrum master (SM) responsibilities to enable team working conditions
Scrum practices
Micro feedback, like daily scrum, sprint backlog, burn-down charts
Macro feed-back and prioritization by product owner on every sprint,
Product backlog
Scrum does not prescribe
Solutions techniques, working methods, project progress plans
These are up to the team to discover and adapt according to need
Suitable for projects with uncertain goals or moving targets
Or where the way to get there is not completely known
47
Scrum Practices
Time boxing
The incremental value of an activity decreases over time
80/20 benefit achieved within time box
Potentially installable results
Iterations (”sprints”) time boxed to 30 days (or shorter)
Every iteration shall deliver custom value and production quality
Reduce initial elaboration (one day)
Specify ”all” overall requirements for initial product backlog
Main Use cases with scenarios, alt. user stories
Primary actor roles
Prioritize and reprioritize
Only work on what may be completed during next sprint (iteration)
Specification and planning time box: one day
48
Sprints
Change
50
Scrum - Sprints
51
A Scrum Sprint
Sprint Planning
Commit to certain functionality & estimate
Produces Sprint Backlog
Daily Scrum
15 minutes @ start of day
What have you done since last Scrum?
What will do before next Scrum?
What obstacles?
52
Scrum
Get it done
Daily scrum 10 – 15 minutes
Identify obstacles and priorities
Emphasize collaboration
Weekly review
How does progress look for cycle?
Requires estimation and work logging
Subversion -> JIRA integration
53
54
5
5
Daily Scrum
55
5
6
Questions
56
5
7
Sprint Backlog
S2 backlog
Product
S1 backlog
Backlog
Sprints in this release
Review
Scrum Agenda
Master Agenda
Burndown
Agenda
Sprint Product
backlog (increment)
Ready Done
58
http://demo.callis.dk/scrum checklist checklist
Common Failures with Scrum
60
Types of software component
62
Components
63
Component interfaces
Provides interface
Defines the services that are provided by the
component to other components.
Requires interface
Defines the services that specifies what services must
be made available for the component to execute as
specified.
64
Component interfaces
65
A data collector component
addSensor
removeSensor
sensorManagement
star tSensor
Data collector stopSensor
sensorData testSensor
initialise
repor t
listAll
66
Component models
68
Types of composition
A A
A B
B B
69
Adaptor components
70
Adaptor for data collector
sensorManagement addSensor
star t removeSensor
star tSensor
sensor stop
Adapter Data collector stopSensor
sensorData testSensor
getdata initialise
repor t
listAll
71
Photo library composition
addItem getImage
Image
adaptor Manager
Photo retrieve
Library
catEntry getCatalogEntry
User
Inter face
72
Component development for reuse
73
Component development for reuse
74
CBSE problems
75
Bank example
Requirements
Open an account for a customer (savings or chequing)
Deposit ƒ
Withdraw ƒ
Display details of an account ƒ
Change LOC ƒ
Produce monthly statements ƒ
Print a list of customers
Ambiguities
What is the difference between savings and chequing?
76
Case study
Children hospital
Care for children in the Alexandria city and
some Arab countries
The average length of stay of inpatients is
3.6 days
All patients are accompanied by a parent
for the entire duration of their stay at
77 hospital
Case Study: Sensor Display
display
System
78