Чуть более двух лет назад я опубликовал статью Другое видение скучных GTD планировщиков через призму RPG игр, в которой описал свою старую идею про совмещение работы над software проектами и элементов RPG игр.
Все вы знаете, что такое GTD. Проекты, таски, майлстоуны и дедлайны. Множество контор и команд разработчиков используют ту или иную систему на базе (или не на базе) GTD для контроля задач в проектах в своей повседневной работе. Я предлагаю заменить основные понятия этой методологии на термины многопользовательских RPG, добавить плюшек, статистику, достижения, красивости и фан. Получим тот же планировщик, но не такой скучный и с дополнительной мотивацией.
Топик тогда собрал 100500 комментов (в основном «супер! хочу!»), а особо заразительные собрались в команды и стали воплощать идею в жизнь. Так что же было сделано за эти два года?
Сразу скажу — лично я не сделал ничего, хотя не буду врать, что не пытался. Знаю, несколько команд начинали что-то делать, и у них тоже ничего не получилось.
Этот текст был написан в начале января, так что какие-то данные могли успеть устареть.
Gamification
Незаметно для большинства из нас за последний год идея использовать игровую механику в повседневной жизни захватила умы миллионов и получила отдельное название — Gamification. На хабре про это уже писали сравнительно давно. В конце 2011 года прошла конференция The Gamification Summit, следующая намечена на июнь 2012 — так что тут все серьезно.
Все больше сайтов обросли бессмысленными бейджами, поинтами и ачивментами. Когда я писал ту статью, я думал совсем не об этом, хотя в текущей классификации ее можно описать как геймификация софтварной разработки. А многие выводы хорошо экстраполируются и на геймификацию в целом.
Про геймификацию советую посмотреть вот эти видео:
- Building the game layer on top of the world,
- Meaningful Play, getting gamification right,
- Fun is the Future: Mastering Gamification,
- TEDxKids@Brussels — Gabe Zichermann — Gamification
Итак, почему же никто не реализовал описанную выше систему? Ответ на этот вопрос довольно сложный, неоднозначный и местами неопределенный. Оказалось, что полностью перенести игру на реальный мир не так уж и просто.
Проблемы остались прежние (еще с предыдущего поста), хоть многие пытаются их игнорировать:
- Смысл,
- Добровольная активность,
- Неопределенность целей правил оценки,
- Отсутствие Game Master'а,
- Читерство и накрутка,
- Программисты, а не гейм-дизайнеры.
Не стоит думать, что за последние два года не появилось ничего интересного. Напротив. В конце статьи вы найдете довольно большой список сайтов и сервисов, которые в том или ином смысле частично реализуют озвученные идеи.
Смысл
Хорошо иметь друзей, к которым можно прийти спросить «как тебе идея?», и которые честно ответят «говно», зная что я не обижусь. Периодически меняя оболочку идеи, я снова спрашивал мнения друзей. И в конце концов был поставлен встречный вопрос:
— А сам бы ты пользовался?
— Конечно, это же прикольно!
— ОК, а через месяц, когда прикольность надоест?
И тут я понял, что нет. Через месяц меня бы это достало. Я даже пытался какое-то время, находясь на работе, представлять, что есть подобная система и что она мне скидывает какие-то уведомления. Вот например, сижу я в офисе уже вторые сутки подряд, код не компилится, крокодил не ловится, а тут выскакивает ачивка «Поздравляем! Вы на работе подряд больше 24х часов!»… да ну?! а я и не знал.
Возьмем, например, Foursquare. Вот тут человек пишет, что перестал пользоваться сервисом, потому что в конечном итоге все скатилось к бейджам ради бейджей. Другой пример — Stack Overflow. Если убрать систему рейтинга и бейджей он останется тем же отличным ресурсом, на который многие из нас попадают прямо с Google.com по тому или иному програмерскому вопросу.
В последнее время я даже специально стал ежедневно отвечать на вопросы на Stack Overflow, чтобы поставить на себе эксперимент — что мотивирует меня это делать. Оказалось, что после какого-то небольшого количества поинтов, мне стало самому полезно помогать людям — вспоминаешь какие-то детали, гуглишь правильный запрос, узнаешь что-то новое. Иными словами, учишься сам. А уж на тамошние бейджи я никогда внимания не обращал.
Бейджам и ачивкам нужен смысл. Ну и что, что я создал 1000 классов или в проекте использовал 15 разных языков (последнее, конечно, что-то обо мне говорит, да)?
Если вы посмотрели видео в начале статьи, вы помните что Gabe Zichermann называет одним из наиболее мотивирующих факторов. Правильно — статус. Имеющие смысл ачивки и бейджи дают пользователю статус выше остальных. Но внутри компании уже есть статусная иерархия. Сколько бы ты поинтов не набирал, круче своего начальника ты не будешь.
Другое дело, статус в комьюнити. Но для этого в нем нужны одинаковые цели и правила игры (о чем далее). Частично на Open Source комьюнити нацелены какие сервисы как Coderwall, Ohloh, Masterbranch.
Последнее — история. Хотя, тут сложно провести параллель, в играх всегда присутствует история игрового мира, а именно, зачем ты это делаешь. Допустим, тебе нужно не убить 100 свиней, а добыть 100 свиных хвостов, чтобы спасти мир! Или работу в Excel можно превратить в ММО игру и брать за нее деньги (да-да, я говорю об Eve online).
Какой смысл у этой системы?
Что будет, если убрать поинты и ачивки?
Почему люди будут пользоваться системой больше месяца?
Добровольная активность
Playing a game is the voluntary attempt to overcome unnecessary obstacles.© Bernard Suits
Что первее: награда или действие? Я играю — мне награда за достижения, или я работаю, чтобы получить вознаграждение. В игры не играют только ради награды и поинтов. Иначе, Progress Wars была бы самой интересной в мире игрой.
Игры — это добровольная активность. Если появляется вопрос if-then, то есть меня кто-то заставляет что-то делать — это уже совсем другое психологическое взаимодействие. Так что, например, навязанные рейтинги могут быть наоборот демотивирующими. Неправильно думать, что игровая механика легко один к одному перенесется на реальный мир и будет так же весело.
Sebastian Deterding в лекции Meaningful Play говорит, что fun = учеба в оптимальной обстановке. Когда мы играем в игру, мы постепенно повышаем свои скилы в этой игре. То же самое в реальной жизни, вспомните, когда в последний раз вы с интересом изучали что-то новое. Вот это был фан. Но в реальной жизни мало интересного добровольного изучения нового, в основном монотонное применение старых навыков.
Неопределенность целей и правил оценки
В любой sandbox игре, например World of Warcraft, ты, вроде бы, можешь делать все что угодно, но тем не менее каждый ограничен правилами игрового мира. За один и тот же квест дают одно и то же количество экспы. Чем сложнее противник, тем больше за его убийство дадут золота. Вспомните, в большинстве игр цели прямые и структурированные.
Как обеспечить справедливую оценку для всех членов команды? Важнее ли класс написанный Васей, чем класс написанный Петей? Сколько поинтов дать за них? Что уж говорить о том, когда задачи и цели ставлю себе я сам.
Как оценить скилл в некоторой области того или иного человека? Интересная попытка — programmer competency matrix, но понятие «программирование» сейчас настолько широкое, что о применимости этой таблицы можно поспорить.
Классную идею я подсмотрел в Strokes, системе ачивок для Visual Studio — challenges. Что-то типа написания реализаций для заранее подготовленных юнит тестов. Задача одна для всех, правила и оценка однозначны. Идеальное решение для учебных целей.
В RescueTime есть goals, которые позволяют ставить себе цели, типа «сидеть на фейсбуке не больше часа в день. В системе управления проектами Rypple тоже есть цели. Но они стараются придерживаться коллективных однозначных целей, например „увеличить прибыль на 20% по сравнению с предыдущим кварталом“. Все, кто участвовал в достижении этой цели, могут нацепить бейдж, который в данном случае несет определенный статусный смысл.
Но в реальной жизни мы не выбираем, когда и какие появятся челенджи. А главное, нет системы юнит тестов, которые могли бы дать ответ насколько хорошо эти челенджи выполнены.
Хотя, если есть сила воли, то можно лишь на самоконтроле свернуть горы, похудеть на 100кг или level up as a developer — человек поставил себе цель и придумал набор ачивок для того, чтобы прокачаться в программировании.
И еще одна важная мысль — в играх мы учимся на ошибках, в реальной жизни за ошибки увольняют или лишают премии.
Отсутствие Game Master'а
Неопределенность правил плавно перетекает в необходимость наличия гейм-мастера. В компьютерной игре гейм-мастером выступает сама игра: никакой субъективности, все равны, все играют по одним и тем же правилам (да, о читерстве позже). Во что бы превратилась какая-нибудь ММО, если бы каждый сам себе давал экспу за выполненный квест?
Если оценку выполнения задач и проверку следования правилам нельзя автоматизировать, обязательно нужен человек, авторитет которого признают все, и который сам решает чего и сколько давать за выполнение тех или иных задач.
Например, в RescueTime goals есть контролер — человек, который ставит цели и следит за их выполнением. В команде из одного человека я не вижу вообще как это может работать, в маленькой команде должен быть какой-то незаинтересованный человек, который в рейтинге не участвует, а в большой команде уже необходима какая-то жесткая автоматизация и лестница модераторов. Хотя, пример многих интернет сообществ говорит нам, что самомодерация открытого комьюнити вполне возможна.
Читерство и накрутка
Люди всегда будут стараться получить максимальный результат, затрачивая минимум усилий. Какая бы не была система, ее будут эксплуатировать и жестко накручивать.
Далеко ходить не надо, посмотрите VS Achievements Leaderboard. Самые задроты просто выполнили все ачивки (многие из которых скорее анти-ачивки), и сидят с одинаковым результатом.
Или пример с Foursquare и приложением Mayor Maker, которое автоматически чекинится везде в радиусе видимости. Хорошая же идея была с Foursquare.
А как собираются бороться c накруткой open-source агрегаторы типа Coderwall? Когда под любую ачивку я могу создать специальный репозитория на github.
Конечно, это отдельная тема. В этих наших Интернетах уже накоплен немалый опыт борьбы с читерством и накруткой: премодерация, карма, уровни, ограничения. Какое-нибудь решение найти можно. Главное не закрывать на это глаза.
Программисты, а не гейм-дизайнеры
И последнее. Огромная часть откликов на предыдущую статью была от программистов. Многие программисты недооценивают роль гейм-дизайнеров в разработке игрового софта (особенно те, кто в геймдеве не работал). Так и получаются сервисы от разработчиков для разработчиков. Ни в одной из команд, которые пытались что-то сделать, не было гейм-дизайнера.
Нужно понимать, что разработка интересной игровой механики — это сложно.
Интересные проекты
Тем не менее, за прошедшее время с момента написания предыдущей статьи, появилось много интересных проектов.
- Visual Studio Achievements — интегрированные в Visual Studio ачивки. Большинство из них я бы назвал анти-ачивки, потому что пропагандируют говнокод.
- Strokes — более ранняя версия ачивок для Visual Studio. Мало кто знал об этом плагине до начала шумихи вокруг предыдущего проекта.
- Jira Hero — ачивки для Jira. Умные люди мне сразу сказали сделать плагин для существующей системы. Не знаю никого, кто бы пользовался этим.
- UserInfuser — некая gamification платформа от www.cloudcaptive.com/. Скачано меньше 200 раз каждый файлик, 9 фоловеров — никто не пользуется.
- Play Nice.ly — bug tracker с бейджами и всякой фигней. Довольно унылый. У видео 394 просмотра.
- Progress Wars — ирония на тему геймификации и экспы.
- Ribbon Hero — офисная обучалка от microsoft. Довольно интересный проект.
- Coderwall — парсит гитхаб и дает ачивки. Пример использования баджей.
- Red Critter Tracker — task tracker с ачивками. Видео — 382 просмотра, тормозит, сделано на флэше. За поинты можно покупать реварды в ревардсторе. Можно написать какие у тебя скилы. Agile. Более 2.0 интерфейс чем рипл, но все равно кривой.
- Rypple — трэкер с баджами. Можно ставить глобальные цели, давать кастомные статусные баджи за их выполнение. Параметры баджей: скилы, сколько и кто может выдавать, переходящий бадж. Социально: like, comment. Интерфейс кривоват.
- Badgeville — платформа для добавления гамификации себе на сайт. Делают платформу для управления компанией — badgeville.com/solutions/enterprise.php# / www.simplyzesty.com/social-media/badgeville-launches-gamification-for-the-workplace/
- Masterbranch — анализирует open-source проекты.
- Ohloh — старый сайт, тоже парсит open-source проекты, но геймификацией не оброс.
- Mindbloom — тоже неновый проект. Пытается мотивировать тебя что-то делать. Тамагочи. Субъективно. Не работает.
Обучение
Интересно, что подобная методика очень хорошо подходит для обучения, ведь роль гейм-мастера выполняет преподаватель. Вот, например, отличная статья World of C#-craft.
А в сети понавылуплялись сайты онлайн обучения программированию, например, rubymonk.com и codecademy.com. Хотя, судя по задаваемым там вопросам, некоторым лучше не пытаться научиться программировать вовсе.
Вместо послесловия
Как я уже говорил, проблемы остались прежними. Хорошо, что появляются интересные проекты. Я же очень хочу увидеть примеры удачных реализаций данных идей и услышать конструктивные комментарии.
Автор: valyard