mastering code analysis metrics for alm (hugh wood)

28
Mastering code analysis metrics for ALM SharePoint Konferenz Erding Hugh Wood – Master Chief – Rencore AB - @HughAJWood

Upload: rencore

Post on 13-Apr-2017

457 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Mastering code analysis metrics for ALMSharePoint Konferenz ErdingHugh Wood – Master Chief – Rencore AB - @HughAJWood

Page 2: Mastering Code Analysis Metrics for ALM (Hugh Wood)

@HughAJWoodhttps//blog.spcaf.com [email protected]

Hugh WoodLeicester, EnglandLead Developer @ SPCAFMastering code analysis metrics for ALM - @HughAJWood

Page 3: Mastering Code Analysis Metrics for ALM (Hugh Wood)

•What are they?•Who are they important to?•Where do they come from?•Looking deeper…

Static Code Analysis Metrics

Mastering code analysis metrics for ALM - @HughAJWood

Page 4: Mastering Code Analysis Metrics for ALM (Hugh Wood)

What are they?

Mastering code analysis metrics for ALM - @HughAJWood

Page 5: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Who are they important to?

Mastering code analysis metrics for ALM - @HughAJWood

Developer

Architect

Project Manager

Business

Page 6: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Where do they come from?

Mastering code analysis metrics for ALM - @HughAJWood

FxCop

StyleCop

Page 7: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Digging deeper…

Mastering code analysis metrics for ALM - @HughAJWood

Page 8: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Visual Studio Metrics

Mastering code analysis metrics for ALM - @HughAJWood

Developer Friendly

Page 9: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Visual Studio Metrics

Mastering code analysis metrics for ALM - @HughAJWood

Developer Friendly

Page 10: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Visual Studio Metrics

Mastering code analysis metrics for ALM - @HughAJWood

Developer Friendly

Page 11: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Visual Studio Metrics

Mastering code analysis metrics for ALM - @HughAJWood

Architect Friendly

Page 12: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Visual Studio Metrics

Mastering code analysis metrics for ALM - @HughAJWood

Architect Friendly

Cyclomatic Complexity Density Ratio: (CC)11 / (LOC)21 = 0.5Class Coupling – Use DirectlyDepth Inheritance – Use DirectlyMaintainability Index – Use Directly

Page 13: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Visual Studio Metrics

Mastering code analysis metrics for ALM - @HughAJWood

Project Manager Friendly

Cyclomatic Complexity Density Ratio: (CC)11 / (LOC)21 = 0.5Maintainability Index – Use Directly

Page 14: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Visual Studio Metrics

Mastering code analysis metrics for ALM - @HughAJWood

Business FriendlyProject Complexity: (CC)11 / (LOC)21 = 0.5 x 100 = 50%

25% < Simple50% < Moderate70% < Complex71% > Unsupportable

Maintainability Index – Use Directly< 25% Expensive to maintain26~50% Moderately Expensive51~70% Low Expenditure71%+ Extremely Low Expenditure

Page 15: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Metrics outside ofVisual Studio

Mastering code analysis metrics for ALM - @HughAJWood

• Quality Metrics• Security Metrics• Research & Development metrics

Page 16: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Code Quality Metrics

Mastering code analysis metrics for ALM - @HughAJWood

• Defect Density (High/Medium per 1000 LOC)• Critical Defects / 1000 LOC• Uninspected Defects

Page 17: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Code Quality Metrics

Mastering code analysis metrics for ALM - @HughAJWood

What are Defects?

Page 18: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Code Quality Metrics

Mastering code analysis metrics for ALM - @HughAJWood

What are Defects?

Page 19: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Code Quality Metrics

Mastering code analysis metrics for ALM - @HughAJWood

What are Defects?

Page 20: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Code Quality Metrics

Mastering code analysis metrics for ALM - @HughAJWood

What are Defects?

Page 21: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Code Security Metrics

Mastering code analysis metrics for ALM - @HughAJWood

• Information Security• System Security – System and Web

Page 22: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Research & DevelopmentEfficiency

Mastering code analysis metrics for ALM - @HughAJWood

• Cyclomatic Complexity• Comment Density

Page 23: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Policies & Thresholds

Mastering code analysis metrics for ALM - @HughAJWood

• ISO-9000 / ISO-27001• Defect limits• Developer Vectors• Defect Contingency• Development Language Segregation

Page 24: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Policies & Thresholds

Mastering code analysis metrics for ALM - @HughAJWood

• Assign a Defect Lead• Ignore only false positives• Use custom rule sets• Monitor and track all exceptions

Managing False Positives

Page 25: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Adjusting Project Plans

Mastering code analysis metrics for ALM - @HughAJWood

• Size of Code Base• Outstanding Defects• Number of Developers• Defects Per Developer by Category• Time to Inspect Defects (Average)• Time Scheduled per week for triage per Developer• Weeks until project completion

Page 26: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Adjusting Project Plans

Mastering code analysis metrics for ALM - @HughAJWood

Measure Defects and Metrics Over Time

Page 27: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Summary

Mastering code analysis metrics for ALM - @HughAJWood

• Ensure Defect and Metric policies are in place• Delegate the responsibility for collating data to a developer• Use code quality tools to keep records of progress• Use gathered metrics to inform Business• Decide on course of action and plan

Page 28: Mastering Code Analysis Metrics for ALM (Hugh Wood)

Mastering code analysis metrics for ALM - @HughAJWood