Ответы на незаданные вопросы

Всем доброе время суток,

Сегодняшний пост не о Scrum, или, вернее, не совсем о Scrum. Я хочу проанализировать 2 вопроса и сделать вам всем, кто интересуется Scrum, предложение от которого, как я надеюсь, вы не сможете отказаться :) Надеюсь заинтриговал. Но если нет — все равно прочтите последнюю часть статьи Предложение.

Вопрос #1: Зачем я веду этот блог?

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

Вопрос #2: Зачем вы читаете этот блог?

Ответ более очевиден: вы хотите получать знания, узнавать больше о Scrum и быть более успешными в том деле, которым занимаетесь.

А в чем проблема?

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

Предложение

Я предлагаю еще один способ делиться опытом. Я предлагаю всем желающим создать Skype-группу, где все желающие могут задавать вопросы которые интересуют их и ответить на вопросы, ответы на которые вы знаете!

Если можно дать краткий ответ — он будет дан сразу. Если же потребуется более развернутое объяснение любой из тех, у кого есть блог сможет написать статью на эту тему.

Конечно же, и в этом подходе есть свои недостатки, но я и не говорил, что он должен заменить все средства, которыми вы пользовались до этого — я просто предлагаю еще одно :)

А потому всем желающим предлагаю стучаться ко мне в Skype: alexlaway или подключайтесь непосредственно к чату (для подключения по ссылке понадобится Skype 3.8). Если не получается — стучитесь ко мне, я вас подключу.

 

Давайте попробуем быть еще ближе, общаться чаще и получать больше нужной и интересной нам информации!

P.S. Я очень надеюсь, что Тим Евграшин и Алексей Кривицкий меня поддержат ;)

Update: Также ждем подключения Асхата Уразбаева, Никиты Филипова и многих других аджайлистов.

VN:F [1.8.2_1042]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.2_1042]
Rating: 0 (from 0 votes)
Делимся с другими:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Slashdot
  • Technorati
  • Blogosphere News
  • email
  • FriendFeed
  • LinkedIn
  • Netvibes
  • PDF
  • StumbleUpon
  • Twitter

Tags: , , , ,

1 Comment

Комментарии к карте проверок Scrum — часть 2

И снова всем здравствуйте,

checklistТолько вчера здоровался со всеми вами и рад, что вроде бы получается поздороваться и сегодня.

Как вы, наверное, уже догадались из названия статьи я хочу продолжить разговор о карте проверок Scrum (Scrum checklist) за авторством Henrik Kniberg. В первой части статьи я прокомментировал раздел «Основа», а теперь хочу приняться за раздел «Рекомендовано, но не всегда обязательно». Начнем, пожалуй.

Команда обладает навыками для реализации всего PBL

Вполне естественно, что это желаемое, а не обязательное условие. Уверен, что вы, как и я, чуть ли не каждый день встречаетесь с проблемами и задачами с которыми не встречались раньше. Это нормальная часть работы и, более того, думаю, что если бы этого не было наша с вами работа не была бы такой интересной. Тем не менее, если команда УЖЕ обладает всеми навыками разработка пойдет быстрее и будет менее рискованной.

Нет жесткого распределения по ролям

Этот пункт заслуживает отдельного большого обсуждения в отдельной статье. Частично я обсуждал этот аспект в серии статей «Подкоманды: делить или не делить» (часть 1, часть 2, часть 3). Если в кратце, то команда должна быть cross-functional, т.е. в ней не должно быть выделенных SQL-программистов, верстальщиков, backend-разработчиков и пр. и каждый член команды имеет право заняться тем, чем он хочет заняться. Кроме того, что это способствует развитию членов команды и в конечном итоге положительно влияет на ее производительность, это является и неплохим мотивационным фактором: люди постоянно учатся (конечно только те, кто этого хочет) и получают интересные задания. Ну и, само собой, команде будет проще справиться с ситуацией, когда из нее на время или на совсем уходит человек.

Итерации, которые обречены на провал, обрываются рано

