Я спросил некоторых коллег о том, что это может происходить, и они отметили, что, если ошибка не имеет такого уровня приоритета, очень редко эта ошибка привлекает внимание разработчика, что действительно имеет смысл
На самом деле, если вы спросите меня, это не так. Чем больше (используемых) уровней приоритета, тем больше у вас информации. Если у вас фактически есть только один приоритет, это то же самое, что вообще не иметь приоритета.
И так как у вас все еще есть то же количество ошибок, которые нужно устранить, и такое же количество человеко-часов, на которые это нужно сделать, из этого следует, что будет использоваться некоторая другая эвристика, возможно, нулевая - «первым пришел, первым обслужен». Итак, теперь у вас есть метрика приоритета ошибки, за исключением того, что это время прибытия и больше не находится под вашим контролем.
Это может быть признаком того, что для исправления ошибки выделяется недостаточно ресурсов (есть некоторые политики, такие как « Нет новых функций, пока ошибки не исправлены », которые могут помочь в этом. Джоэл одобряет ; понимание ограничений и последствий - это бизнес-решение ).
В одном из проектов, который я работал, входящие ошибки накапливались в «буфере без приоритета», и каждый понедельник мы просматривали список ошибок, оценивали сложность (очень грубая оценка; чаще всего мы просто добавляли «Среднее») и сортировать их по доступному времени. Это, как правило, нивелировало список скучных, неинтересных или продуманных ошибок; Чтобы компенсировать это, у руководителей и маркетинга было определенное количество кредитов в неделю, которые они могли потратить, чтобы поднять приоритет любимых ошибок, и были возмещены за нерешенные ошибки (это устанавливало ограничение на то, насколько ошибка, которую презирал разработчик, могла быть отложена) ,
Также было возможно объединять, отменять и разделять ошибки; Я помню один модуль, который был настолько безнадежно испорчен, что мы поместили около двадцати или тридцати сообщений об ошибках в одно «переписать эту вещь с нуля», которая затем была разделена на «четко изложить входы и выходы этой жалкой вещи», «написать тесты». чтобы убедиться, что входы и выходы соответствуют спецификации ", и так далее. Последним пунктом было «напечатать старый код на переработанной бумаге, вынести его на газон и поджечь» (мы тоже это сделали. Я помню, как хорошо это чувствовалось. Мы по очереди высказались по поводу речи; это было довольно весело ).
После некоторого торга у нас был список дел на неделю, который был разделен на «будет делать», «может делать» и «не может делать», которые были перенесены на следующую неделю. Вот тут-то и произошли дополнительные торги: у нас было пятьдесят часов, чтобы выделить ошибки, и мы были на 95% уверены, что исправим первые двадцать. Руководство настоятельно хотело, чтобы двадцать первый баг был исправлен, и у него не осталось кредитов; Затем мы предложили бы поменять эту ошибку на одну из списка «Будет делать», или кто-то сказал бы: «Вытащите меня из подгруппы FooBazFeature на пару дней, и я сделаю это», или мы скажем: «Нам нужно больше». рабочая сила».
На самом деле система никого не устраивала, но это считалось (по крайней мере, среди разработчиков) хорошим знаком.
Некоторые дополнительные негативные паттерны, которые были обнаружены, были «Желаемое за действительное» со стороны менеджеров («Вы заявили, что ошибка 57212 требует восьми часов. Это недопустимо. Сделайте это четырьмя») и «Отладка по Fiat» («Делайте все, что хотите» но эти сорок ошибок должны быть исправлены перед большой демонстрацией на следующей неделе. У вас не может быть больше времени, у вас не может быть больше людей "). Также синдром Боксера («Я буду работать усерднее»), который обычно работал очень хорошо в течение короткого времени , но обычно приводил к тому, что разработчик сходил с ума или уходил на более зеленые пастбища.