It's all about measuring, and that's just the easy part. The hard part is focusing on what really matters.
I'll show you a bunch of metrics at different levels and from different perspectives, trying to make some sense out of them. I'll try to expand the current vision of what could be a metric, how it affects you and how you can choose your next ones.
The main goal is being able to understand what you need to monitor and improve in order to get better at what you're doing.
4. What’s a Metric?
Metrics are parameters or measures of quantitative assessment used
for measurement, comparison, or to track performance or production.
https://www.investopedia.com/terms/m/metrics.asp
5. Are they useful?
● Provide Transparency
● Highlight Improvements, Regressions or Mistakes
● Lead to Self Improvement
● Drive Decisions
● Reduce Costs
● Allow you to be Objective
6. What’s a KPI?
A KPI is a measurable value that demonstrates how effectively a
company is achieving key business objectives.
Organisations use KPIs at multiple levels to track performance measures.
https://www.klipfolio.com/resources/articles/what-is-a-key-performance-indicator
13. - Auditability – The ease with which conformance to standards can be checked.
- Accuracy – The precision of computation and control.
- Communication Commonality – The degree to which standard interfaces, protocols and bandwidth
are used.
- Completeness – The degree to which full implementation of required function has been achieved.
- Complexity – The degree to which the program is complex.
- Conciseness – The compactness of the program in terms of lines of codes.
- Consistency – The use of uniform design and documentation technique throughout the software
development project.
- Data Commonality – The use of standard data structures and types throughout the program.
McCalls’ Software Quality Factors
http://education.dewsoftoverseas.com/QE/QUickReference/Software%20Enginering/2.6.asp
14. - Error Tolerance – The damage that occurs when the program encounters an error
- Execution Efficiency – The run time performance of a program.
- Expandability – The degree to which architectural, data or procedural data can be extended.
- Generality – The breadth of potential application of program components.
- Hardware Independence – The degree to which the software is decoupled from the hardware on
which it operates.
- Instrumentation – The degree to which the program monitors it’s own operation and identifies
errors that do occur.
- Modularity – The functional independence of program components.
McCalls’ Software Quality Factors (cont’d)
http://education.dewsoftoverseas.com/QE/QUickReference/Software%20Enginering/2.6.asp
15. McCalls’ Software Quality Factors (cont’d)
- Operability – The ease of operation of a program.
- Security – The availability of mechanisms that control or protect programs and data.
- Self-Documentation – The degree to which the source code provides meaningful documentation.
- Simplicity – The degree to which a program can be understood without difficulty.
- Software System Independence – The degree to which the program is independent of nonstandard
programming language features, operating system characteristics, and other environmental
constraints.
- Traceability – The ability to trace a design representation or actual program component back to
requirements.
- Training – The degree to which the software assists in enabling new users to apply the system.
http://education.dewsoftoverseas.com/QE/QUickReference/Software%20Enginering/2.6.asp
29. # 3rd Party Vendors
http://knowledge.wharton.upenn.edu/wp-content/uploads/2016/12/legos.jpg
30. TTFC (Time To First Commit)
● How well-organised is the code base?
● How supportive is the team?
● How much confidence do we have in our tests?
● How mature is the CI pipeline?
● How is the dev environment?
65. APF (Augmented Pony Factor)
The lowest number of committers whose total contribution
constitutes the majority of the codebase
https://ke4qqq.wordpress.com/2015/02/08/pony-factor-math/