Есть такой принцип в Scrum — «fail early». Он в каком-то смысле является частным случаем более общего принципа всеобщей видимости и доступности, ранней диагностики проблем. Если провала нельзя избежать, по лучше если он случиться раньше, чем позже. Это справедливо для любого момента жизненного цикла проекта. Это справедливо как для всего проекта в целом, так и для отдельных итераций и даже для отдельных задач. Видите проблему — сразу скажите всем о ней.

Все члены команды участвуют в оценке

В первой части статьи я уже говорил о важности этого момента. Команда подписывается на выполнение всего объема задач запланированного на спринт. Иногда звучат вопросы вроде "должны ли новые члены команды участвовать в оценке? ". Категоричный ответ — ДА. Даже если они не обладают знаниями о вашем продукте или даже не обладают всеми необходимыми техническими знаниями — пусть участвуют: вам не помешает лишнее мнение. Просто играйте в planning poker. По правилам игры нужно обязательно спросить людей, проголосовавших минимальной и максимальной оценкой почему они так проголосовали. Может же быть ситуация, когда новый человек со всежим взглядом видит проблему которой не видите вы? Или наоборот, знает решение которого вы не знаете.

Product Owner доступен когда команда проводит оценку

Одной из основных обязанностей Product Owner является предоставление команде всей необходимой для работы информацией. Чаще всего элементами Product Backlog являются не конкретные и не технические истории пользователя. Они там очень к месту, так как позволяют всем людям, вовлеченным в проект понимать о чем идет речь. Но когда дело доходит до планирования спринта, эти истории пользователя должны быть поделены на меньшие по размеру и конкретные задачи и часто для этого нужна дополнительная информация и этой информацией может обладать только Product Owner. Вернее этой информацией могут обладать множество людей, но получать эту информацию команда должна только от Product Owner, чтобы избежать путаницы и конфликтов в дальнейшем.

Оценивайте относительный размер (story points), а не время

Раньше я уже писал на эту тему в статье «Story points vs Ideal hours vs man/hours». В ней, с помощью моего коллеги Тима Евграшина, детально описана разница между story points и ideal hours, рассказано что и в каких случаях должно использоваться. А потому, если эта тема вам интересна — прочитайте эту статью.

У команды есть Scrum Master

Естественно у команды должен быть Scrum Master, иначе кем бы я сейчас работал! :) А если серьезно, о роли Scrum Master'а написаны сотни книг и тысячи статей. Может быть вскоре не блоге «Лучшие реализации Scrum-практик» появится еще одна, но пока хочу напомнить только одно: Scrum Master — это НЕ МЕНЕДЖЕР. Он не управляет командой (команда сама собой должна управлять), он просто создает условия, в которых эта команда может работать с наибольшей производительностью и обспечивает команду всем необходимым. Некоторые сравнивают Scrum Master'а со сторожевыми псами, но лично мне это сравнение не очень нравится :)

---

Я вижу, что в секции "Рекомендовано ... " есть еще несколько пунктов, которые я здесь не прокомментировал. Я не делаю это либо потому, что не хочу заниматься повторением уже неоднократно мною написанного (в том числе и в этих двух статьях), например, пункты «Измеряется скорость» или «команда строит Burndown Chart», либо потому, что эти пункты требуют отдельной большой и умной статьи каждый (например, «У Product Owner есть видение продукта») и как по мне не имеет смысл ограничиваться одним-двумя предложениями. Ну либо потому, что мне просто нечего сказать по этому поводу :)

Вот и все на сегодня. Всегда рад видеть ваши комментарии и отвечать на любые ваши вопросы.

До встечи!

VN:F [1.8.2_1042]
Rating: 10.0/10 (2 votes cast)
VN:F [1.8.2_1042]
Rating: 0 (from 0 votes)
Делимся с другими:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Slashdot
  • Technorati
  • Blogosphere News
  • email
  • FriendFeed
  • LinkedIn
  • Netvibes
  • PDF
  • StumbleUpon
  • Twitter

