Скотт Беркун - Искусство управления IT-проектами
Данные о том, кто обнаружил ошибку. Имя человека, обнаружившего ошибку, с указанием контактной информации.
Статус. Ошибка может иметь только четыре состояния: активна, исправлена, решена или закрыта. Активной считается ошибка, которая еще не исправлена и требует внимания. Исправленной ошибка становится, когда программист решает, что она исправлена. Решенной ошибка становится лишь тогда, когда обнаруживший ее человек согласится с тем, что она исправлена, или с тем, что ее исправление можно отложить. Статус закрытой свидетельствует о том, что ошибки больше нет и команда тестировщиков данный факт подтвердила.
Решение. Если по ошибке принято решение, значит, она лишается статуса активной. Решение по ошибке может иметь несколько разновидностей: она может быть исправлена, отложена до следующего этапа или версии, объявлена двойником другой существующей ошибки или признана неустранимой.
Тип. Ошибки делятся на два основных типа: дефекты и рецидивы. Дефекты – это обыкновенные, хорошо всем известные ошибки. Рецидивы – это ошибки, которые, будучи однажды исправлены, проявляются снова в виде негативных побочных эффектов или каким-нибудь иным образом.
Классификация. Этот атрибут показывает, была ли ошибка классифицирована и каков результат классификации. Иногда единственными ошибками, подлежащими устранению, являются те ошибки, которые были классифицированы и помечены как принятые. Поэтому данная графа может иметь три варианта заполнения: принята, отклонена, исследуется.
Наименование. Все ошибки должны иметь короткое имя, описывающее их таким образом, чтобы суть проблемы была понятна любому человеку.
В большинстве систем мониторинга ошибок предусматривается регистрация каждой ошибки. Она позволяет отследить, кто какие изменения внес в отношении той или иной ошибки и когда он это сделал. Эта регистрация пригодится при обсуждении решений, принятых по конкретным ошибкам. Она также позволяет развеять заблуждения относительно работы над ошибками.
Диаграмма активности
На уровне проекта самое полезное, что могут принести ошибки, – это отслеживание существующих тенденций в процессе их обнаружения, оценки и разрешения. Изучая присущие проекту тенденции, вы можете сделать для себя три полезные вещи: оценить ход выполнения проекта, узнать о том, какие проблемы, относящиеся к проекту в целом, могут иметь место, и осознать, какие действия могут привести к устранению этих проблем.
Даже при наличии самой простой базы данных по учету ошибок можно опрометчиво решить, что на ее основе предельно просто составлять различные виды диаграмм и делать сложные аналитические выкладки.[95] Не стоит слишком увлекаться, имеет смысл составить только самые основные виды диаграмм. Более сложные запросы зачастую носят отвлеченный характер («Гляньте-ка! Наш уровень исправленных ошибок соответствует уровню дождливых дней в Испании!»). Прежде чем тратить свое время впустую на выдумывание новых видов детальных отчетов, задайтесь следующими вопросами:
1. На какие вопросы можно ответить, взглянув на данную диаграмму?
2. Как ответы на эти вопрос могут помочь нам выдержать нужные сроки или достичь нужного качества? Как эти ответы помогут нам достичь определенного критерия выхода или целей проекта?
3. Если числа растут, что это реально означает? Ухудшение? Прежнее состояние?
4. Поможет ли это в конце каждого дня (недели) понять, насколько мы приблизились к завершению?
Стремитесь к простотеС помощью диаграммы активности могут быть отслежены простейшие и наиболее важные тенденции. Для каждого дня работы над проектом из базы извлекаются и отражаются в виде линейного графика следующие данные об ошибках:
Активные. Общее количество активных, то есть не исправленных или не решенных ошибок.
Поступившие. Общее количество обнаруженных на данный момент ошибок (до классификации).
Исправленные. Общее количество исправленных на данный момент ошибок.
Рис. 15.7. Основная диаграмма активности по устранению ошибок
На рис. 15.7 можно увидеть диаграмму, отражающую тенденции основной деятельности при реализации среднего по сложности проекта на начальном периоде эндшпиля. Этот период характеризуется большим количеством активных ошибок и сравнительно высоким темпом обнаружения ошибок. Ближе к середине диаграммы (слева направо) начинают проводиться основные тесты, и темп обнаружения ошибок значительно возрастает (как и количество активных ошибок). В конечном счете, когда пройдены все тесты, кривая количества исправленных ошибок пересекается с кривой темпа обнаружения ошибок, а количество активных ошибок начинает падать. На этой простой диаграмме прослеживаются основные взаимосвязи: соотношение обнаруживаемых и исправленных ошибок определяет основную тенденцию завершения работы.
Оценка тенденций
Все диаграммы или аналитические технологии могут указывать на одну из двух вещей: осталась большая часть работы или осталась меньшая ее часть. Например, если количество активных ошибок продолжает возрастать, это означает, что проблемы накапливаются быстрее, чем убывают, и новые проблемы обнаруживаются в неизменно высоком темпе. И наоборот, если количество активных ошибок снижается, работа идет на убыль быстрее, чем обнаруживаются новые проблемы. В любом случае цель анализа тенденций заключается в том, чтобы для любой качественной характеристики понять, в каком из трех состояний она находится.
Ситуация ухудшается. На ранних фазах тестирования проекта подобная ситуация вполне приемлема и даже желательна. Если основные тестовые испытания идут полным ходом или недавно завершились, вполне естественно, что количество ошибок растет намного быстрее по сравнению с тем количеством, которое команда программистов в состоянии исправить.[96] Порой встраиваемые компоненты могут прийти позже запланированного срока, что приводит к обнаружению ошибок чуть позже, чем это ожидалось в ходе процесса. Важно понять причину ухудшения ситуации, степень этого ухудшения и то, что нужно сделать (по возможности), чтобы изменить тенденцию к лучшему.
Ситуация остается прежней. Поскольку одновременно идет процесс исправления старых и обнаружения новых ошибок, вполне возможно, что команда будет топтаться на месте. Темпы выполнения работ могут быть прежними, даже если программисты будут выкручиваться наизнанку. Если когда-либо ключевые показатели застревают на месте, то чтобы понять, что должно случиться, чтобы дело сдвинулось с мертвой точки, нужно исследовать, какие входящие и исходящие факторы влияют на показатели. Нужно обязательно сообщить об этом команде. Многие программисты склонны ударяться в панику, если работают вхолостую, поскольку они не понимают, почему проект стоит на месте (или хуже того, почему он медленно тонет).
Ситуация улучшается. Когда тенденции становятся благоприятными, важно оценить темпы ускорения и развития тенденции к концу этапа. Позитивная тенденция может быть недостаточно позитивной для соответствия критериям выхода. Если тенденция приобрела позитивный характер на начальных стадиях, следует насторожиться. Все ли контрольные тесты пройдены? Есть ли неклассифицированные ошибки? Достаточно ли высоко качество исправления ошибок? Прежде чем воспринять это явление как хорошую новость, убедитесь в том, что полностью осознаете причины, вызвавшие такое улучшение ситуации.
Полезные показатели при работе над ошибками
Существует несколько общих показателей, польза от которых при отслеживании хода эндшпиля выдержала проверку временем. Стоит поискать способы генерации этих статистических данных в автоматическом режиме, чтобы в нужный момент, когда они понадобятся для принятия того или иного решения, не тратить время на построение нового запроса к базе данных.
Темп исправления ошибок. Это скорость, с которой команда исправляет ошибки. Поскольку не все ошибки равнозначны, эта скорость представляет собой время, затрачиваемое на исправление ошибки средней сложности. Если темп исправления ошибок ниже темпа их обнаружения, а все обнаруживаемые ошибки требуют исправления, проект никогда не завершится: количество ошибок будет неизменно возрастать.
Соотношение обнаруженных ошибок к принятым. Сколько новых только что обнаруженных ошибок требуется исправить, не являются ли они дубликатами других ошибок? Не относятся ли они к ошибкам с приоритетами 3 и 4? Знание соотношения обнаруженных и классифицированных ошибок помогает сделать грубые прикидки относительно неклассифицированных ошибок. Как правило, «качество» ошибок со временем должно снижаться: соотношение «хороших» ошибок, имеющих приоритеты 1 и 2, должно уменьшиться. Примерный темп поступления обнаруживаемых ошибок не сможет подсказать, когда именно это сможет произойти.