1. Для разработки KPI необходимо прежде всего определить цель сбора метрик.
2. Метрики должны быть сбалансированными. Это значит, что если вы, например, измеряете скорость тестирования (кол-во пройденных тест кейсов), то обязательно надо измерять и качество (кол-во претензий от пользователей). Иначе будут большие перекосы.
3. KPI должны отражать разные аспекты деятельности.
Мы, например, используем следующую модель. Разделяем kpi на 3 категории:
1) Надежность ПО
Сюда входят показатели, относящиеся к непосредственно к характеристикам ПО (дефекты разной степени тяжести, успешные/неуспешные тесты, плотность дефектов и т.д.)
2) Сложность/Покрытие (кол-во функций, кол-во тестов на функцию и т.д.)
3) Финансы (условная стоимость прогона одного теста, бага, кол-во выполненных тестов в час и т.д.)
Таким образом, можно объективно смотреть на процесс разработки. Например, если у программы низкая надежность (много дефектов), но при этом высокая сложность (большое количество функций), то логичнее будет оптимизировать функционал, нежели влиять на программистов.
Или, например, время прогона тестов увеличилось на 20%, при этом сложность выросла на 50% - вывод очевиден.
По метрикам рекомедную прочитать книгу Каплана и Нортона "Система сбалансированных показателей" .