Сначала могу назвать те KPI, которые, скорее всего, не подойдут для программистов:
- Количество строк кода — программисты будут просто стараться выдавать как можно больше кода, а это сделать не сложно, можно легко писать "лишний" код, просто лить воду. Также, в целом, это миф, что программисты всегда пишут код. Чаще они думают, что и как сделать, не менее редко они удаляют уже написанный код
- Скорость написания кода — скорее всего такая оценка будет влиять отрицательно — качество кода может упасть от скорости его написания и больше времени будет уходить на поиски ошибок и рефакторинг
- Количество исправленных багов — можно просто сначала написать код с большим количеством ошибок, а потом их исправлять
- Количество багов в коде, найденных тестировщиками — здесь обратная ситуация, можно пытаться скрывать новый код от тестировщиков или просто писать меньше кода.
Могу предложить вполне неплохие KPI, которые были у меня самого:
- Количество изученных и внедрённых новых технологий или инструментов
- Количество прочитанных книг, но не просто для галочки, а также с внедрением полезного. Хорошая практика сделать небольшой доклад или саммари и рассказать о чем книга, чем она будет полезна
- Прохождение курсов/программ повышения квалификации в нужных областях
- Наставничество — обучение и помощь новичкам
- Шаринг знания — вебинары/презентации для коллег, чтобы знания не накапливались в одной голове
- Участие в код-ревью — почти то же самое, что шаринг знаний, но ещё и улучшает код
Борьба с техническим долгом — рефакторинг и улучшение старого кода, нужно писать не только новый код, но и улучшать старый
В целом, эти все KPI про получение новых навыков, нового опыта во всей команде и про применение его на практике. Программист (да, как и любой другой специалист) без этого не развивается и стоит на месте и может делать только однотипные задачи.
Задача программиста не просто писать код, а помогать общей цели компании, т.е. целями могут быть, в том числе прибыль компании или достижение ключевых целей. Это также позволит программисту развиваться — понимать что-то в бизнесе, предлагать какие-то решения, которые могут повлиять на продукт. А это, в том числе отличает мидла от сеньора и повышает его ценность на рынке.