http://dev.1c-bitrix.ru/community/webdev/user/14686/blog/metriki-i-kpi-dlya-webproektov-mif-ili-neobkhodimost/ В этой заметке пойдет речь о том нужны ли вообще метрики и что это такое. Как они помогают руководителю проекта быть в курсе того, что происходит с проектом. На самом деле ими могут пользоваться и рядовые разработчики. Кроме того они будут полезны и обычным живым людям: менеджерам, маркетологам итд.
Пример неразберихи при ответе на вопрос «Как дела?»
Давайте проделаем мысленный эксперимент
Есть некий интернет проект, который живёт своей жизнью. Работает интернет-магазин, пишутся статьи про новый чудо-пылесос, а на форуме потребителей консультируют как обращаться с последней моделью.
Этот проект обслуживает группа лиц и них следующие роли:
Заказчик проекта - типичный руководитель, который очень занят. Заинтересован в росте прибыли и минимизации расходов. Но сайт, это всего лишь малая часть его забот.
Менеджер со стороны заказчика - взаимодействует с разработчиками и непосредственно рулит всем интернет-проектом. Он же и генератор идей и заявок на развитие функционала.
Ведущий разработчик - отвечает за разработку и сопровождение сайта. Строит разработчиков, проектирует и реализует наиболее сложные блоки. При этом - разрывается между несколькими проектами.
Разработчик - сидит на проекте и занимается его поддержкой и дальнейшим развитием.
Несколько ролей могут быть совмещены внутри одного человека. Разработчики могут быть наняты в штат, либо вся разработка будет заказываться на стороне.
Теперь спросим каждого из них: как дела?
Заказчик: мы продали за месяц 200+ пылесосов, вон в 1С посмотрел отчёты и вроде всё хорошо.
Менеджер: мы продали 200+ пылесосов, есть возвраты. Давайте будем делать новый раздел с видеороликами. На выходных пару раз тупил сайт, но программист сказал, что это было на 5 минут и сейчас всё хорошо.
Ведущий разработчик: да, вроде всё нормально. Сделали пару новых разделов, народ начал пользоваться формой он-лайн заявки на заказ демонстрации и т.д. Разработчик что-то говорил о нестабильной работе, как будет время посмотрю логи внимательнее.
Разработчик: я не успеваю с блоком видеороликов, были косяки в паре компонент, но я вечерком посидел и всё пофиксил. Вроде всё. И да: я хочу в отпуск на следующую неделю.
Разные роли требуют разной информации о том, что происходит с проектом.
На этом эксперимент и закончим, но мы к нему будем возвращаться.
Базовые термины
Со своей стороны я успел побывать в роли: верстальщика, разработчика, ведущего разработчика. Сейчас - начальник отдела. И постоянно приходится задаваться вопросом или спрашивать других людей, как дела. А после получения ответа - думать и иногда смотреть несколько с другой стороны. На самом деле, у меня другая мантра:
- Что вчера успели сделать из запланированного
- Что вчера не успели сделать из запланированного и почему
- Что будем делать сегодня
Самое забавное, что с ростом портфеля проектов у меня начал сбоить внутренний голос на который я привык полагаться. Слишком много ответов начинаешь получать на всех уровнях. Начиная от просьб и вводных заказчика и заканчивая разными техническими вещами, в которые порой требуется вникнуть и некоторое время держать на контроле.
Например: пользуются ли новой формой заявки, какое среднее время обмена 1С с сайтом. Да, обычно общаться с ведущими разработчиками, но часто приходится быть в курсе всех нюансов задачи.
Со временем информации становится очень много и в ней легко утонуть.
Поскольку мы занимаемся проектами которые делаются не для удовольствия, а для достижения определённых целей, то и рассматривать их можно как процесс достижения или не достижения некоторого набора целей. При чём, от проекта к проекту эти цели будут существенно отличаться.
А раз есть цели, давайте посмотрим какие могут быть показатели, которые будет интересно отслеживать разным сотрудникам. И уже на основании этих данных мы сможем судить приближаемся мы к своей цели или отдаляемся.
Дадим формальное определение терминам:
Временной ряд - это последовательность значений в определенный момент времениили за определенный промежуток времени.
Метрика (metric) - это величина, которая характеризует некоторый процесс.
KPI ( key performance indicator) - ключевой показатель эффективности. Это метрика, которая показывает, как далеко от цели находится анализируемый процесс.
Тренд (Trend) - основная тенденция изменения временного ряда.
Пример:
Метрикой будем считать объём продаж за какой либо период
KPI у нас будет % от выполнения бюджета.
Тренд это изменение значения метрики за текущий период относительно предыдущего.
Для понимания того что происходит нам важно не само абсолютное значение метрики, а динамика её изменения.
Соответственно давайте зададим себе вопрос: а нужно ли нам прямо сейчас выделять эти самые метрики и начинать отслеживать их?
Если колеблетесь, то лучше не стоит т.к. сил это потребует много. Для себя я решил, что заниматься этим стоит.
Давайте сейчас пофантазируем какие метрики мы можем выделить для типового сайта.
Вопрос о том нужно ли их все отслеживать пока оставим за скобками.
Наборы метрик
Название метрики
Краткое описание метрики, включая информацию о том, откуда эти данные можно забирать. Какую информацию можно извлечь из этой метрики.
Целевая аудитория: кто будет пользоваться этой метрикой.
Главный модуль
Количество зарегистрированных пользователей
Для сайтов, которым важен размер активной аудитории. Главный модуль, CUSER
Целевая аудитория: разработчики, менеджеры
Социальная сеть и блоги
Количество постов
Для UGC-сайтов, Модуль блогов или соцсетей.
Целевая аудитория: разработчики, менеджеры
Количество комментариев
Для UGC-сайтов, Модуль блогов или соцсетей.
Целевая аудитория: разработчики, менеджеры
Веб-формы
Количество заполнений вебформы
Любой сайт, где есть формы обратной связи. Позволяет понять пользуются ей или нет.
Целевая аудитория: разработчики, менеджеры
Интернет-магазин
Количество заказов
Любой сайт, с модулем интернет-магазин. Показывает сколько заказов проходит через процедуру оформления заказа.
Целевая аудитория: разработчики, менеджеры
Количество отказов от заказов
Любой сайт, с модулем интернет-магазин. Количество посетителей, отказавшихся от заказа по той или иной причине.
Целевая аудитория: разработчики, менеджеры
Среднее количество товаров в корзине
Любой сайт, с модулем интернет-магазин. Показывает как именно покупают номенклатурные позиции.
Целевая аудитория: разработчики, менеджеры
Средняя стоимость заказа
Любой сайт, с модулем интернет-магазин. Показывает распределение стоимостей заказов по времени.
Целевая аудитория: разработчики, менеджеры
Информационные блоки
Количество добавляемых элементов в конкретный ИБ
Любой сайт. Показывает скорость прироста ИБ. Источник данных - модуль ИБ.
Целевая аудитория: разработчики, менеджеры
Монитор производительности
Среднее время генерации страницы на сервере
Показатель эффективности разработки сайта
Целевая аудитория: разработчики
Среднее время генерации страницы на клиенте
Показатель эффективности разработки фронт-энда сайта. Сильно зависит от интернет-соединения у пользователя.
Целевая аудитория: разработчики
Расход памяти на генерацию одной страницы
Показатель эффективности разработки веб-сайта.
Целевая аудитория: разработчики
Подписка, рассылки
Количество подписчиков на рассылку
Для сайтов у которых работает модуль «почтовые рассылки» один из важных критериев.
Целевая аудитория: разработчики, менеджеры
Техподдержка
Суммарное количество открытых тикетов
Показатель загруженности техподдержки
Целевая аудитория: разработчики, менеджеры
Суммарное количество просроченных тикетов
Сколько тикетов просрочено на текущий момент
Целевая аудитория: разработчики, менеджеры
Количество открытых тикетов по произвольной категории
Показатель загруженности техподдержки по произвольной категории обращения
Целевая аудитория: разработчики, менеджеры
Количество просроченных тикетов по произвольной категории
Сколько тикетов просрочено на текущий момент
Целевая аудитория: разработчики, менеджеры
Количество открытых тикетов по произвольному статусу
Показатель загруженности техподдержки по произвольному статусу обращения
Целевая аудитория: разработчики, менеджеры
Форум
Количество постов
Показатель роста активности пользователей на форуме
Целевая аудитория: менеджеры
Количество тем
Показатель роста активности пользователей на форуме
Целевая аудитория: менеджеры
Количество принявших участие в обсуждении
Показатель роста активности пользователей на форуме
Целевая аудитория: менеджеры
Администратору
Количество 200
Количество корректно обработанных запросов
Целевая аудитория: админы, разработчики
Количество 301
Количество постоянных редиректов
Целевая аудитория: админы, разработчики
Количество 302
Количество временных редиректов
Целевая аудитория: админы, разработчики
Количество 400
Количество плохих запросов
Целевая аудитория: админы, разработчики
Количество 404
Количество запросов по несуществующим URL
Целевая аудитория: админы, разработчики
Количество 405
Количество запросов для которых метод не поддерживается
Целевая аудитория: админы, разработчики
Количество 408
Количество запросов для которых истекло время ожидания.
Целевая аудитория: админы, разработчики
Количество 500
Количество запросов которые закончились ошибкой.
Целевая аудитория: админы, разработчики
Количество 503
Количество запросов которые закончились ошибкой.
Целевая аудитория: админы, разработчики
Размер сайта на диске
Объём сайта на диске
Целевая аудитория: админы, разработчики
Размер БД
Объём БД сайта на диске
Целевая аудитория: админы, разработчики
Аптайм за квант времени в минутах
Время работы сайта.
Целевая аудитория: админы, разработчики
Количество ошибок PHP
Количество ошибок PHP
Целевая аудитория: админы, разработчики
Количество ошибок MySQL
Количество ошибок PHP
Целевая аудитория: админы, разработчики
Количество исключительных ситуаций
Количество ошибок PHP
Целевая аудитория: админы, разработчики
Может подсократим список для тестового примера?