Вступление
Уважаемые игроки, последнее время страсти вокруг списка исправлений не утихают, в связи с эти мне хотелось бы прояснить некоторые моменты как о разработке, так и о задействованных в ней лицах. В этом мне поможет наш разработчик ZEUStiger, которого я попросил сформулировать несколько мыслей о самых важных аспектах, все его слова в данной статье будут выделены блоком цитаты.
Аудитория недовольных
Начать хотелось бы с целевой аудитории, для которой пишется данный пост. Ежедневно наш сервер посещает 8-12 тысяч человек. В зависимости от дней недели, праздников, погоды, времени года цифра может варьироваться в большую или меньшую сторону. Некоторым может показаться что такое число игроков не столь велико, но на самом деле если перевести в понятные вам величины - это учащиеся 12 школ или работники какого-нибудь крупного предприятия. Подавляющее большинство нашей аудитории играет и получает удовольствие от игры. Менталитет человека устроен таким образом, что если он доволен - говорить об этом не особо принято. Кроме того, наше сообщество на форуме яростно не одобряет выражение любого вида благодарности, причин на это множество, и вдаваться в подробности желания нет. Но как и в любом здоровом обществе существует группа лиц, которые не довольным всем и всеми, прикрываясь красивыми лозунгами и понятиями о справедливости они всеми способами пытаться дестабилизировать ситуацию на сервере, абсолютно ничего не предлагая взамен. По моим подсчетам группа недовольных состоит из одних и тех же лиц и не превышает 30 человек. Каждый из них преследует собственные цели и интересы, чаще всего это получение удовлетворения от принижения достоинства окружающих и желание развалить то что работает и тем самым доказать всем что они были правы в своих претензиях, дескать "смотрите, все развалилось, я же говорил!". Зачастую именно эти индивиды вносят либо самый маленький вклад в развитие проекта, либо вообще никакой. По-настоящему идеологических борцов за справедливость (в их понимании) единицы, и справедливость эта очень далека от идеала. Ближайший аналог на политической арене - внесистемная оппозиция, ее так же мало, она не может объяснить окружающим чего хочет, предлагает полное разрушение текущего строя без внятных ему альтернатив. Наш сервер работает как единый слаженный механизм, в нем есть свои огрехи и изъяны. Какие бы цели не преследовала наша местечковая оппозиция, проекту она приносит один лишь вред. Мы сами прекрасно знаем о всех проблемах нашей системы и стараемся от них избавляться, принимаем для этого серьезные меры. Вываливание недостатков наружу и их намеренное раздутие до галактических масштабов вовсе ни к чему.
Права и обязанности
Отдельно хотелось бы затронуть тему наших прав и обязанностей. Большинство протестующих либо не читало, либо намеренно игнорирует основные правила сервера http://ezdev.ru/w/rules/server/#2, в частности раздел "Права администрации". Первым же пунктом данного раздела сказано "Администрация оставляет за собой право делать любые изменения на сервере без предварительного уведомления игроков". Регистрируя аккаунт на нашем сервере вы автоматически соглашаетесь с этими и другими правилами, о чем мы вас любезно уведомляем на этапе регистрации. Все возню что мы устроили для разъяснения вам внесения изменений в ядро - целиком и полностью жест доброй воли и попытка проявления честной и открытой политики по отношению к игроку. Да, местами у нас это получается весьма коряво и с группой тестеров есть определенные проблемы, но это вовсе не повод мешать всю работу нашего коллектива, наших разработчиков с грязью. Выражаясь простым языком, некоторые личности, почувствовав свою безнаказанность, откровенно сели нам на голову, совершенно забывая о том что играют они на бесплатном сервере. Благодаря вам, дорогие бунтари, мы запрещаем обсуждение изменений сервера вне раздела багтрекера, я дорожу нервами своих разработчиков и не хочу наблюдать еженедельный ушат помоев, который вы на них льете. Никакой альтернативы сложившейся ситуации вы все равно предложить не в состоянии, ведь унижать труд других людей гораздо проще, чем записаться в группу тестеров и помогать в разработке самому.
О тестерах
Наибольшая шумиха возникает вокруг работы тестеров, которые, надо признать, последнее время вели себя весьма некорректно по отношению к пользователям. Мы приняли меры и ситуация начала меняться в лучшую сторону, но сейчас не об этом, а о том чем они занимаются:
Тестеры исполняют, своего рода, роль модераторов багтрекера. Но прежде чем расписывать нам, насколько плохо они этим занимаются, давайте вспомним основную задачу багтрекера: доводить информацию о багах до разработчиков. Не общаться. Общаться - удел форума. Следовательно форумные модераторы занимаются чисткой постов, которые помешают другим пользователям форума заниматься этим самым общением. А поскольку цель багтрекера - не общение, а донесение информации о багах - модераторы багтрекера и занимаются обеспечением качества его самого донесения. То есть:
- Создание репортов по имеющейся у них информации;
- Поиск или мотивирование автора репорта к поиску всей нужной информации, которая бы доказывала существование бага и целесообразность фикса;
- Редактирование репортов с целью вынесения важной информации на передний план, удаление устаревшей информации;
- Выставление приоритетов (хотя в последнее время, ввиду низкого количества оставшихся репортов, приоритеты скорее служат для оценки фактической важности репорта и, как следствие, определения количества бонусов, получаемых автором);
- Перемещение репортов в более соответствующие им категории;
- Перемещение репортов в "рассмотренное", когда репорт перестаёт нести ценность: когда баг был исправлен, когда существование бага было опровергнуто, когда баг не удаётся воспроизвести и в репорте длительное время нет активности (а значит баг мог быть случайным, одноразовым, быть случайно исправленным другой правкой и т.п.);
Работа с трекером
Много слухов и сплетен ходит вокруг процесса исправления багов из трекера, дабы их развенчать представляем вашему вниманию процесс идеализированного (что бывает крайне редко) отчета об ошибке:
Не стоит рассматривать багтрекер как место для общение и обсуждения или личную доску почёта. В нём должна находиться и быть легко доступной информация, которую мне надо принимать к сведению. Моя идеальная работа с багтрекером должны выглядеть таким образом:
- Я открываю случайную категорию, или такую, которую мне хочется исправить сегодня. Не всегда же одним заниматься;
- Я открываю репорт с высоким приоритетом или, при отсутствии таковых, выбираю что-то интересно выглядящее, или новое, или с недавней последней активностью;
- Я читаю описание бага, способ его воспроизведения; узнаю, каким желают видеть фикс (т.е. что и как я должен пофиксить) и вижу пруфы, подтверждающие, что баг имеет место быть, и что фикс должен быть именно таким, как его описали;
- Я воспроизвожу баг у себя на компьютере;
- Я роюсь в коде сервера, пытаясь найти проблемное место. Если нахожу - исправляю соответствующим репорту образом, если не нахожу - включаю мозги (свои и тестеров) и думаю(-ем) как лучше этот баг заткнуть, да так, чтоб ничего при этом не сломалось;
- Я пытаюсь воспроизвести баг снова. Если воспроизводится - возвращаемся к предыдущему пункту. В идеале он не должен воспроизводиться, тогда я, исходя из опыта работы с сервером и имеющимися знаниями в игровой механике, пытаюсь проверить пару сценариев, связанных с измененным кодом, чтобы убедиться, что ничего случайно не сломалось. Если таких сценариев я могу себе представить слишком много - загружаю тестеров заданием проверить как можно больше из этого всего;
- Если всё исправлено и тихо и спокойно - закрываю репорт.
Но, к сожалению, не все так просто. Мир не идеален и в этот, казалось бы, несложный процесс закрадывается ворох проблем, и у каждого из этих пунктов могут возникнуть сложности и тупиковые ситуации:
- В репорте может быть недостаточно инфы для того, чтоб я понял суть бага.
- Может не быть расписано, как его надо исправлять (а поскольку постоянным игроков являюсь не я, а вы - расписать, как вы хотите видеть исправление этого бага - в ваших интересах, я могу не знать о всех таинствах и особенностях вашего класса и билда). Может не быть пруфов, и я засомневаюсь, является ли репорт правдивым, или лишь плодом воображения автора, пытающимся выдать желаемое за действительное. Тогда мне приходится прибегать к помощи "тестеров" и просить их прояснить ситуацию. Рассказать о баге, как его воспроизвести, как надо исправить (тестеры играют больше, чем я). Найти пруфы. Если не находятся - пробую искать сам.
- Баг может не воспроизводиться у меня. Это значит, что автор репорта упустил какие-то ньюансы, не нашёл закономерности. В таком случае никакое количество пруфов наличия бага не ускорит процесс исправления - вслепую тыкать в код попытки фиксов в надежде на чудесное исправление - не мой стиль. Если репорт важный - скорее всего мы с тестерами предпримем попытки сами найти эти закономерности. Но если через пару часов попыток так ничего и не найдется - репорт будет отставлен в сторонку: в моём понимании лучше исправить 10 мелких багов, чем потратить целый день на попытки исправить 1 большой.
- Баг может оказаться очень трудно исправить. Он может быть результатом естественной работы огромной кучи подсистем ядра, найти "эпицентр" бага может быть трудно или даже невозможно (у близзов тоже не обходилось без хаков, однако в их случае это называлось "скриптовкой") - тогда мне приходится искать способ исправления бага таким образом, чтоб при этом затронуть как можно меньше других подсистем, ведь задевая их, мы рискуем сломать что-то такое, о чём даже не подозреваем. Чаще всего именно это и называется хаками - исключения для отдельных случаев, подмена для них значений, хода обработки: "если обрабатываем заклинание X и на цели находится аура типа Y, то выполняем какой-то специализированный код, иначе - идем дальше по стандартному сценарию". Конечно чем больше таких хаком, тем грязнее становится код, тем тяжелее в нём ориентироваться, поэтому я на такой способ исправления соглашаюсь только в последнюю очередь.
В дополнение Зеус попросил разъяснить еще один ньюанс, на всякий случай, на будущее:
Не стоит расценивать написанные выше пункты как мантру или устав, не нужно тыкать мне ими в лицо, я не конвейер и не робот, что бы выполнять работу строго по пунктам.
Заключение
В заключение хотелось бы подвести некий итог вышесказанного. Мы постепенно подошли к стадии когда весь основной контент 3.3.5 версии реализован. Те ошибки и задачи, что находятся сейчас в трекере - по сути своей полировка мелочей. Помимо глобальных задач с геодатой нам осталось решить не так много проблем, большая часть из них находится за пределами понимания рядовых пользователей и не так проста в исправлении как хотелось бы. Объем списка изменений постепенно сокращается, а затраты времени на исправление растут. Шум, поднятый вокруг последних обновлений, явно не стоил того что группа лиц устроила на форуме, но сделанного уже не воротишь, из-за вашей подрывной деятельности пришлось внести некоторые корректировки в правила. Впредь старайтесь быть более терпимыми к окружающим, детальней вникать в суть проблемы. Старайтесь отстоять свою позицию не язвительными комментариями и оскорблениями а безапелляционными доказательствами и настойчивостью. Ведите себя как люди, в конце концов, и вы будете услышаны. Спасибо за внимание, и да прибудет с вами сила!