Date post: | 15-Jan-2015 |
Category: |
Technology |
Upload: | gaetano-mazzanti |
View: | 1,638 times |
Download: | 0 times |
how (fr)agilewe are
metrics in a complex world
Gaetano MazzantiGama-Tech
no process chaos
agileagile
traditionaltraditional
code & fixcode & fixrigid process
top-down
ordered chaoticcomplex
no metrics
metrics for a linear, deterministic world
???
product development is complex
“self-organizing, non-linear,feedback systems are
inherently unpredictable,they are not controllable“
D.Meadows
however, we canwatch, learn and work
with the system
metrics
learn & change
single loop learning
resultsactionshow
efficiencydoing things right
incremental change
lead to
which shape future
double loop learning
resultsactionsvalues, assumptions
why
effectivenessdoing the right things
question assumptionsradical change
guide
lead to new/improved
efficiencydoing things right
incremental change
how
Chris Argyris
learn, change, move on
resultsactionsvalues, assumptions
define metric*set expiration date
goal ok or expirationdate passed?
metric
*shared, simple, controllable, transparent, time-bound
metrics
quadrants
inward & outwardlooking metrics
R&DBusiness &
Other Stakeholders
inwardlooking
outwardloooking
boundary objects
feedback
metric
boundary objects
boundary object [sociology]: something that helps different communities exchange ideas and information.could mean different things to different peoplebut allows coordination and alignment
businessR&D
metrics quadrants
Team Maturity
Business
Product
Process
inward looking
outward looking
&feedback
metrics quadrants
Team Maturity
Business
Product
Process
boundaryobjects
boundaryobjects
metrics quadrants
Team Maturity
Business
Product
Process
fragilefragile
boundaryobjects
boundaryobjects
agileagile
metrics quadrants
Team Maturity
Business
Product
Process
metrics quadrants
Lead TimeCycle Time
Quality of Service (SLA)Throughput
Business Value
Lead TimeCycle Time
Quality of Service (SLA)Throughput
Business Value
WIPCadence
CI FailuresRework
ImpedimentsRetrospectives
Morale
WIPCadence
CI FailuresRework
ImpedimentsRetrospectives
Morale
RevenuesROI
Customer Satisfaction
RevenuesROI
Customer Satisfaction
Code QualityTechnical DebtTest Coverage
Code QualityTechnical DebtTest Coverage
Team Maturity
Business
Product
Process
Bugs?
metrics quadrants
Lead TimeCycle Time
Quality of Service (SLA)Throughput
Business Value
Lead TimeCycle Time
Quality of Service (SLA)Throughput
Business Value
WIPCadence
CI FailuresRework
ImpedimentsRetrospectives
Morale
WIPCadence
CI FailuresRework
ImpedimentsRetrospectives
Morale
RevenuesROI
Customer Satisfaction
RevenuesROI
Customer Satisfaction
Code QualityTechnical DebtTest Coverage
Code QualityTechnical DebtTest Coverage
Team Maturity
Business
Product
Process
what!?no
velocity?
Bugs?
fragility
code quality
technical debt
lack of advanced engineering practices(i.e. TDD, CI) => rework
code quality evolution
code quality evolution
agility
being agile is not the goal,it’s a mean
if you are really interested there are plenty of agility tests on the Internet:Nokia TestScrum Open Assessment - ScrumAllianceAgile Maturity ModelAgile Evaluation FrameworkComparative Agility Assessmentetc.
impediments, retrospectives, reviews
# of questions answered
# of questions asked
# action items addressed
# action items assigned (at previous meetings)
# of WTFsWTF!?
WTF!?
?
metrics
queues
queues are bad
increasecycle time
riskvariabilityoverhead
reducequality
motivation
stop starting start finishing
cumulative flow diagram
time in queue(cycle time)
queue size(WIP)
time
cumulativequantity
arrivals
departures(throughput)
source: Donald Reinertsen
cumulative flow diagram WIP is a leading indicator
time
cumulativequantity
WIP
cycle time
cumulative flow diagramlarge batches large queues
time
cumulativequantity
cumulative flow diagramsmall batches small queues
time
cumulativequantity
Kanban board
backlog to do in progress done2 3
cycle time
cycle time = WIPthroughput
no WIP limit -> queue!
2 3readybacklog to do in progress done
no WIP limit -> queue!
2 3readybacklog to do in progress done
flow = speed * density
Slack (%)
optimize flowabsorb variation
flow related metrics
active WIP - buffered WIPtasks that are really in progress – task waiting to be handed-off (#,%,% of time spent)
process efficiencyactive time / cycle time
BIPBugs In Process
technical debt WIP / standard WIP
# of projects a person works in parallel
visualizing tasks dynamics
backlog to do in progress done2 4
1 2 3 4
days inactive task
0
5
10
15
20
25
30
35
BacklogTo DoIn ProgressDone
cumulative flow diagram
WIP
cycle time
done
in progress
to do
backlog
time
# u
ser
stor i
es
throughput
not so helpful?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
-4
-3
-2
-1
0
1
2
3
4
inout
single column dynamics
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 200
1
2
3
4
5
6
In Progress
WIP
Kanban board dynamics
control charts
source: Samuli Heljo
metrics
easy but powerful
42
Happiness Index
Mon Tue Wed Thu Fri
Tom Anne Paul Joe Eva
niko-niko calendar
feedback board
Pizza Index
Pizza = Overtime => not goodSteve Denning
how long since?
you talked to a customer
last useful retrospective
you learned something at work
your boss last freaked out
last critical bug
52days
6weeks
2days
3days
1week
and don’t forget
bus factor
# of key developers that need to be hit by a bus to kill a project
“per una veramille sono finte”F. De André
“for every true onethousands are fake”