Modern software engineering organizations are agile. They are focused on delivering value rapidly by using continuous delivery, integration and improvement. As such, metrics have changed from more static, traditional software-quality metrics (e.g. Lines of Code/hour) to metrics that help measure continuous success and value creation.
"Measuring software productivity by lines of code is like measuring progress on an airplane by how much it weighs." - Bill Gates
Modern software engineering organizations have changed. But measuring processes still remains a fundamental practice to them. Metrics help modern software engineering teams review their progress, compare it to past activity, and analyze it to improve their performance. They are used to make quantitative and qualitative decisions, and to assess and reduce risk within software engineering projects.
Let’s look at the advantages and disadvantages of using metrics to make better decisions in software engineering.
What is the true value of metrics for a modern software engineering organization?
For metrics to be useful to a modern software engineering organization they have to be linked to business and engineering objectives. Ideally, measurements should evolve the understanding of the organization.
They need to have the following aspects defined:
What is normal?
When is action required?
What is the plan of action?
As opposed to manufacturing, software development produces unique products (or features in the same product) over and over. As such, nothing we can measure has a predictive value in isolation. This means that only trends in objective metrics remain useful, and the only valid comparison is relative to how you engineered before and after now.
Software engineering organizations benefit in the following ways:
Effective visualizer: Metrics provide transparency for selecting the best alternative to a specific and unique situation.
Save development effort, time and money: Allocation of resources is optimized given the increased transparency into projects and processes.
Objective information: Objective information can be shared throughout the software organization faster and will provide more information on specific situations.
Increase understanding: Metrics will make complex projects easy to understand. They will also facilitate the description of a product and project status clearly.
Problem identification: Metric analysis will identify potential problem areas before they reduce the software quality and rate of release.
Manage workloads and resources: Metric analysis reduces the ambiguity that often surrounds complex software projects and facilitates the allocation of resources.
Drawing objective conclusions: One major benefit of using metrics is related to their ability to assist team members in the drawing of conclusions. This is explored further below.
How do metrics avoid us from drawing wrong conclusions?
To consistently create engineering value, effective decisions on where to engineer need to be made every day. Decision making quality is based on information availability, its collection and analysis. When not using metrics, information quality and availability is reduced. This increases the need for decisions to be taken based on human traits such as personal bias and overgeneralizations. These can reduce the quality of your decision making and make you draw wrong conclusions.
How do these traits affect decision making?
Personal bias: When basing decisions on personal thoughts, beliefs or subjective information you limit the clarity of the bigger picture. As a result, biases can cloud the identification and evaluation of alternatives to situations requiring action. This impacts the decision making process and can negatively affect the performance of the team.
Overgeneralization: Since software engineering produces unique products every time, it is crucial to understand and assess each product individually. When metrics aren’t used, there will be a high tendency to compare projects that seem similar. But minor differences might set them apart substantially. This is harmful for the decision making process. Decisions will be based on previous projects and applied incorrectly to current projects.
Lack of specific understanding: Complex projects have many moving parts that guarantee its operation. Understanding and supervising these will make a project successful, or not. If metrics aren’t used by decision makers, they will have difficulties overviewing the project’s progress and live situation. This will make decision making ineffective by reducing the ability to prioritize and allocate resources.
Athenian understands the value that metrics have for modern software engineering organizations. We have seen the benefits that these provide to all levels of seniority and how they reduce inconsistencies in decision making among them.