Metrics That Matter Real Measures to Improve Software Development

Slides:



Advertisements
Similar presentations
02 | Define an Effective End-to-End Software Development Lifecycle Steven Borg | Co-founder & Strategist, Northwest Cadence Anthony Borton | ALM Consultant,
Advertisements

Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
1 In-Process Metrics for Software Testing Kan Ch 10 Steve Chenoweth, RHIT Left – In materials testing, the goal always is to break it! That’s how you know.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
SE 450 Software Processes & Product Metrics 1 Defect Removal.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Readiness Index – Is your application ready for Production? Jeff Tatelman SQuAD October 2008.
Roles Managers Technical Team Leaders Programmers Customers Database Administrators Instructors.
Software Estimation and Function Point Analysis Presented by Craig Myers MBA 731 November 12, 2007.
Project estimation Biased advice on producing accurate project estimates and managing expectations with stakeholders. Morgan Strong.
Every ‘best in class’ company measures software quality. There are no exceptions. If your company does not do this it is not an industry leader and there.
04 | Define a Software Iteration Steven Borg | Co-founder & Strategist, Northwest Cadence Anthony Borton | ALM Consultant, Enhance ALM.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Software from Requirements Brent Haines April 12, 2007 Why Methodology Doesn’t Really Matter.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Introduction to Measurement. According to Lord Kelvin “When you can measure what you are speaking about and express it in numbers, you know something.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
SOFTWARE PROCESS IMPROVEMENT
Planning Extreme programming
CSC444F'07Lecture 41 CSC444 Software Engineering Top 10 Practices.
IT Service Management: Sample Download 1.
Internal developer tools and bug tracking Arabic / Hebrew Windows 3.1Win95 Japanese Word, OneNote, Outlook
Risk management Here’s my section for risk management! ~ Christopher Thornton.
Best Practices Consortium
Project Monitoring Review Class 22 Project Monitoring cont
AP CSP: Cleaning Data & Creating Summary Tables
Effective Time Management
Extreme Programming.
Testing More In CS430.
Unit 5: Hypothesis Testing
Nine Guiding Principles for Improving IT Service Management
Владимир Гусаров Директор R&D, Dell Visual Studio ALM MVP ALM Ranger
Building the foundations for innovation
Real Metrics for Real Decisions
Etrics XP Metrics.
Information Technology Project Management – Fifth Edition
Extreme Programming.
12 Steps to Useful Software Metrics
Evaluation of HR – Why evaluate?
Good and Bad Data Visualizations
Client Management Managing Client Expectations
Software Quality Engineering
Obstacles to Agility 1. What does agile mean?
The Importance Of Exploratory Testing For Enhancing The Quality Of Software.
MTM Measurement Initiative
Event Chain Methodology
Making Information Security Actionable with GRC
10 Essentials for Credit Management
Chi-Square Goodness of Fit
CMM Overview A Focus on Level 2
Chapter 11 – Project Dashboard
IS&T Project Reviews September 9, 2004.
Computer Simulation with Concert Tour Entrepreneur
Loops CIS 40 – Introduction to Programming in Python
Significance Tests: The Basics
Counterarguments and Rebuttal
Measurement What is it and why do it? 2/23/2019
Teaching slides Chapter 13
Change Management Plan
Aim: How can we write resumes that will catch a potential employer’s attention? Do Now: If you had the following job experience, how would you write it.
Mistakes, Errors and Defects
Software Risk Management
General Test-Taking Strategies
Obstacles to Agility 1. What does agile mean?
Project Management.
Chapter 11 – Project Dashboard
Extreme Programming (and Pair Programming)
Presentation transcript:

Metrics That Matter Real Measures to Improve Software Development Steven Borg, Principal ALM Consultant Northwest Cadence Steven.Borg@nwcadence.com

Every ‘best in class’ company measures software quality Every ‘best in class’ company measures software quality. There are no exceptions. If your company does not do this it is not an industry leader and there is a good chance that your software quality levels are marginal at best. Capers Jones, Applied Software Measurement

You get what you measure. If you don’t measure it, you can’t manage it You get what you measure. If you don’t measure it, you can’t manage it. You cannot improve what you can’t measure. Garbage in, garbage out. If you don’t measure it, it’s just a hobby. "You can't manage what you can't control, and you can't control what you don't measure. " Tom DeMarco

Metrics Matter Without metrics you can’t predict you can’t judge quality you can’t accurately estimate you can’t measure impacts you can’t improve consistently

Characteristics of Effective Metrics Comparable Honest Simple Actionable

True Metrics vs Proxy Metrics True Metric What you SHOULD measure Proxy Metric What you CAN measure Tip #1 Focus on the true metric, not proxy metrics

