Transcript
Page 1: Non-Pathological Software Metrics

 

 

BT4 Session 6/6/2013 10:15 AM 

       

"Non-Pathological Software Metrics"    

Presented by:

Stephen Frein Comcast Cable

         

Brought to you by:  

  

340 Corporate Way, Suite 300, Orange Park, FL 32073 888‐268‐8770 ∙ 904‐278‐0524 ∙ [email protected] ∙ www.sqe.com

Page 2: Non-Pathological Software Metrics

Stephen Frein Comcast

Stephen Frein is a software development manager at Comcast, where his team creates tools for process automation and quality assurance. As an adjunct professor at Drexel University, he delivers soporific lectures on database development and IT management. Stephen has been leading development teams for fifteen years, and occasionally does it well, mostly by dint of accidents he cannot reliably replicate. He has presented at previous conferences by sneaking into unused rooms and deceiving the unsuspecting. Stephen enjoys polluting the hive mind via frein.com and writing vapid, self-deprecating bios.

 

Page 3: Non-Pathological Software Metrics

Non-PathologicalNon PathologicalSoftware Metrics

Stephen FreinC tComcast

http://[email protected]

About Me

Page 4: Non-Pathological Software Metrics

Context MattersContext Matters

Metrics can do harm.

B f l f h Be careful of what you incentivize.

Page 5: Non-Pathological Software Metrics

Why Measure?

ObjectivityClarity

Objectivity

Authority

Page 6: Non-Pathological Software Metrics

What to Measure?

Productivity!

Page 7: Non-Pathological Software Metrics

You can't do that.Quit it.

W h f bl

Stop it.-- Joel Spolsky

We have no way of reasonably measuring productivity.

-- Martin Fowler

You get what you measure.

I th t h t t?Is that what you want?

Page 8: Non-Pathological Software Metrics

LOCLOCLines of Code

More is Better!

public Cost calculateShipmentCost(Order someOrder) {Cost shipCost = new Cost(0);if (someOrder.getTotalCost() < 25) { shipCost.setCost(10); }else { shipCost.setCost(5); }return shipCost;

} 9 LOC}

public Cost calculateTotalCost(Order someOrder) {return someOrder.getTotalCost().add(

calculateShipmentCost(someOrder).getCost() );}

public Cost calculateReturnRefund(Order someOrder) {// only half of shipping costs get refundedreturn someOrder.getTotalCost().add(

calculateShipmentCost(someOrder).getCost()/2) );}

Page 9: Non-Pathological Software Metrics

public Cost calculateTotalCost(Order someOrder) {Cost shipCost = new Cost(0);if (someOrder.getTotalCost() < 25) { shipCost.setCost(10); }else { shipCost.setCost(5.00); }return someOrder.getTotalCost().add(

shipCost getCost() );shipCost.getCost() );}

public Cost calculateReturnRefund(Order someOrder) {Cost shipCost = new Cost(0);if (someOrder.getTotalCost() < 25) { shipCost.setCost(10); }else { shipCost.setCost(5.00); }{ p ( ) }// only half of shipping costs get refundedreturn someOrder.getTotalCost().add(

shipCost.getCost()/2 );} 10 LOC

Trade-offs

“Productivity”Maintainability ProductivityMaintainability

Page 10: Non-Pathological Software Metrics

Change Incentives

EconomicsDrive Behavior

Page 11: Non-Pathological Software Metrics

Don’t make a measureGoodhart’s Law

into a target.

Guess when …

Page 12: Non-Pathological Software Metrics

This never would have happened if

i

<sarcasm>

we were using story points.</sarcasm>

Predicting the Future

“Ideal”

Page 13: Non-Pathological Software Metrics

Metrics that focus on a proxy often

cause pathological behaviors.

PROXY GOAL

The proxy loses its connection to the intended goal.

What to do?

Page 14: Non-Pathological Software Metrics

Balance

Test Cases Per Hour Defects Per Test Case

Stealth

Page 15: Non-Pathological Software Metrics

Voyeurism

Independence

Page 16: Non-Pathological Software Metrics

Metrics I’ve Tried

Truck NumberHow many ypeople can get hit by a truck before the project is in big project is in big trouble?

Page 17: Non-Pathological Software Metrics
Page 18: Non-Pathological Software Metrics

Customer SatisfactionWhat do your What do your customers think of your product?

Recommended:Sh rto Short

o Simpleo Anonymouso Comment box

Page 19: Non-Pathological Software Metrics

Learning

Page 20: Non-Pathological Software Metrics

Find the Incentives

Page 21: Non-Pathological Software Metrics

Questions?


Top Related