Шляпник взял в руки листок с безумной паутиной статусов и переходов. Покачал головой и показал листок Зайцу. Зайца перекосило. Он в сердцах помянул 21-е прерывание и барабанный принтер со снятым кожухом.

– Около двух дюжин статусов. Про переходы просто молчу, – пробормотал Шляпник – Вот что я тебе скажу. Выкинь бяку. Шизофрения, маниакально-депрессивный психоз, паранойя – это по моей части. Не надо тебе этого. Надеюсь, это не в твоем проекте.

– Нет, но мы собираемся так настроить. Парень новенький принес.

– Соня! – гаркнул Заяц.

Соня вышла из медитации и начала говорить речитативом:

– Давние, давние, давние исследования юзабилити показали, что добавление лишнего статуса воркфлоу приводит к ухудшению понимания не на какое-то значение, а в разы. Умножение там происходит. Непонимания.

– Насколько? – голос Шляпника походил на голос ласкового дознавателя в подвалах Веселой башни.

– Не помню. Гуглить надо. 1.2-1.3 раза. Плюс примерно квадратично растет число переходов. А это тот же коэффициент.

– Грубо возьмем, что добавление трех статусов приводит к проблемам с пониманием в два раза. Увеличивая число статусов задачи с пяти до двадцати трех, мы увеличиваем проблемы с восприятием в 60 раз. 60 раз, Карл!


– Иначе говоря, когда ты добавляешь хотя бы один статус к жизненному циклу задачи, ты крадешь у фирмы тысячу долларов в год, – прокомментировал Заяц.

– Ну, не надо так резко, – вмешался Кот.

– Так много? – удивился Армигер.

– С учетом прогрессии, озвученной Соней, сумма еще больше, – вздохнул Кот, – Гораздо, гораздо больше. Просто 1000 долларов ты еще можешь себе представить, а истинные суммы потерь – нет. И дело даже не в том, что на перевод из статуса в статус тратится время. Переключение из контекста в контекст – это гораздо большие потери.

– А потери на управляемости так вообще зашкаливают, – добавила Королева. – Чем меньше статусов у задачи, тем быстрее идет проект. Но всегда есть «но».

– Наименьшее число статусов задачи… – Соня сделала паузу.

– Два. Естественно, два, – синхронно ответили Заяц с Шляпником.

– Но! Но! – Соня проснулась и была в ударе. – Это отлично работает для волка-одиночки. А скажи мне, родной, как мне проверить выполнение какой-то задачи? Как я узнаю об этом? Я тестировщик! Кстати, меня за это уважают… Как я узнаю, что какую-то из решенных задач… – Соня провела глазами по комнате, и Заяц с Шляпником прижали уши.

– Не стесняйся. Мы знаем, что делаем ошибки. Ты ищешь их быстрее, чем мы. Нам нравится работать с тобой в паре. – Было непонятно, кто это сказал, но все всё поняли.

– Так вот. Какую из задач мне тестировать? Нужен новый статус, – продолжила Соня. – И этот статус мне нужен! Нужен мне!

– Очевидно, – резюмировал Шляпник.

– Без вариантов, – отрезал Заяц.

– Ладно. Три минимально. Хорошо, я понял, что много – это много. У нас именно эти пять. Почему? – спросил Оруженосец.

– Есть давление снизу и сверху, – Кот сделал глоток чая, – мы должны использовать минимально необходимое. Н-да… Коллеги, расскажите, что вы об этом думаете.

Королева взяла слово:

– Каждый лишний статус – это потери. Большие потери. И нужно понимать, почему вы на эти потери идете. Мы идем. Со статусами «New» и «Closed» – все понятно. Они просто нужны. Соне нужен статус «Resolved» как информация о необходимости тестирования. Кстати, мне этот статус тоже совершенно необходим, для отслеживания загрузки рабочих центров. Если в среднем в этом статусе больше 20 задач на пять тестировщиков – очень вероятно, что у нас проблемы с тестированием. Очень серьезные. И с проектом в целом тоже. Показатель числа задач в этом статусе – это как температура. Если на градуснике 38,5, то что-то надо делать. Например, сменить градусник. Теперь «Assigned». Этот статус показывает, что задача назначена в релиз. Можно еще указывать конкретного исполнителя, но в этом смысла нет. Сами разберутся. В конце концов, у нас работают взрослые люди. Это позволяет делать легкую фильтрацию задач, на которые менеджеру продукта уже не надо обращать внимание. Менеджер работает со статусом «New». Это его зона ответственности. Не разработчика.