“The companies that wish to improve but do not measure are at the mercy of fads and chance. Progress may not be impossible, but it is certainly unlikely.” Capers Jones Tip #2 Only introduce one or two new metrics at a time

Deming Cycle 1st 2nd 4th 3rd

ITIL Seven Step Improvement Process Define what you should measure. Define what you can measure. Gather the data. Who? How? When? Integrity of the data. Process the data. Frequency, format, system, accuracy Analyze the data. Relationships, trends, according to plan, targets met, corrective action Present and use the information. Implement the corrective action. ITIL: Information Technology Infrastructure Library

Tip #3 Standardize by setting triggers to alert you to slips in prior metrics A few effective metrics: Quality Metrics Sizing Metrics Productivity Metrics User Metrics Business Metrics

Quality Metrics Defect Removal Efficiency Warning: Not always “simple” Code Coverage Warning: Not always “honest” Performance Profiling Test Cases per feature Bugs per feature (bug density metrics)

Sizing Metrics Lines of Code Warning: Not always “honest” Function Points Warning: Not “simple” Effort (in hours, days, weeks, etc) Warning: Not always “honest” or “comparable” Story Points Warning: Rarely “comparable”

Productivity Metrics Velocity Warning: Not always “simple” Throughput Lines of Code / Developer / Day (???) Quality* Note: Defect Removal Efficiency is highly correlated with Productivity So highly correlated it can often act as proxy metric for productivity

User Metrics User satisfaction Warning: Not always “comparable” Post-release bug count Number of Help Desk calls Warning: Not always “honest”

Business Metrics Schedule Estimation Accuracy Warning: Not always “honest” Cost Estimation Accuracy Scope Estimation Accuracy Warning: Rarely “honest” ROI Estimation Accuracy Warning: Rarely “simple”, Not always “honest”

Tip #4 First identify your problem, THEN identify the metric Tip #5 Balance introduction of new metrics across different categories The problem He broke the Build!!!

Balance introduction of new metrics across different categories Tip #5 Balance introduction of new metrics across different categories The problem today is not a deficiency in software measurement technology itself; rather, it is cultural resistance on the part of software management and staff. The resistance is due to the natural human belief that measures might be used against them. This feeling is the greatest barrier to applied software measurement. Capers Jones, Applied Software Measurement

Tip #6 NEVER use metrics to evaluate individuals Tip #7 Watch your metrics closely; adjust when necessary

Estimation and Planning “There is a perfect correlation between measurement accuracy and estimation accuracy: Companies that measure well can estimate well; companies that do not measure accurately cannot estimate accurately either.” Capers Jones "Optimism is an occupational hazard of programming: feedback is the treatment." Kent Beck “Planning and estimation are the mirror images of measurement. ”

ALM (Application Lifecycle Management Tooling) Next Slide

Why ALM (Application Lifecycle Management Tooling)? Tip #8 Count first, Calculate next, use Judgment last Why ALM (Application Lifecycle Management Tooling)? "Tools are very important element of defining a path of least resistance. If I can set up a tool so that it’s easier for a developer to do something the way that I want the developer to do it, and harder for the developer to do it some other way, then I think it’s very likely the developer is going to do it the way I want them to, because it’s easier. It’s the path of least resistance." Steve McConnell

Application Lifecycle Management Tooling Tip #9 When possible, use an integrated ALM Tool to gather metrics Tip #10 Start using the built-in reports right away!

Cultural issues with Metrics The problem today is not a deficiency in software measurement technology itself; rather, it is cultural resistance on the part of software management and staff. The resistance is due to the natural human belief that measures might be used against them. This feeling is the greatest barrier to applied software measurement. Capers Jones, Applied Software Measurement

"The problem of software process change are often complicated by the fact that no one is responsible to make it happen. If software process improvement isn't anybody's job, it is not surprising that is doesn't get done! If it is important enough to do, however, someone must be assigned the responsibility and given the necessary resources. Until this is done, software process development will remain a nice thing to do someday, but never today." Watts Humpthey

Tip #11 Put someone in charge of process improvement… use metrics to show change "If it ain't broke, don't fix it," the saying goes. Common software development practices are seriously broken, and the cost of not fixing them has become extreme. Traditional thinking would have it that the change represents the greatest risk. In software's case, the greatest risk lies with not changing - staying mired in unhealthy, profligate development practices instead of switching to practices that were proven more effective many years ago. Steve McConnell

Tip #12 Start collecting metrics now Tip #12 Start collecting metrics now. Next year, you shouldn’t be saying “I wish I had some metrics” Steven Borg