6. “Metrics are a carving knife when what you really need is a scalpel. Metrics can tell you something is wrong, but they can't give you much guidance about the precise cause. disclaimer In the case of clean code, the cause is discipline and professionalism”...”Fixing that problem is a matter of instilling pride of workmanship into the team” -- Uncle Bob
7. Note before we start What are we trying to understand What we actually measure How does it make people behave
8. Note before we start What are we trying to understand What we actually measure Software Quality # of bugs How does it make people behave Not record bugs Hidden bugs, long stabilization, poor quality
9. Note before we start What are we trying to understand What we actually measure Software Quality Escaping Defects How does it make people behave Hidden bugs, long stabilization, poor quality
12. Software quality Defect Density: number of defects per lines of code Unit test density: number of unit test cases per feature or class. +ve (actual = expected) -ve (actual != expected) stress integration MINIMUM 4
13. completeness Code coverage: percentage of automatically tested code Test coverage: percentage of automatically tested business scenarios Tests Code Business
14. complexity Fan-in: per type is the number of types that depends directly on it. [a.k.a. Afferent Coupling] Fan-out: per type is the number of types it directly depends on. [a.k.a. Efferent Coupling] Cyclomaticcomplexity: number of decisions that can be taken in a procedure [can be measured per class/feature]
15. contact me for more gil@agilesparks.com @gilnahmias myagile.co.il