За те 15-20 лет что я программирую, я не раз наблюдал попытки измерить этот процесс. Как правило это было сделано максимально некомпетентно, людьми которые ничего не понимали в разработке. Приходили какие-то "эффективные менеджеры", желающие выслужится и начинали заставлять трэкать время, считать твои коммиты, строчки кода, или закрытые тикеты. Я всегда пытался объяснить этим людям, что все не так просто как они думают. Но они упорно не понимали меня, потому что никогда не программировали или делали это так давно что у же забыли. Это все равно что объяснить человеку который никогда не плавал, какого это - плавать.
Наконец-то я нашел адекватное исследование на эту тему - https://queue.acm.org/detail.cfm?id=3454124 Я крайне рекомендую прочитать его прежде чем внедрять эти метрики. Они предлагают метод называемый SPACE. В рамках этого метода они предлагают использовать 5 измерений: удовлетворенность, производительность, активность, коммуникативность и эффективность. В каждом измерении они предлагают ряд метрик которые можно измерить, либо измерений которые могут быть использованы как прокси-метрики для целевых метрик. К примеру удовлетворенность саму по себе измерить трудно, но можно легко замерить уровень текучки в коллективе (turnover), которая может служить в каком-то приближении прокси-метрикой для удовлетворенности (не удовлетворен =>уходишь). Мне лень переводить все, поэтому дальше просто короткое обобщение на английском:
- Satisfaction and well-being dimension
- Best captured with surveys. To assess the satisfaction dimension, you might measure the following:
- Employee satisfaction. The degree of satisfaction among employees, and whether they would recommend their team to others.
- Developer efficiency. Whether developers have the tools and resources they need to get their work done.
- Burnout. Exhaustion caused by excessive and prolonged workplace stress.
- Productivity and satisfaction are correlated, and it is possible that satisfaction could serve as a leading indicator for productivity; a decline in satisfaction and engagement could signal upcoming burnout and reduced productivity
- Performance dimension - is the outcome of a system or process.
- Can be measured with following metrics
- Quality. Reliability, absence of bugs, ongoing service health.
- Impact. Customer satisfaction, customer adoption and retention, feature usage, cost reduction.
- Activity dimension - is a count of actions or outputs completed in the course of performing work. Metrics can be:
- Design and coding. Volume or count of design documents and specs, work items, pull requests, commits, and code reviews.
- Continuous integration and deployment. Count of build, test, deployment/release, and infrastructure utilization.
- Operational activity. Count or volume of incidents/issues and distribution based on their severities, on-call participation, and incident mitigation.
- Communication and collaboration dimension - capture how people and teams communicate and work together. Following are examples of metrics that may be used as proxies to measure communication, collaboration, and coordination
- Discoverability of documentation and expertise.
- How quickly work is integrated.
- Quality of reviews of work contributed by team members.
- Network metrics that show who is connected to whom and how.
- Onboarding time for and experience of new members
- Efficiency and flow dimension - capture the ability to complete work or make progress on it with minimal interruptions or delays, whether individually or through a system Some example metrics to capture the efficiency and flow dimension are:
- Number of handoffs in a process; number of handoffs across different teams in a process.
- Perceived ability to stay in flow and complete work.
- Interruptions: quantity, timing, how spaced, impact on development work and flow.
- Time measures through a system: total time, value-added time, wait time.
Также авторы исследования разъясняют как этот метод можно применять для SRE команд и управления инцидентами.
Есть хорошее исследование предложенное DevOps Research and Assessment (DORA) - https://cloud.google.com/blog/products/devops-sre/using-the-four-keys-to-measure-your-devops-performance
Они предложили простой фреймворк из метрик (изначально 4-х метрик, reliability добавили потом), которые довольно легко измерять:
- Deployment Frequency—How often an organization successfully releases to production
- Lead Time for Changes—The amount of time it takes a commit to get into production
- Change Failure Rate—The percentage of deployments causing a failure in production
- Time to Restore Service—How long it takes an organization to recover from a failure in production
- Reliability - represent availability, latency, performance, and scalability
- Platform adoption rate - Measures how many product teams or services actively use the platform against those that don't.
- Mean time to onboard (MTTO) - mean time to unboard
- Platform service uptime
- Feedback loop duration - Tracks the average time from when users provide feedback to when the platform team addresses it.
Комментариев нет:
Отправить комментарий