Tags: , , , , , , , , , , , , ,

No Comments

Комментарии к карте проверок Scrum

Всем доброе время суток,

checklist2Неделю назад я опубликовал статью под названием «Карта проверок Scrum». Мало того, я еще и пообещал, что не ограничусь простым переводом карты проверок, но и прокомментирую ее содержимое. Обещал — получайте!

В первую очередь хочу повторить то, о чем уже говорил в прошлой статье: не нужно бросаться печатать карту и раздавать ее членам команды для выяснения вашего прогресса в реализации Scrum-практик.

Для начала я бы посоветовал просто пройтись по основным пунктам, не обращая внимания на подпункты. Если вы вдруг обнаружите, что у вас совсем не реализованы несколько практик ни в коем случае не стоит браться за реализацию обеих сразу: лучше выберите одну и реализуйте ее сполна. Представьте себе, что вы не знаете как управлять автомобилем, первый раз сидите на водительском сиденье и просто нажимаете все кнопки, все педали и дергаете за все рычаги. Так вы не сможете понять, например, что вызвало движение дворников, а что рев двигателя, который, в свою очередь, вызвал инфаркт у парочки проходящих мимо кошек :)

Посмотрите на 3-й пункт раздела «Основа». Он гласит «Процесс постоянно улучшается» и в этом сейчас одна из ваших целей. Не революция, но эволюция.

Вообще, Хенрик не зря вынес 3 пункта в раздел «Общее» и сказал, что если эти требования выполнены то не имеет смысла проверять все оставшиеся. Смысл и цель Scrum в том, чтобы вы:

  1. Часто релизили качественное ПО, которое потенциально можно сразу же начать продавать
  2. Релизили наиболее важный для заказчика функционал. Помните правило «80/20», оно еще известно как Принцип Парето? Оно гласит, что первые 80% функционала реализовуются за 20% всего времени. Это отлично, но проблема в том, что оставшиеся 20% реализовываются за 80%. А еще есть статистика, что порядка 30% функционала программ либо вообще не используются пользователями, либо используются крайне редко. Понимаете о чем я? ;)
  3. Процесс постоянно улучшается. Существует довольно много упражнений, которые показывают как команда безо всякий финансовых вложений может сама улучшить свою производительность в несколько раз! Просто шаг за шагом улучшая то, как она работет. Звучит как спам, да? Но нет, я не продаю виагру :)

Вы заметили, что в этом списке нет никаких указаний о том, КАК это должно быть достигнуто, и лично я читаю это так: «Если у вас все это есть — не важно, КАК вы этого достигли». Если у вас все так — я вас искренне поздравляю!

А теперь если не так. Хочу пройтись по основным пунктам и сделать 1-2 комментария.

Четко определен Product Owner

Кто такой Product Owner? Это человек, который должен обладать всей необходимой для работы команды информацией и должен представлять интересы компании. Он является связующим звеном между stakeholder'ами (кто бы подсказал правильный русский термин, а то пишу как иммигрант из Штатов) и командой. Кстати, заметьте, командой, а не менеджером или техническим лидером. Product Owner представляет интересы stakeholder'ов устанавливая приоритеты задачам в backlog'е, тем самым решая что будет реализовано в первую очередь, а что может и подождать. Ну и думаю, что понятно, что у product owner'а должен быть только один голос, иначе получится как в известной басне про лебедя, рака и щуку.

У команды есть Sprint Backlog

