Almost every organizations keep looking for more and more metrics to control something or especially organizations that I visit for work as agile coach/consultant. Need for metrics arises during discussion with management but many time management fails to explain objective behind asking so many metrics.
I feel these metrics sometime trigger poor communication, set wrong objective and create absence of trust within team. Organization should focus more on building practices and better innovative processes to meet stated objective. Metrics needed for sure because it helps organization in deciding future course of action and help team to stay focused but metrics without practice? NO because that may demotivate team and demotivated team will produce poor quality product.
Below is an example of metrics without having better practice:- 80% code coverage - What is the reason for this metrics? This is to judge individual performance or ensure code is maintainable? If objective is NOT well communicated to team and practices for clean code is not established then what team member will do?
The team may end up meeting 80% code coverage but how? By adding more test here and there to satisfy metrics but what was the objective? Similarly there are many other metrics like "defect ratio", "defect per feature", "Code complexity", "team velocity", "estimation accuracy" etc. These can be easily manipulated if team doesn’t know objective behind these metrics. There has to be a process for defining metrics and every metrics must have clear objective.
Before measuring ensure there is a practice established. Practice and metric both are aligned to objective. Always better to measure outcome and not output.
MetricsOrganization introduces software development metrics to ensure better quality product and better productivity of development team. Some of the popular metrics listed below:-
- Code coverage
- Defect removal efficiency
- Defects per feature
- Team velocity
- Burndown chart
- Lead Time
- Cycle Time
- Defect reopen ratio
- Test coverage
- Metrics should demonstrate effectiveness of organization’s practices.
- Metrics should align with business values
- Metrics need to be linked to project objective to demonstrate achievement.
- The metric needs to be integrated with workflow. Data should get generated automatically rather than manual collection.
- Metrics must be helpful for improvement initiative and preparing action plans.
- Target needs to be defined for metrics and team must be aware of expected lower and upper ranges.
- Velocity – It helps organization to know how much a team can deliver per iteration to know release cycle.
- Burndown Chart – It is useful for team to remain focus on commitment and aligned with goal.
- Release Burndown – Helps organization to track deliverables and adjust priority.
- Lead Time - is the time from when a change is submitted by the client (and put on a board) till when all change is implemented.
- Cycle Time - is only the amount of time, that the team spent working on change (without the time that is spent just waiting on the board). Therefore, the Cycle time should start being measured, when change enters the "working" column, not earlier.
- Throughput - is the amount of work items delivered in a given period of time (e.g. week, month, quarter).