Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
BDD
Outline
9.5 Identifying Whats Wrong: Smells, Metrics,
SOFA
9.4 Comments
7.1 Intro to BDD & User Stories
7.2 Points, Velocity, and Pivotal Tracker
7.3 SMART User Stories
7.4 Lo-Fi User Interface Sketches and Storyboards
7.5 Agile Cost Estimation
7.10 Plan-and-Document Perspective
2
END
3
http://pastebin.com/gtQ7QcHu
Beyond Correctness
Can we give feedback on software beauty?
Guidelines on what is beautiful?
Qualitative evaluations?
Quantitative evaluations?
If so, how well do they work?
And does Rails have
tools to support them?
10
Quantitative: Metrics
Metric
Tool
Target score
Code-to-test ratio
rake stats
1:2
C0 (statement) coverage
SimpleCov
90%+
ABC score
flog
CC score
saikuro
13
private
14
END
15
1. Short
2. Do
One thing
3. Have
Few arguments
4. Stick
END
17
Good Comments
Bad Comments
// Add one to i.
i++;
Comments, contd
Comments should be at a higher abstract level than code:
# Scan the array to see if the symbol exists
not
#
#
#
#
#
END
21
Introduction to
Behavior-Driven
Design and
User Stories
(Engineering Software
as a Service 7.1)
22
Agile Iteration
25
User Stories
1-3 sentences in everyday language
Fits on 3 x 5 index card
Written by/with customer
Connextra format:
Feature name
As a [kind of stakeholder],
So that [I can achieve some goal],
I want to [do some task]
3 phrases must be there, can be in any order
Product Backlog
Real systems have 100s of user stories
Backlog: User Stories not yet completed
30
Related Issue
Spike
END
32
1. BDD
2. BDD
3. User
END
34
35
36
Measuring Productivity
A measure of team productivity:
calculate avg. no. stories / week?
More on Points
Once get experience, Fibonnaci scale is
commonly used: 1, 2, 3, 5, 8
(Each new number is sum of previous 2)
At Pivotal Labs, 8 is extremely rare
38
More on Points
5 => divide user story into
simpler stories
backlog not too demanding
Pivotal Tracker
Calculates velocity for team, manages user
stories: Current, Backlog, Icebox
40
Pivotal Tracker
Prioritize user stories by where place them
in Current, Backlog, Icebox panels
When completed, move to Done panel
Can add logical Release points, so can
figure out when a Release will really happen
Remaining points/Velocity
Tracker Roles
Developers dont decide when user stories
completed
Pivotal Tracker:
Features vs. Chores
Features
Chores
No points
43
END
45
1. When
2. When
3. With
4. Tracker
END
47
SMART User
Stories
(Engineering Software
as a Service 7.3)
48
49
SMART Stories
Specific
Measurable
Achievable
(ideally, implement in
1 iteration)
Relevant
(the 5 whys)
Timeboxed
(know when to give up)
50
Anti-example:
UI should be user-friendly
Example: Given/When/Then
Achievable
Complete in 1 iteration
If cant deliver feature in
1 iteration, deliver
subset of stories
Always aim for working
code @ end of iteration
53
54
Timeboxed
Stop story when exceed time
budget
To avoid underestimating
length of project
Pivotal Tracker tracks velocity,
helps avoid underestimate
55
END
56
1. User
2. Rotten
time
3. When
4. As
END
58
59
Building Successful UI
SaaS app often faces users
User stories need User Interface (UI)
How to get customer to participate in UI
design so is happy when complete?
Avoid WISBNWIW* UI
UI version of 3x5 cards?
How to show UI interactivity without building a
prototype?
*
What-I-Said-But-Not-What-I-Want
60
61
Lo-Fi UI Example
62
Storyboards
Need to show how
UI changes based on
user actions
HCI => storyboards
Like scenes in a movie
But not linear
63
Example Storyboard
64
Lo-Fi to HTML
Tedious to do sketches and storyboards,
but easier than producing HTML!
Also less intimidating to nontechnical
stakeholders => More likely to suggest
changes to UI if not code behind it
More likely to be happy with ultimate UI
65
END
66
END
68
69
70
71
END
73
2. As
3. The
4. As
END
75
Plan-And-Document Perspective
(Engineering Software as a Service 7.10)
2013 David Patterson & David Patterson
Licensed under
Creative Commons Attribution-NonCommercial-ShareAli
ke 3.0 Unported License
76
Introduction
What does Plan-and-Document
do instead of:
User stories?
Points?
Velocity?
77
P&D Equivalents+
1.
2.
3.
4.
5.
Requirements Elicitation
Requirements Documentation
Cost Estimation
Scheduling & Monitoring Progress
Change Management for
Requirements, Cost, &Schedule
6. Ensuring Implementation Matches
Requirement Features
7. Risk Analysis & Management
78
2. Quantitative Estimate
82
P&D Scheduling
Use PERT chart to show task parallelism and
critical path to make schedule
Intermediate milestone
help all stakeholders
see if project is
on schedule & on budget
84
85
86
87
END
88
2. The
3. Agile
4. P&D
89
END
90
And in Conclusion:
9.4-9.5, 7.1-7.5, 7.10