Другими словами команда четко знает свои задачи на ближайший спринт. Более того, это не просто задачи: это задачи, которые команда подписалась, ну или обязалась выполнить. А если команда подписалась — она должна сделать все от нее зависящее, чтобы выполнить свои обещания. Но для этого никто не имеет право ей мешать и Sprint Backlog принадлежит только команде. В реальном мире это значит, что если появилась очень срочная и важная задача и ее необходимо впихнуть в текущий спринт из Sprint Backlog'а убирается наименее приоритетная задача примерно такого же размера. Но таких ситуаций лучше избегать. В Scrum есть хорошее правило, позволяющее Product Owner'у оборвать ход спринта и начать новый, естественно заново проведя митинг планирования. Если у вас возникнет вышеописанная ситуация попробуйте объяснить заказчику, что изменять список задач в то время, как команда над ними уже работает — это плохая идея. Но если ему ОЧЕНЬ НУЖНО — он имеет полное право объявить досрочное завершение текущего спринта и начать планирование нового. Заодно проверите так ли уж заказчику важна эта функциональность. Единственное НО — не совершайте профессионального самоубийства. Если заказчик ОЧЕНЬ настаивает, наверное, следует пойти ему на встречу.

И обязательное требование в том, что Sprint Backlog должен ежедневно обновляться с тем, чтобы отображать действительную информацию и помогать команде в принятии решений по текущим задачам. А для этого Sprint Backlog еще и должен постоянно быть на виду.

Daily Scrum проводится

Цель — обмен информацией и поиск помощи в случае возникновения проблем. Лучше проводить стоя, чтобы люди не разговаривали слишком долго. Слышали же о трех основных вопросах на которые должен ответить каждый член команды за время своего выступления?

  1. Чем я занимался вчера
  2. Чем я буду заниматься сегодня
  3. Какие у меня есть проблемы

Demo Meeting проводится

Цель — показать новую версию продукта всем заинтересованным лицам и собрать отзывы. Stakeholder'ы вообще и Product Owner в частности всегда должны быть в курсе всего, что происходит с его продуктом.

Есть Definition of Done

Это способ сохранять требуемое качество продукта, вернее даже ОПРЕДЕЛЯТЬ требуемое качество. Задача считается реализованной только в том случае, когда она соответствует ВСЕМ пунктам в Definition of Done.

Ретроспектива проводится после спринта

Ретроспектива — это основное и чуть ли не единственное средство для постоянного улучшения процесса разработки. Это короткий митинг, в котором вся команда (желательно вместе со Product Owner'ом) обсуждает события, достижения и неудачи с момента последней ретроспективы и пытается найти пути для:

  1. Сохранения и приумножения положительных событий и достижений
  2. Избежания или уменьшения негативного влияния неудач в будущем

Здесь хочется особенно отметить одно: по окончании ретроспективы вы должны знать, какие из выработанных мер вы собираетесь реализовать до следующей ретроспективы. Другими словами, вы должны выбрать и запланировать к реализации наиболее важные действия.

У Product Owner'a есть Product Backlog

Product backlog, в первом приближении, это тот же Sprint Backlog, только он включает в себя задачи для всего продукта вцелом и принадлежит Product Owner'у. Кроме очевидных целей Product Backlog'a таких как «не забывать о каких-нибудь требованиях» Product Backlog служит еще нескольким менее очевидным, в частности с помощью Product Backlog'а Product Owner может планировать даты релизов или предоствлять информацию о том, когда примерно будет реализована та или иная задача. Для этого задачи в Product Backlog должны быть приоритизированы и оценены. А для того, чтобы даты, которые называет Product Owner на основе Product Backlog были правдой, оценки должна давать команда. Вне зависимости от авторитета Product Owner'a, размера его зарплаты или его технических знаний: задачи будет реализовывать команда, а значит она и должна оценивать. Редко Product Owner более подкован технически, чем команда, так что может быть, что задача, «оцененная» Product Owner'ом в 4 недели будет оценена командой в 2 дня ;) Шучу :)

Проводятся митинги планирования

Еще один способ убедиться в том, что даты релизов, рассчитываемые Product Owner'ом на основе Product Backlog верны. И еще один способ дать команде работать спокойно, а значит — с наибольшей продуктивностью. Поскольку в Product Backlog должны содержаться истории пользователя, а не задачи (обсуждение и аргументация этого момента выходит за рамки данной статьи, но если вы так уж хотите аргумент, то вот вам: как минимум, для того, чтобы Product Owner имел возможность приоритизировать список он должен понимать все, что там написано. А потому лучше, если элементами Product Backlog'а будут не_технические описания требуемого функционала, а описание с точки зрения обычного пользователя:  другими словами там должно описываться ЧТО должно быть реализовано, а не КАК).

