Давайте начнем с часов.
В первую очередь нужно создать культуру/организацию биллинга часов. Всеми и за все. Так в Битрикс24 или любой подобной системе можно будет получить отчет по затратам в разрезе чего угодно.
Затем - это уже сложнее - нужно допрограммировать среднюю стоимость часа разных людей за разные периоды (+налоги). В этом случае отчеты выше будут содержать уже фактические затраты - по менеджеру, проекту, периоду, тут уж как захочется.
Дальше автоматически или полуавтоматически можно считать вот что:
- гарантия / разработка и гарантия / техподдержка. Соотношение гарантийных работ к обычным. Много гарантии = плохое качество или чужой код.
Но! Мы как-то раз увидели много гарантии за рядом менеджеров и после расследования поняли, что они списывали в гарантию даже то, что гарантией не являлось. Денег мы почти не отбили, но зато добавили триггер на аномалии - когда гарантии больше 10%, начинаем расследование.
(как вычислять гарантию? Помечать задачи словом "ГАРАНТИЯ", а НЕгарантийные - не помечать)
- плановые затраты времени и его превышение.
Тут все понятно - если время превышается, что-то на проекте не так или не такая оценка.
Здесь нужно вычислить и применять мультипликатор (для каждого программиста - свой) и таким образом давать оценки.
- задачи без оценки. Если задача создана и больше дня нет оценки - значит и далее ее не будет. И будут литься туда часы до бесконечности.
Это касается, кстати, и разработки и поддержки.
- (если прикрутили финансы) текущие и плановые затраты на проект. Да, это можно делать и вручную по менеджерам, но если это автоматизировать, то опять же можно получать уведомления "Бюджет на грани превышения" и что-то делать заранее, а не когда он кончился )
После реализации вышеописанного можно будет:
- считать рентабельность (как угодно - по компаниям/менеджерам/компании в целом)
- считать KPI менеджеров и команд разработки (по рентабельности)
- считать бонусы по KPI
- после такой мотивации сплачивать команды вокруг достижения общей цели, а не только написания кода "по ТЗ"