Along with non-repudiation, measurability is one of those often overlooked design goals, and while stakeholders can bu into ensuring non-repudiation you can expect keen resistance to you ambitions for measurability.
The challenge is two-fold:
- Measurability in itself doesn’t s directly support the day-to-day business, so it’s difficult to convince SMEs, BAs and PMs that it’s worthwhile.
- Achieving measurability requires a lot of extra coding, and supporting technologies, all of which increases the development time and costs as well as the long-term cost of ownership.
Instead, hitting the capacity and performance ceiling leads to breakdowns that are costly to recover from.
Establishing good measurability enables the solution’s product owner to analyze metrics, spotting trends that reveal future problems, which can then be addressed well before the solution breaks down.
Maintaining uninterrupted operation outweighs the cost of adding measurability to the design.
Server monitoring tools only scratches the surface, and relying on raw logging data is complex and requires maintenance when log records change structure due to code changes in maintenance releases.
The only way to achieve real meaningful measurability is to build in code that records the start and stop times of all activities, and write them as metrics to a database for later analysis.
Using this technique you are able to match the metrics against your capacity and performance goals.
The live stream of metrics emitted by the active parts of your system can also be used to set up a live dashboard that gives SMEs insights into the current activity in and health of the solution.
To ensure that some metrics are generated even during inactivity, scheduled heartbeats can be generated to activate the system at regular intervals.