В результате этого митинга (или, если хотите, его артефактом) должен быть составлен Sprint Backlog. С ним должен быть согласен и Product Owner, и команда. Все в команде должны быть уверены в том, что смогут выполнить все задачи из Sprint Backlog за время спринта.

Итерации ограничены по времени

Все в Sсrum ограничено по времени: итерации, митинги... Тому есть много причин, но основными являются увеличение производительности и контролируемости процесса и прогресса.

Члены команды сидят в одной комнате

Важнейшей частью Scrum вообще и эффективного и производительного процесса разработки является хорошо построенная коммуникация как внутри команды, так и между командой и Product Owner'ом. Естественно, наилучшая коммуникация возникает тогда, когда люди сидят в одной комнате и могут в любой момент пообщаться, подойти помочь или просто поработать в паре.

На этом раздел Основы Scrum заканчивается. Остался в принципе не менее интересный раздел "Рекомендовано ... ", но я пока хочу остановиться. Возможно, я еще вернусь к этой части.

А пока что спасибо Вам всем за внимание и за комментарии и, как всегда прошу еще больше и того, и другого!

До скорых встреч!

VN:F [1.8.2_1042]
Rating: 10.0/10 (1 vote cast)
VN:F [1.8.2_1042]
Rating: 0 (from 0 votes)
Делимся с другими:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Slashdot
  • Technorati
  • Blogosphere News
  • email
  • FriendFeed
  • LinkedIn
  • Netvibes
  • PDF
  • StumbleUpon
  • Twitter

Tags: , , , , , , , , , , , , ,

1 Comment

Карта проверок Scrum

Всем здравствуйте,

Сегодня будет короткий, но, на мой взгляд, очень важный пост.

Вот представьте себе: вы работаете, как вы считаете, по Scrum, вроде все нормально, но как вы можете быть уверены, что у вас действительно Scrum и что все настроено и работает правильно? Есть несколько вариантов. Недавно Тим написал статью «На сколько вы Agile» — это один из вариантов получения количественной и качественной оценки вашего процесса.

Второй вариант несколько проще и быстрее, хотя, конечно, результат не такой точный (если вообще в этом случае может быть точный результат). Несколько дней назад Henrik Kniberg опубликовал вторую версию своего Scrum Checklist. Вашему вниманию представляется переведенная на русский язык версия. Скачать русскую версию Scrum Checklist.

Сразу хочу оговориться (коротко, более детальный разбор карты проверок появится на этом блоге в ближайшем будущем), что не нужно быстренько бежать печатать 10 копий карты и раздавать всем членам команды, чтобы посмотреть «на сколько вы Scrum».  Не так. Его нужно использовать к случаю. Например, вы собираетесь проводить ретроспективу. Загляните в карту и посмотрите, а все ли перечисленное вы делаете и что из того, чего вы не делаете может оказаться для вас полезным.

Еще одним применением карты может быть старт команды, которая еще не работала по Scrum. Ведь фактически, в карте кратко перечислены все основные практики Scrum! Это ли не то, что нужно для начала?!

Как я уже сказал, в самом ближайшем времени я более детально рассмотрю все пункты карты. До новых встреч на блоге Лучшие реализации Scrum практик.

Update: на блоге появились 2 статьи с детальными комментариями к карте проверок Scrum: часть 1 и часть 2.

VN:F [1.8.2_1042]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.2_1042]
Rating: 0 (from 0 votes)
Делимся с другими:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Slashdot
  • Technorati
  • Blogosphere News
  • email
  • FriendFeed
  • LinkedIn
  • Netvibes
  • PDF
  • StumbleUpon
  • Twitter

Tags: , , , ,

5 Comments

