What will and what were you measuring?
During the initial phase of the project, the key performance indicators (KPI) are, generally, not measured. However, it is at this stage of the project when you start thinking about what you should measure and how you will measure it(1).
First a word of warning, metrics are useful but they rarely provide the full picture(2). That being said there are metrics that can be monitored
Bugs found at stage X…
One of the benefits of a Model-Based Design approach is the ability to detect bugs earlier on in the development process. However, one side effect is the observation “we find so many bugs when following an MBD process.(3)” Hence the metric that should be tracked is the number and severity of bugs found at each stage of the development process. To determine the impact of finding the bugs early in the development a multiplier can be applied to the cost of the bug…
cost = Severity * StageConstant
Test and requirements coverage
Model-Based Design allows users to track the requirements and testing coverage through automated tools(4). With respect to test coverage; there are two types of test coverage. The first is requirements based test coverage; do tests exist to cover the requirements. The second are formal metrics coverage such as MCDC coverage.
The objective with coverage tracking is to see a steady increase in the percentage coverage over the development cycle.
Integration and development time
The final “primary” metrics are the development and integration time. The development time is straight forward, how long from receipt of requirements to final check in of a model that satisfies the requirements (and test cases). The integration time is a bit more interesting.
In an ideal workflow for Model-Based Design, there is an integration model that is created at the start of the development cycle. Individual developers check their models against that integration model to ensure that there are no conflicts. Hence in an ideal flow, the integration time should be near zero.
However, since there will be changes as the project develops, the integration model will change and the systems engineer will need to validate those changes. Like the bug detection finding integration issues is done further upstream in an MBD process. Again the metric should use a weighted value based on the stage of where the integration issue is found.
This post covered what can be measured, not how to measure them; this will be covered in future posts. Additional metrics can be covered however take care in having too many metrics and frustrating those who are developing with a heavy “tracking debit”.
(1) For this post, I am assuming that you do not currently have metrics in place. If you have existing metrics they can be adapted to the MBD environment.
(2)Trying to capture all activities in development can, in fact, be detrimental in that it takes away time from development. Always try to automate metric collection and, when not possible, simplify the process of creating this data.
(3) I have gotten this comment on many engagements; people mistake finding bugs in a process for not having bugs in their earlier process. While there will be new bugs due to adopting a new process it is rare that an old process did not have any issues.
(4) Setting up the automation tools is something that is done in future steps of the adoption.