4 варианта бонусных схем для Scrum команды

Всем доброе время суток.

bonusЗнаю, что довольно значительное время этот блог не обновлялся и нет мне оправдания, но тем не менее сегодня я хотел бы не столько поделиться с вами своим опытом, сколько попросить у вас помощи :)

Проблема в следующем: заказчик хочет реализовать в команде выплату бонусов и попросил всех нас продумать возможные варианты и тут возникли проблемы. Все бонусные схемы, которые мы с командой смогли выдумать на данный момент имеют недостатки (ну да, так всегда бывает) и в чистом виде ни одна из этих схем не будет работать. Чтобы вам совсем уж не было скучно читать эту статью, кроме описания проблемы и имеющихся вариантов я поделюсь нашими соображениями, проблемами и преимуществами той или иной схемы. Очень хотелось бы верить, что с вашей помощью мы найдем работоспособную схему. Ну и, конечно, очень надеюсь, что эта статья поможет кому-нибудь еще.

Начинаем :)

Итак, основные треования к бонусной схеме следующие:

Бонус должен быть командным, а не индивидуальным

Смысл в том, что бонус получает вся команда, а не отдельные ее члены, а потом решают, что с ним делать. Вариантов несколько: выдать всем деньгами, купить что-нибудь для всей команды, поехать куда-нибудь отдохнуть и т.п. 

У такого подхода несколько преимуществ. Во-первых, такая бонусная схема должны стимулировать команду к самоорганизации, ведь от ошибок одного человека зависит бонус всей команды. Во-вторых, такая схема должна мотивировать людей работать лучше и быстрее. В-третьих, такая схема позволит больше сплотить команду, а это очень важно. При обсуждении мы сразу откинули варианты схем с индивидуальными бонусами, но сразу выработали несколько правил и выявили несколько возможных опасностей в этой схеме.

  1. Решение о распределении или использовании бонуса принимается только в том случае, если ВСЕ члены команды согласны с решением. Мне кажется, что вариант с большинством голосов в данном случае работать не будет, т.к., например, в случае команды из 10 человек меньшинство — это аж 4 человека, т.е. довольно много. Если у вас совсем нет никаких идей о том, как можно достичь такого всеобщего соглашения смотрите как выбирают папу римского (хотя там требуется 2/3 голосов + 1 голос) :)
  2. В случае, если команда решает разделить деньги, то единственный доступный вариант — это просто деление всей суммы бонуса на количество человек. Варианты «я дольше работаю», «это ОН сломал билд», «так она же весь спринт проболела» не принимаются. Обсудите это с командой заранее и см. п. 1
  3. Часто случается, что в команде есть отличный специалист и замечательный товарищ, но этот товарищ всегда  работает очень медленно, например потому, что всегда старается сделать свой код идеальным, или потому, что всегда до байта оптимизирует свой код. Во всех придуманных нами схемах есть фактор времени или фактор объема выполненных работ, и в случае, если у вас в команде есть такой человек, могут возникнуть проблемы. Не думаю, что стоит напрямую обсуждать эту тему с командой или с этим человеком. Просто оговорите, что никогда и никто из команды не будет обвинен в срыве релиза или недополучении бонуса. В этом случае виноваты все: товарищ, что делал слишком медленно и слишком идеально, команда, что недосмотрели. Опять же, все должны принять это простое правило. У вас же на ретроспективах никто никого не обвиняет в проблемах, надеюсь?!

Сумма бонуса должна основываться на числах, а не на чувствах

Должна быть конкретная схема, по которой любой заинтересованный человек может рассчитать, какой должна быть сумма бонуса

Схема расчета суммы бонуса должна быть простой и понятной всем

В нашем случае это означает:

  1. На собственно расчет суммы бонуса должно тратиться минимум времени, расчет должен быть прост и очевиден
  2. Очень желательно, чтобы сумма бонуса рассчитывалась на основе той статистики и тех данных, которыми команда уже владеет или которую несложно и недолго собирать. Например, бонусные схемы, основанные на количестве написанных строк, количестве возвратов из code review и из QA, количество открытых багов и пр. представляются нам излишне сложными

Бонусы должны начисляться на основе результатов одного спринта

Поскольку основной единицей времени, за которую заказчик получает свое бизнес-value, является спринт кажется разумным привязать бонусы к каждому спринту. Чем раньше вы найдете и высветлите проблему, тем раньше ее можно будет решить.

Так, с основными требованиями к схемам мы закончили, но перед тем как перейти непосредственно к описанию самих схем хочу оговориться, что для каждой из предложенных схем существует несколько вариантов реализации, например:

  1. Выставление оценок или принятие решения о сумме бонуса может приниматься исключительно Product Owner'ом, Product Owner'ом и Scrum Master'ом, Product Owner'ом и командой со сравнением результатов и т.д. 
  2. Может допускаться обсуждение суммы бонусов в случае, если какая-то сторона считает, что бонус рассчитан неправильно/несправедливо. Да, нам всем нужны деньги, но в данном случае смысл не только в них. Если вы не проводите ретроспективные митинги, или постоянно их откладываете, то бонусы могут быть как раз тем, что вам нужно, потому, что ретроспективы очень важны для постоянного улучшения процесса работы и для обмена мнениями между Product Owner'ом и командой. Проблема, о которой знают все — это уже наполовину решенная проблема
  3. Бонусы могут аккумулироваться или выплачиваться сразу после начисления

А теперь переходим непосредственно к возможным бонусным схемам.

Схема, основанная на прибыльности команды

Размер бонуса — это процент от прибыли, полученной от реализации продуктов, реализованных командой. С данной схемой есть несколько проблем:

  1. Расчет прибыльности, да еще и каждые 2 недели (длина нашего спринта) может превратиться в большую головную боль
  2. Собственно, сам расчет прибыльности не очевиден: кроме команды над проектом наверняка работают менеджеры по продажам, консультанты, служба поддержки, системные администраторы и пр.
  3. Реализация схемы может быть проблемой для заказчика, особенно если заказчик не из «цивилизованной Европы», где ежемесячно всем сотрудникам высылается полнейший отчет о финансовых достижениях компании
  4. Допускаю, что этот вариант может оказаться меньшим мотивирующим фактором, чем остальные схемы, поскольку команда (если только в ней нет менеджеров по продажам) скорее всего лишь косвенно влияет на чистый доход от проекта. С другой стороны, если команда может активно влиять на ход проекта или на его функционал (например, предлагая собственные идеи), эта схема становится одним из лучших вариантов
  5. Допускаю, что этот вариант не лучший для заказчика, т.к. у него нет прямых рычагов стимулирования и мотивации команды

С другой стороны, если возложить расчет суммы дохода на финансовый отдел компании и изменить временной промежуток, за который выплачивается бонус так, чтобы он совпадал по времени, например, с подготовкой ежемесячных отчетов финансовым отделом компании, то схема может оказаться вполне интересной и работоспособной. Например, чистая прибыль компании от реализации продуктов за месяц составила $300000, команда получает 1%, что в данном случае составит $3000 на команду в месяц. Тут возможны подварианты с зависимостью процента, получаемого командой от самой суммы прибыли.

Схема, основанная на уменьшении от максимальной величины бонуса

Допустим, команда договаривается о максимальной сумме бонуса за спринт в $1000. Реальная сумма бонуса рассчитывается по следующей формуле:

$Реальная = $Максимальная * Фактор_1 * Фактор_2 * ... * Фактор_N

В самом простом случае каждый из факторов_N — это дробное число от 0 до 1, оценивающее достижение той или иной цели. Например, у нас есть следующие факторы:

     
  • Скорость
  •  
  • Качество
  • Объем работ
  •  
  • Дисциплина

Если product owner совершенно удовлетворен скоростью работы команды в течении спринта, то этот фактор становится равным 1, если у него есть лишь небольшие замечания — 0.9, если заказчик скорее недоволен, чем доволен — 0.2 и т.д. Точно также определяется значение для остальных факторов. Для примера, Скорость = 1, Качество = 0.6, Объем работ = 1, Дисциплина = 0.8. Получаем, что командный бонус будет равен $1000 * 1 * 0.6 * 1 * 0.8 = $480.

Мне кажется, что в случае этой схемы, оценки должны выставляться:

  1. Product Owner'ом
  2. Scrum Master'ом отдельно от команды (особенно если он не принимает непосредственного участия в разработке, т.е. не пишет код)
  3. Каждым членом команды

Проблемными и подлежащими дискуссии считаются минимальные и максимальные значения оценок. Возможно, заказчик очень просил команду реализовать данный набор задач и команда сделала это, но пожертвовав качеством и побузев немного :) В таком случае будет честно, если команда сможет обговорить этот вопрос с заказчиком. Но опять же, не для того, чтобы каждый из них получил на $20 больше, а для того, чтобы выявить возможные проблемы в понимании, определении цели и средств проекта и  т.д.

Схема, основанная на удовлетворении нужд заказчика

Какие бы параметры мы не выбирали для расчета, основной задачей является именно удовлетворение заказчика. Вы можете делать все супер быстро и с наивысшим качеством,   но если заказчик при этом все равно остается недоволен (заказчики разные бывают, ага), будет ли это честно, если команда потребует максимальную сумму бонуса? Или, например, команда реализовала все, что ОНА запланировала (никто, кроме команды, не имеет права решать, что войдет в текущий спринт, помним?), но при этом отказалась поработать 2 дня в режиме аврала, хотя это было критично для заказчика.

Я пытаюсь сказать, что числа числами, но даже если числа хороши — не факт, что в проекте все хорошо. Вы никогда не уходили с работу, на которой вас устраивала зарплата?

Сама схема проста: заказчик определяет сумму бонуса на основе того, насколько он удовлетворен работой команды и ее результатами. У этого подхода множество минусов, но несомненным плюсом является то, что такой подход может стимулировать диалог между product owner'ом и командой, что, опять же, приведет к высветлению и обсуждению существующих проблем, а значит так или иначе к их решению.

Схема с фиксированной оплатой

Схема проста: по наступлении какого-либо события, будь то конец спринта или месяца, релиз продукта или каждый сотый клиент, команде начисляется определенная сумма. Самая простая и самая неэффективная с точки зрения мотивации бонусная схема. С одной стороны она все же позволяет заказчику поднять мотивацию команды (правда, как известно, мотивация деньгами — это самая слабая и самая кратковременная мотивация). С другой стороны, команда почти никак не может повлиять на факт начисления или неначисления бонусов.

Еще одним плюсом данной схемы, кроме ее простоты, является возможность для заказчика регулировать финансовые вложения в команду. Если финансы не позволяют заказчику провести очередной пересмотр заработной платы, то данная бонусная схема может быть идеальной. С одной стороны она-таки позволяет повысить доход членов команды при наличии такой возможности, с другой стороны, в случае, если такой возможности нет, лично я предпочел бы потерять бонус, чем члена команды или часть своей заработной платы. Вобщем, такой себе бюджетный вариантик :)

К сожалению, на данный момент это все, на что мы оказались способны. И к сожалению, ни одна из схем в чистом виде не подходит.

Если у вас есть варианты, которые могут нам подойти и вы соизволите оставить комментарий с описанием этих вариантов — будем премного благодарны.

Всем заранее большое спасибо! До встречи в комментариях :)

VN:F [1.8.2_1042]
Rating: 10.0/10 (1 vote cast)
VN:F [1.8.2_1042]
Rating: 0 (from 0 votes)
Делимся с другими:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Slashdot
  • Technorati
  • Blogosphere News
  • email
  • FriendFeed
  • LinkedIn
  • Netvibes
  • PDF
  • StumbleUpon
  • Twitter

Tags: ,

10 Comments