<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Лучшие реализации SCRUM-практик</title>
	<atom:link href="http://blog.laway.in.ua/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.laway.in.ua</link>
	<description>Best SCRUM practices gathered</description>
	<lastBuildDate>Sat, 19 Sep 2009 18:01:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ответы на незаданные&#160;вопросы</title>
		<link>http://blog.laway.in.ua/common/answers-for-not-asked-questions/</link>
		<comments>http://blog.laway.in.ua/common/answers-for-not-asked-questions/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 19:58:41 +0000</pubDate>
		<dc:creator>laway</dc:creator>
				<category><![CDATA[Общее]]></category>
		<category><![CDATA[community. Skype]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[блог]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Организация]]></category>

		<guid isPermaLink="false">http://blog.laway.in.ua/?p=198</guid>
		<description><![CDATA[Всем доброе время&#160;суток,
Сегодняшний пост не о Scrum,&#160;или, вернее, не совсем о&#160;Scrum. Я хочу проанализировать 2 вопроса и сделать вам всем, кто интересуется Scrum, предложение от которого, как я надеюсь, вы не сможете отказаться :) Надеюсь заинтриговал. Но если нет&#160;&#8212; все равно прочтите последнюю часть статьи&#160;Предложение.
Вопрос #1: Зачем я веду этот&#160;блог?
Однозначного ответа я дать не могу. [...]]]></description>
			<content:encoded><![CDATA[<p>Всем доброе время&nbsp;суток,</p>
<p>Сегодняшний пост не о Scrum,&nbsp;или, вернее, не совсем о&nbsp;Scrum. Я хочу проанализировать 2 вопроса и сделать вам всем, кто интересуется Scrum, предложение от которого, как я надеюсь, вы не сможете отказаться :) Надеюсь заинтриговал. Но если нет&nbsp;&mdash; все равно прочтите последнюю часть статьи&nbsp;<strong>Предложение</strong>.</p>
<p><strong>Вопрос #1: Зачем я веду этот&nbsp;блог?</strong></p>
<p>Однозначного ответа я дать не могу. Но ответ однозначно будет включать тот факт, что я хочу делиться опытом, который есть у меня и получать знания, которые есть у&nbsp;вас.</p>
<p><strong>Вопрос #2: Зачем вы читаете этот&nbsp;блог?</strong></p>
<p>Ответ более очевиден: вы хотите получать знания, узнавать больше о&nbsp;Scrum и быть более успешными в&nbsp;том деле, которым&nbsp;занимаетесь.</p>
<p><strong>А в чем&nbsp;проблема?</strong></p>
<p>Проблема, как&nbsp;мне кажется в том, что&nbsp;те, кто пишут пытаются ответить на вопросы, которые им не задавали, но которые, как&nbsp;им кажется, могут их заинтересовать. И еще проблема в том, что&nbsp;для тех, кто читает нет простого способа задать вопрос и быстро получить квалифицированный ответ. Да, я в курсе, что есть рассылки, группы в контакте и прочее, но&nbsp;мне кажется это не решает всех&nbsp;проблем.</p>
<p><strong>Предложение</strong></p>
<p>Я предлагаю еще один способ делиться опытом. Я предлагаю всем желающим создать Skype-группу, где все желающие могут задавать вопросы которые интересуют их и ответить на вопросы, ответы на которые вы&nbsp;знаете!</p>
<p>Если можно дать краткий ответ&nbsp;&mdash; он будет дан сразу. Если&nbsp;же потребуется более развернутое объяснение любой из тех, у кого есть блог сможет написать статью на эту&nbsp;тему.</p>
<p>Конечно&nbsp;же, и в этом подходе есть свои недостатки, но я и&nbsp;не говорил, что&nbsp;он должен заменить все средства, которыми вы пользовались до этого&nbsp;&mdash; я просто предлагаю еще одно&nbsp;:)</p>
<p>А потому всем желающим предлагаю стучаться ко&nbsp;мне в&nbsp;Skype: <a href="skype:alexlaway?chat">alexlaway</a>&nbsp;или <a href="http://www.skype.com/go/joinpublicchat?skypename=alexlaway&amp;topic=Agile%20Study%20Group.%20%D0%A1%D0%A0%2C%20%D0%A1%D0%91%2C%2022%3A00-22%3A45%20http%3A%2F%2Fspreadsheets.google.com%2Fccc%3Fkey%3DpK_vYtFoU0I1mKhqA7uoVKg&amp;blob=oy6dGH-RpgPZz_30NXWypmg96qiUqGzElt4lyUKPii0bsWjEOOdMjnzBIFIRRE0xSbCzWmge4vlTYvxgbN-orMG-2TIhn5HVd2c769uF2JeAXAw9iLOBSMN3JqUnsrie9vjT1FCZGw">подключайтесь непосредственно к чату</a> (для подключения по ссылке понадобится <a href="http://www.filehippo.com/download_skype/4911/">Skype 3.8</a>). <strong>Если не получается&nbsp;&mdash; <a href="skype:alexlaway?chat">стучитесь ко мне</a>, я вас&nbsp;подключу.<br />
</strong></p>
<p> <strong></strong><strong>&nbsp;</strong></p>
<p>Давайте попробуем быть еще ближе, общаться чаще и получать больше нужной и интересной нам&nbsp;информации!</p>
<p>P.S.&nbsp;Я очень надеюсь, что <a href="http://tim.com.ua/">Тим Евграшин</a> и <a href="http://www.krivitsky.com/">Алексей Кривицкий</a> меня поддержат&nbsp;;)</p>
<p><strong>Update:</strong> Также ждем подключения Асхата Уразбаева, Никиты Филипова и многих других&nbsp;аджайлистов.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.laway.in.ua/common/answers-for-not-asked-questions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Комментарии к карте проверок Scrum&#160;&#8212; часть&#160;2</title>
		<link>http://blog.laway.in.ua/common/comments-scrum-checklist-2/</link>
		<comments>http://blog.laway.in.ua/common/comments-scrum-checklist-2/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 19:00:52 +0000</pubDate>
		<dc:creator>laway</dc:creator>
				<category><![CDATA[Общее]]></category>
		<category><![CDATA[Основы Scrum]]></category>
		<category><![CDATA[product backlog]]></category>
		<category><![CDATA[product owner]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[scrum checklist]]></category>
		<category><![CDATA[scrum практики]]></category>
		<category><![CDATA[sprint]]></category>
		<category><![CDATA[Story points]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[идеальный час]]></category>
		<category><![CDATA[карта проверок]]></category>
		<category><![CDATA[команда]]></category>
		<category><![CDATA[основные принципы SCRUM]]></category>
		<category><![CDATA[основы]]></category>

		<guid isPermaLink="false">http://blog.laway.in.ua/?p=181</guid>
		<description><![CDATA[И снова всем&#160;здравствуйте,
Только вчера здоровался со всеми вами и рад, что вроде&#160;бы получается поздороваться и&#160;сегодня.
Как вы, наверное, уже догадались из названия статьи я хочу продолжить разговор о карте проверок Scrum (Scrum checklist) за авторством Henrik Kniberg. В первой части статьи я прокомментировал раздел &#171;Основа&#187;, а теперь хочу приняться за раздел &#171;Рекомендовано, но&#160;не всегда обязательно&#187;. Начнем,&#160;пожалуй.
Команда [...]]]></description>
			<content:encoded><![CDATA[<p>И снова всем&nbsp;здравствуйте,</p>
<p><img class="alignright size-full wp-image-186" style="margin: 10px;" title="checklist" src="http://blog.laway.in.ua/wp-content/uploads/2009/09/checklist.jpg" alt="checklist" width="182" height="184" />Только вчера здоровался со всеми вами и рад, что вроде&nbsp;бы получается поздороваться и&nbsp;сегодня.</p>
<p>Как вы, наверное, уже догадались из названия статьи я хочу продолжить разговор о карте проверок <a href="http://blog.laway.in.ua/common/scrum-basics/russian-scrum-checklist/">Scrum (Scrum checklist)</a> за авторством <a href="http://blog.crisp.se/henrikkniberg/">Henrik Kniberg</a>. В <a href="http://blog.laway.in.ua/common/scrum-basics/comments-scrum-checklist/">первой части статьи</a> я прокомментировал раздел &laquo;Основа&raquo;, а теперь хочу приняться за раздел &laquo;Рекомендовано, но&nbsp;не всегда обязательно&raquo;. Начнем,&nbsp;пожалуй.</p>
<p><strong>Команда обладает навыками для реализации всего&nbsp;PBL</strong></p>
<p>Вполне естественно, что&nbsp;это желаемое, а&nbsp;не обязательное условие. Уверен, что&nbsp;вы, как и я, чуть&nbsp;ли не каждый день встречаетесь с проблемами и задачами с которыми не встречались раньше. Это нормальная часть работы и, более того, думаю, что если&nbsp;бы этого не было наша с вами работа не была&nbsp;бы такой интересной. Тем не менее, если команда УЖЕ обладает всеми навыками разработка пойдет быстрее и будет менее&nbsp;рискованной.</p>
<p><strong>Нет жесткого распределения по&nbsp;ролям</strong></p>
<p>Этот пункт заслуживает отдельного большого обсуждения в отдельной статье. Частично я обсуждал этот аспект в серии статей &laquo;Подкоманды: делить&nbsp;или не делить&raquo; (<a href="http://blog.laway.in.ua/organization/subteams-to-split-or-not-to-split/">часть 1</a>, <a href="http://blog.laway.in.ua/organization/sumteams-to-split-or-not-to-split-2/">часть 2</a>, <a href="http://blog.laway.in.ua/organization/subteams-to-split-or-not-to-split-3/">часть 3</a>). Если в кратце, то команда должна быть cross-functional, т.е. в&nbsp;ней не должно быть выделенных SQL-программистов, верстальщиков, backend-разработчиков и&nbsp;пр. и каждый член команды имеет право заняться тем, чем он хочет заняться. Кроме того, что&nbsp;это способствует развитию членов команды и в конечном итоге положительно влияет на&nbsp;ее производительность, это является и неплохим мотивационным фактором: люди постоянно учатся (конечно только те, кто этого хочет) и получают интересные задания. Ну и, само собой, команде будет проще справиться с ситуацией, когда из&nbsp;нее на время&nbsp;или на совсем уходит&nbsp;человек.</p>
<p><strong>Итерации, которые обречены на провал, обрываются&nbsp;рано</strong></p>
<p>Есть такой принцип в Scrum&nbsp;&mdash; &laquo;fail early&raquo;. Он в <span style="white-space:nowrap">каком-то</span> смысле является частным случаем более общего принципа всеобщей видимости и доступности, ранней диагностики проблем. Если провала нельзя избежать, по лучше если он случиться раньше, чем позже. Это справедливо для любого момента жизненного цикла проекта. Это справедливо как&nbsp;для всего проекта в целом, так и&nbsp;для отдельных итераций и даже для отдельных задач. Видите проблему&nbsp;&mdash; сразу скажите всем о&nbsp;ней.</p>
<p><strong>Все члены команды участвуют в&nbsp;оценке</strong></p>
<p>В <a href="http://blog.laway.in.ua/common/scrum-basics/comments-scrum-checklist/">первой части статьи</a> я&nbsp;уже говорил о важности этого момента. Команда подписывается на выполнение всего объема задач запланированного на спринт. Иногда звучат вопросы вроде "должны&nbsp;ли новые члены команды участвовать в оценке? ". Категоричный ответ&nbsp;&mdash; <strong>ДА</strong>. Даже если они не обладают знаниями о вашем продукте&nbsp;или даже не обладают всеми необходимыми техническими знаниями&nbsp;&mdash; пусть участвуют: вам не помешает лишнее мнение. Просто играйте в <strong>planning poker</strong>. По правилам игры нужно обязательно спросить людей, проголосовавших минимальной и максимальной оценкой почему они так проголосовали. Может&nbsp;же быть ситуация, когда новый человек со всежим взглядом видит проблему которой не видите вы? Или наоборот, знает решение которого вы не&nbsp;знаете.</p>
<p><strong>Product Owner доступен когда команда проводит&nbsp;оценку</strong></p>
<p>Одной из основных обязанностей Product Owner является предоставление команде всей необходимой для работы информацией. Чаще всего элементами Product Backlog являются не конкретные и&nbsp;не технические истории пользователя. Они там очень к месту, так как позволяют всем людям, вовлеченным в проект понимать о&nbsp;чем идет речь. Но когда дело доходит до планирования спринта, эти истории пользователя должны быть поделены на меньшие по размеру и конкретные задачи и часто для этого нужна дополнительная информация и этой информацией может обладать только Product Owner. Вернее этой информацией могут обладать множество людей, но получать эту информацию команда должна только от Product Owner, чтобы избежать путаницы и конфликтов в&nbsp;дальнейшем.</p>
<p><strong>Оценивайте относительный размер (story points), а не&nbsp;время</strong></p>
<p>Раньше я&nbsp;уже писал на&nbsp;эту тему в статье &laquo;<a href="http://blog.laway.in.ua/practices/story-points/story-points-vs-ideal-hours-vs-manhours/">Story points vs Ideal hours vs man/hours</a>&raquo;. В ней, с помощью моего коллеги <a href="http://tim.com.ua/">Тима Евграшина</a>, детально описана разница между&nbsp;story points и&nbsp;ideal hours, рассказано что и в каких случаях должно использоваться. А потому, если эта тема вам интересна&nbsp;&mdash; прочитайте <a href="http://blog.laway.in.ua/practices/story-points/story-points-vs-ideal-hours-vs-manhours/">эту&nbsp;статью</a>.</p>
<p><strong>У команды есть Scrum&nbsp;Master</strong></p>
<p>Естественно у команды должен быть Scrum Master, иначе кем&nbsp;бы я сейчас работал! :) А если серьезно, о роли Scrum Master&#39;а написаны сотни книг и тысячи статей. Может быть вскоре не блоге &laquo;<a href="http://blog.laway.in.ua/">Лучшие реализации Scrum-практик</a>&raquo; появится еще одна, но пока хочу напомнить только одно: Scrum Master&nbsp;&mdash; это <strong>НЕ МЕНЕДЖЕР</strong>. Он не управляет командой (команда сама собой должна управлять), он просто создает условия, в которых эта команда может работать с наибольшей производительностью и обспечивает команду всем необходимым. Некоторые сравнивают Scrum Master&#39;а со сторожевыми псами, но лично мне это сравнение не очень нравится&nbsp;:)</p>
<p>---</p>
<p>Я вижу, что в секции "Рекомендовано ... " есть еще несколько пунктов, которые я здесь не прокомментировал. Я не делаю это&nbsp;либо потому, что&nbsp;не хочу заниматься повторением уже неоднократно мною написанного (в том числе и в этих двух статьях), например, пункты &laquo;Измеряется скорость&raquo;&nbsp;или &laquo;команда строит Burndown Chart&raquo;,&nbsp;либо потому, что&nbsp;эти пункты требуют отдельной большой и умной статьи каждый (например, &laquo;У Product Owner есть видение продукта&raquo;) и&nbsp;как&nbsp;по&nbsp;мне не имеет смысл ограничиваться одним-двумя предложениями. Ну&nbsp;либо потому, что&nbsp;мне просто нечего сказать по этому поводу&nbsp;:)</p>
<p>Вот и&nbsp;все на сегодня. Всегда рад видеть ваши комментарии и отвечать на любые ваши&nbsp;вопросы.</p>
<p>До&nbsp;встечи!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.laway.in.ua/common/comments-scrum-checklist-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Комментарии к карте проверок&#160;Scrum</title>
		<link>http://blog.laway.in.ua/common/scrum-basics/comments-scrum-checklist/</link>
		<comments>http://blog.laway.in.ua/common/scrum-basics/comments-scrum-checklist/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 19:47:42 +0000</pubDate>
		<dc:creator>laway</dc:creator>
				<category><![CDATA[Основы Scrum]]></category>
		<category><![CDATA[definition of done]]></category>
		<category><![CDATA[product backlog]]></category>
		<category><![CDATA[product owner]]></category>
		<category><![CDATA[progress]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[scrum checklist]]></category>
		<category><![CDATA[scrum практики]]></category>
		<category><![CDATA[sprint]]></category>
		<category><![CDATA[Story points]]></category>
		<category><![CDATA[карта проверок]]></category>
		<category><![CDATA[команда]]></category>
		<category><![CDATA[основные принципы SCRUM]]></category>
		<category><![CDATA[основы]]></category>

		<guid isPermaLink="false">http://blog.laway.in.ua/?p=170</guid>
		<description><![CDATA[Всем доброе время&#160;суток,
Неделю назад я опубликовал статью под названием &#171;Карта проверок Scrum&#187;. Мало того, я&#160;еще и пообещал, что&#160;не ограничусь простым переводом карты проверок, но и прокомментирую ее содержимое. Обещал&#160;&#8212;&#160;получайте!
В первую очередь хочу повторить то, о&#160;чем уже говорил в прошлой статье: не нужно бросаться печатать карту и раздавать ее членам команды для выяснения вашего прогресса в [...]]]></description>
			<content:encoded><![CDATA[<p>Всем доброе время&nbsp;суток,</p>
<p><img class="size-full wp-image-173 alignright" style="margin: 12px;" title="checklist2" src="http://blog.laway.in.ua/wp-content/uploads/2009/09/checklist2.gif" alt="checklist2" width="224" height="242" />Неделю назад я опубликовал статью под названием &laquo;<a href="http://blog.laway.in.ua/common/scrum-basics/russian-scrum-checklist/">Карта проверок Scrum</a>&raquo;. Мало того, я&nbsp;еще и пообещал, что&nbsp;не ограничусь простым переводом карты проверок, но и прокомментирую ее содержимое. Обещал&nbsp;&mdash;&nbsp;получайте!</p>
<p>В первую очередь хочу повторить то, о&nbsp;чем уже говорил в прошлой статье: не нужно бросаться печатать карту и раздавать ее членам команды для выяснения вашего прогресса в реализации&nbsp;Scrum-практик.</p>
<p>Для начала я&nbsp;бы посоветовал просто пройтись по основным пунктам, не обращая внимания на подпункты. Если вы вдруг обнаружите, что у&nbsp;вас совсем не реализованы несколько практик ни в коем случае не стоит браться за реализацию обеих сразу: лучше выберите одну и реализуйте ее сполна. Представьте себе, что&nbsp;вы не знаете как управлять автомобилем, первый раз сидите на водительском сиденье и просто нажимаете все кнопки, все педали и дергаете за&nbsp;все рычаги. Так вы не сможете понять, например, что вызвало движение дворников, а&nbsp;что&nbsp;рев двигателя, который, в свою очередь, вызвал инфаркт у парочки проходящих мимо кошек&nbsp;:)</p>
<p>Посмотрите на&nbsp;3-й пункт раздела <strong>&laquo;Основа&raquo;</strong>. Он гласит &laquo;Процесс постоянно улучшается&raquo; и в этом сейчас одна из ваших целей. Не революция, но&nbsp;эволюция.</p>
<p>Вообще, Хенрик не&nbsp;зря вынес 3 пункта в раздел &laquo;Общее&raquo; и сказал, что если эти требования выполнены то&nbsp;не имеет смысла проверять все оставшиеся. Смысл и цель Scrum в том, чтобы&nbsp;вы:</p>
<ol>
<li>Часто релизили качественное ПО, которое потенциально можно сразу&nbsp;же начать&nbsp;продавать</li>
<li>Релизили наиболее важный для заказчика функционал. Помните правило &laquo;80/20&raquo;, оно еще известно как <a href="http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BA%D0%BE%D0%BD_%D0%9F%D0%B0%D1%80%D0%B5%D1%82%D0%BE">Принцип Парето</a>? Оно гласит, что первые 80% функционала реализовуются за 20% всего времени. Это отлично, но проблема в том, что оставшиеся 20% реализовываются за <strong>80%</strong>. А еще есть статистика, что порядка 30% функционала программ&nbsp;либо вообще не используются пользователями,&nbsp;либо используются крайне редко. Понимаете о&nbsp;чем я?&nbsp;;)</li>
<li>Процесс постоянно улучшается. Существует довольно много упражнений, которые показывают как команда <strong>безо всякий финансовых вложений</strong> может <strong>сама</strong> улучшить свою производительность <strong>в несколько раз</strong>! Просто шаг за шагом улучшая то, как&nbsp;она работет. Звучит как спам, да? Но нет, я&nbsp;не продаю виагру&nbsp;:)</li>
</ol>
<p>Вы заметили, что в этом списке нет никаких указаний о том, КАК это должно быть достигнуто, и лично я читаю это так: &laquo;Если у&nbsp;вас все это есть&nbsp;&mdash; не важно, КАК вы этого достигли&raquo;. Если у&nbsp;вас все так&nbsp;&mdash; я&nbsp;вас искренне&nbsp;поздравляю!</p>
<p>А теперь если не так. Хочу пройтись по основным пунктам и сделать 1-2&nbsp;комментария.</p>
<p><strong>Четко определен Product&nbsp;Owner</strong></p>
<p>Кто такой Product Owner? Это человек, который должен обладать всей необходимой для работы команды информацией и должен представлять интересы компании. Он является связующим звеном между stakeholder&#39;ами (кто&nbsp;бы подсказал правильный русский термин, а&nbsp;то пишу как иммигрант из Штатов) и командой. Кстати, заметьте, <strong>командой</strong>, а&nbsp;не менеджером&nbsp;или техническим лидером. Product Owner представляет интересы stakeholder&#39;ов устанавливая приоритеты задачам в backlog&#39;е, тем самым решая что будет реализовано в первую очередь, а&nbsp;что может и подождать. Ну и думаю, что понятно, что у product owner&#39;а должен быть только один голос, иначе получится как в известной басне про лебедя, рака и&nbsp;щуку.</p>
<p><strong>У команды есть Sprint&nbsp;Backlog</strong></p>
<p>Другими словами команда четко знает свои задачи на ближайший спринт. Более того, это не просто задачи: это задачи, которые команда <strong>подписалась</strong>, ну&nbsp;или <strong>обязалась выполнить</strong>. А если команда подписалась&nbsp;&mdash; она должна сделать все от&nbsp;нее зависящее, чтобы выполнить свои обещания. Но для этого никто не имеет право ей мешать и <strong>Sprint Backlog</strong> принадлежит только команде. В реальном мире это значит, что если появилась очень срочная и важная задача и&nbsp;ее необходимо впихнуть в текущий спринт из&nbsp;Sprint Backlog&#39;а убирается наименее приоритетная задача примерно такого&nbsp;же размера. Но таких ситуаций лучше избегать. В Scrum есть хорошее правило, позволяющее Product Owner&#39;у оборвать ход спринта и начать новый, естественно заново проведя митинг планирования. Если у&nbsp;вас возникнет вышеописанная ситуация попробуйте объяснить заказчику, что изменять список задач в&nbsp;то время, как команда над ними уже работает&nbsp;&mdash; это плохая идея. Но если ему ОЧЕНЬ НУЖНО&nbsp;&mdash; он имеет полное право объявить досрочное завершение текущего спринта и начать планирование нового. Заодно проверите так&nbsp;ли уж заказчику важна эта функциональность. Единственное НО&nbsp;&mdash; не совершайте профессионального самоубийства. Если заказчик ОЧЕНЬ настаивает, наверное, следует пойти ему на&nbsp;встречу.</p>
<p>И обязательное требование в том, что&nbsp;Sprint Backlog должен ежедневно обновляться с тем, чтобы отображать действительную информацию и помогать команде в принятии решений по текущим задачам. А для этого Sprint Backlog еще и должен постоянно быть на&nbsp;виду.</p>
<p><strong>Daily Scrum&nbsp;проводится</strong></p>
<p>Цель&nbsp;&mdash; обмен информацией и поиск помощи в случае возникновения проблем. Лучше проводить стоя, чтобы люди не разговаривали слишком долго. Слышали&nbsp;же о трех основных вопросах на которые должен ответить каждый член команды за время своего&nbsp;выступления?</p>
<ol>
<li>Чем я занимался&nbsp;вчера</li>
<li>Чем я буду заниматься&nbsp;сегодня</li>
<li>Какие у меня есть&nbsp;проблемы</li>
</ol>
<p><strong>Demo Meeting&nbsp;проводится</strong></p>
<p>Цель&nbsp;&mdash; показать новую версию продукта всем заинтересованным лицам и <strong>собрать отзывы</strong>. Stakeholder&#39;ы вообще и Product Owner в частности всегда должны быть в курсе всего, что происходит с его&nbsp;продуктом.</p>
<p><strong>Есть Definition of&nbsp;Done</strong></p>
<p>Это способ сохранять требуемое качество продукта, вернее даже ОПРЕДЕЛЯТЬ требуемое качество. Задача считается реализованной только в&nbsp;том случае, когда она соответствует ВСЕМ пунктам в Definition of&nbsp;Done.</p>
<p><strong>Ретроспектива проводится после&nbsp;спринта</strong></p>
<p>Ретроспектива&nbsp;&mdash; это основное и чуть&nbsp;ли не единственное средство для постоянного улучшения процесса разработки. Это короткий митинг, в котором вся команда (желательно вместе со Product Owner&#39;ом) обсуждает события, достижения и неудачи с момента последней ретроспективы и пытается найти пути&nbsp;для:</p>
<ol>
<li>Сохранения и приумножения положительных событий и&nbsp;достижений</li>
<li>Избежания&nbsp;или уменьшения негативного влияния неудач в&nbsp;будущем</li>
</ol>
<p>Здесь хочется особенно отметить одно: по окончании ретроспективы вы должны знать, какие из выработанных мер вы собираетесь реализовать до следующей ретроспективы. Другими словами, вы должны выбрать и запланировать к реализации наиболее важные&nbsp;действия.</p>
<p><strong>У Product Owner&#39;a есть Product&nbsp;Backlog</strong></p>
<p>Product backlog, в первом приближении, это тот&nbsp;же Sprint Backlog, только он включает в себя задачи для всего продукта вцелом и принадлежит Product Owner&#39;у. Кроме очевидных целей Product Backlog&#39;a таких как &laquo;не забывать о <span style="white-space:nowrap">каких-нибудь</span> требованиях&raquo; Product Backlog служит еще нескольким менее очевидным, в частности с помощью Product Backlog&#39;а Product Owner может планировать даты релизов&nbsp;или предоствлять информацию о том, когда примерно будет реализована та&nbsp;или иная задача. Для этого задачи в Product Backlog должны быть приоритизированы и оценены. А для того, чтобы даты, которые называет Product Owner на основе Product Backlog были правдой, оценки должна давать команда. Вне зависимости от авторитета Product Owner&#39;a, размера его зарплаты&nbsp;или его технических знаний: задачи будет реализовывать команда, а значит она и должна оценивать. Редко Product Owner более подкован технически, чем команда, так что может быть, что задача, &laquo;оцененная&raquo; Product Owner&#39;ом в 4 недели будет оценена командой в 2 дня ;) Шучу&nbsp;:)</p>
<p><strong>Проводятся митинги&nbsp;планирования</strong></p>
<p>Еще один способ убедиться в том, что даты релизов, рассчитываемые Product Owner&#39;ом на основе Product Backlog верны. И еще один способ дать команде работать спокойно, а значит&nbsp;&mdash; с наибольшей продуктивностью. Поскольку в Product Backlog должны содержаться истории пользователя, а&nbsp;не задачи (обсуждение и аргументация этого момента выходит за рамки данной статьи, но если вы так уж хотите аргумент, то&nbsp;вот вам: как минимум, для того, чтобы Product Owner имел возможность приоритизировать список он должен понимать все, что&nbsp;там написано. А потому лучше, если элементами Product Backlog&#39;а будут не_технические описания требуемого функционала, а описание с точки зрения обычного пользователя:  другими словами там должно описываться <strong>ЧТО</strong> должно быть реализовано, а не&nbsp;<strong>КАК</strong>).</p>
<p>В результате этого митинга (или, если хотите, его артефактом) должен быть составлен Sprint Backlog. С ним должен быть согласен и Product Owner, и команда. Все в команде должны быть уверены в том, что смогут выполнить <strong>все</strong> задачи из&nbsp;Sprint Backlog за время&nbsp;спринта.</p>
<p><strong>Итерации ограничены по&nbsp;времени</strong></p>
<p>Все в&nbsp;Sсrum ограничено по времени: итерации, митинги... Тому есть много причин, но основными являются увеличение производительности и контролируемости процесса и&nbsp;прогресса.</p>
<p><strong>Члены команды сидят в одной&nbsp;комнате</strong></p>
<p>Важнейшей частью Scrum вообще и эффективного и производительного процесса разработки является хорошо построенная коммуникация как внутри команды, так и между командой и Product Owner&#39;ом. Естественно, наилучшая коммуникация возникает тогда, когда люди сидят в одной комнате и могут в любой момент пообщаться, подойти помочь&nbsp;или просто поработать в&nbsp;паре.</p>
<p>На этом раздел <strong>Основы Scrum</strong> заканчивается. Остался в принципе не менее интересный раздел "Рекомендовано ... ", но я пока хочу остановиться. Возможно, я&nbsp;еще вернусь к этой&nbsp;части.</p>
<p>А пока что спасибо Вам всем за внимание и&nbsp;за комментарии и, как всегда прошу еще больше и того, и&nbsp;другого!</p>
<p>До скорых&nbsp;встреч!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.laway.in.ua/common/scrum-basics/comments-scrum-checklist/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Карта проверок&#160;Scrum</title>
		<link>http://blog.laway.in.ua/common/scrum-basics/russian-scrum-checklist/</link>
		<comments>http://blog.laway.in.ua/common/scrum-basics/russian-scrum-checklist/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 23:41:22 +0000</pubDate>
		<dc:creator>laway</dc:creator>
				<category><![CDATA[Основы Scrum]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[scrum checklist]]></category>
		<category><![CDATA[карта проверок]]></category>
		<category><![CDATA[основы]]></category>
		<category><![CDATA[русский перевод]]></category>

		<guid isPermaLink="false">http://blog.laway.in.ua/?p=163</guid>
		<description><![CDATA[Всем&#160;здравствуйте,
Сегодня будет короткий, но, на&#160;мой взгляд, очень важный&#160;пост.
Вот представьте себе: вы работаете, как&#160;вы считаете, по&#160;Scrum, вроде все нормально, но как вы можете быть уверены, что у&#160;вас действительно Scrum и&#160;что&#160;все настроено и работает правильно? Есть несколько вариантов. Недавно Тим написал статью &#171;На сколько вы Agile&#187;&#160;&#8212; это один из вариантов получения количественной и качественной оценки вашего&#160;процесса.
Второй вариант [...]]]></description>
			<content:encoded><![CDATA[<p>Всем&nbsp;здравствуйте,</p>
<p>Сегодня будет короткий, но, на&nbsp;мой взгляд, очень важный&nbsp;пост.</p>
<p>Вот представьте себе: вы работаете, как&nbsp;вы считаете, по&nbsp;Scrum, вроде все нормально, но <strong>как</strong> вы можете быть уверены, что у&nbsp;вас действительно Scrum и&nbsp;что&nbsp;все настроено и работает правильно? Есть несколько вариантов. Недавно <a href="http://tim.com.ua">Тим</a> написал статью &laquo;<a href="http://tim.com.ua/2009/08/comparative-agility/">На сколько вы Agile</a>&raquo;&nbsp;&mdash; это один из вариантов получения количественной и качественной оценки вашего&nbsp;процесса.</p>
<p>Второй вариант несколько проще и быстрее, хотя, конечно, результат не такой точный (если вообще в этом случае может быть точный результат). Несколько дней назад Henrik Kniberg <a href="http://blog.crisp.se/henrikkniberg/2009/08/14/1250265360000.html">опубликовал вторую версию своего Scrum Checklist</a>. Вашему вниманию представляется переведенная на русский язык версия. <a href="http://blog.laway.in.ua/docs/scrum-checklist-rus.pdf">Скачать русскую версию Scrum&nbsp;Checklist</a>.</p>
<p>Сразу хочу оговориться (коротко, более детальный разбор карты проверок появится на этом блоге в ближайшем будущем), что&nbsp;не нужно быстренько бежать печатать 10 копий карты и раздавать всем членам команды, чтобы посмотреть &laquo;на сколько вы Scrum&raquo;.  Не так. Его нужно использовать к случаю. Например, вы собираетесь проводить ретроспективу. Загляните в карту и посмотрите, а все&nbsp;ли перечисленное вы делаете и&nbsp;что&nbsp;из того, чего вы <strong>не</strong> делаете может оказаться для вас&nbsp;полезным.</p>
<p>Еще одним применением карты может быть <strong>старт</strong> команды, которая еще не работала по&nbsp;Scrum. Ведь фактически, в карте кратко перечислены все основные практики Scrum! Это&nbsp;ли не&nbsp;то, что нужно для&nbsp;начала?!</p>
<p>Как я&nbsp;уже сказал, в самом ближайшем времени я более детально рассмотрю все пункты карты. До новых встреч на блоге <a href="http://blog.laway.in.ua">Лучшие реализации Scrum&nbsp;практик</a>.</p>
<p><strong>Update:</strong> на блоге появились 2 статьи с детальными комментариями к карте проверок Scrum: <a href="http://blog.laway.in.ua/common/scrum-basics/comments-scrum-checklist/">часть 1</a> и <a href="http://blog.laway.in.ua/common/comments-scrum-checklist-2/">часть&nbsp;2</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.laway.in.ua/common/scrum-basics/russian-scrum-checklist/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>4 варианта бонусных схем для Scrum&#160;команды</title>
		<link>http://blog.laway.in.ua/common/4-options-of-bonus-schemas-for-scrum-team/</link>
		<comments>http://blog.laway.in.ua/common/4-options-of-bonus-schemas-for-scrum-team/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 19:10:51 +0000</pubDate>
		<dc:creator>laway</dc:creator>
				<category><![CDATA[Общее]]></category>
		<category><![CDATA[bonus]]></category>
		<category><![CDATA[бонус]]></category>

		<guid isPermaLink="false">http://blog.laway.in.ua/?p=159</guid>
		<description><![CDATA[Всем доброе время&#160;суток.
Знаю, что довольно значительное время этот блог не обновлялся и&#160;нет мне оправдания, но&#160;тем не менее сегодня я хотел&#160;бы не столько поделиться с вами своим опытом, сколько попросить у&#160;вас помощи&#160;:)
Проблема в следующем: заказчик хочет реализовать в команде выплату бонусов и попросил всех нас продумать возможные варианты и&#160;тут возникли проблемы. Все бонусные схемы, которые мы [...]]]></description>
			<content:encoded><![CDATA[<p>Всем доброе время&nbsp;суток.</p>
<p><img class="alignleft size-full wp-image-160" style="margin: 10px;" title="bonus" src="http://blog.laway.in.ua/wp-content/uploads/2009/07/bonus.jpg" alt="bonus" width="235" height="177" />Знаю, что довольно значительное время этот блог не обновлялся и&nbsp;нет мне оправдания, но&nbsp;тем не менее сегодня я хотел&nbsp;бы не столько поделиться с вами своим опытом, сколько попросить у&nbsp;вас помощи&nbsp;:)</p>
<p>Проблема в следующем: заказчик хочет реализовать в команде выплату бонусов и попросил всех нас продумать возможные варианты и&nbsp;тут возникли проблемы. Все бонусные схемы, которые мы с командой смогли выдумать на данный момент имеют недостатки (ну да, так всегда бывает) и в чистом виде ни одна из этих схем не будет работать. Чтобы вам совсем уж&nbsp;не было скучно читать эту статью, кроме описания проблемы и имеющихся вариантов я поделюсь нашими соображениями, проблемами и преимуществами той&nbsp;или иной схемы. Очень хотелось&nbsp;бы верить, что с вашей помощью мы найдем работоспособную схему. Ну и, конечно, очень надеюсь, что&nbsp;эта статья поможет <span style="white-space:nowrap">кому-нибудь</span>&nbsp;еще.</p>
<p>Начинаем&nbsp;:)</p>
<p>Итак, основные треования к бонусной схеме&nbsp;следующие:</p>
<p><strong>Бонус должен быть командным, а не&nbsp;индивидуальным</strong></p>
<p>Смысл в том, что бонус получает вся команда, а&nbsp;не отдельные ее члены, а потом решают, что с&nbsp;ним делать. Вариантов несколько: выдать всем деньгами, купить <span style="white-space:nowrap">что-нибудь</span> для всей команды, поехать <span style="white-space:nowrap">куда-нибудь</span> отдохнуть и&nbsp;т.п.&nbsp;</p>
<p>У такого подхода несколько преимуществ. Во-первых, такая бонусная схема должны стимулировать команду к самоорганизации, ведь от ошибок одного человека зависит бонус всей команды. Во-вторых, такая схема должна мотивировать людей работать лучше и быстрее. В-третьих, такая схема позволит больше сплотить команду, а&nbsp;это очень важно. При обсуждении мы сразу откинули варианты схем с индивидуальными бонусами, но сразу выработали несколько правил и выявили несколько возможных опасностей в этой&nbsp;схеме.</p>
<ol>
<li>Решение о распределении&nbsp;или использовании бонуса принимается только в&nbsp;том случае, если <strong>ВСЕ</strong> члены команды согласны с решением. Мне кажется, что вариант с большинством голосов в данном случае работать не будет, т.к., например, в случае команды из 10 человек меньшинство&nbsp;&mdash; это аж 4 человека, т.е. довольно много. Если у&nbsp;вас совсем нет никаких идей о том, как можно достичь такого всеобщего соглашения смотрите <a href="http://ru.wikipedia.org/wiki/%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D1%8B_%D0%BF%D0%B0%D0%BF%D1%8B_%D1%80%D0%B8%D0%BC%D1%81%D0%BA%D0%BE%D0%B3%D0%BE">как выбирают папу римского</a> (хотя там требуется 2/3 голосов + 1 голос)&nbsp;:)</li>
<li>В случае, если команда решает разделить деньги, то единственный доступный вариант&nbsp;&mdash; это просто деление всей суммы бонуса на количество человек. Варианты &laquo;я дольше работаю&raquo;, &laquo;это ОН сломал билд&raquo;, &laquo;так она&nbsp;же весь спринт проболела&raquo; не принимаются. Обсудите это с командой заранее и&nbsp;см. п.&nbsp;1</li>
<li>Часто случается, что в команде есть отличный специалист и замечательный товарищ, но этот товарищ всегда  работает очень медленно, например потому, что всегда старается сделать свой код идеальным,&nbsp;или потому, что всегда до байта оптимизирует свой код. Во всех придуманных нами схемах есть фактор времени&nbsp;или фактор объема выполненных работ, и в случае, если у&nbsp;вас в команде есть такой человек, могут возникнуть проблемы. Не думаю, что стоит напрямую обсуждать эту тему с командой&nbsp;или с этим человеком. Просто оговорите, что никогда и никто из команды не будет обвинен в срыве релиза&nbsp;или недополучении бонуса. В этом случае виноваты все: товарищ, что делал слишком медленно и слишком идеально, команда, что недосмотрели. Опять&nbsp;же, все должны принять это простое правило. У вас&nbsp;же на ретроспективах никто никого не обвиняет в проблемах,&nbsp;надеюсь?!</li>
</ol>
<p><strong>Сумма бонуса должна основываться на числах, а&nbsp;не на&nbsp;чувствах</strong></p>
<p>Должна быть конкретная схема, по которой любой заинтересованный человек может рассчитать, какой должна быть сумма&nbsp;бонуса</p>
<p><strong>Схема расчета суммы бонуса должна быть простой и понятной&nbsp;всем</strong></p>
<p>В нашем случае это&nbsp;означает:</p>
<ol>
<li>На собственно расчет суммы бонуса должно тратиться минимум времени, расчет должен быть прост и&nbsp;очевиден</li>
<li>Очень желательно, чтобы сумма бонуса рассчитывалась на основе той статистики и&nbsp;тех данных, которыми команда уже владеет&nbsp;или которую несложно и недолго собирать. Например, бонусные схемы, основанные на количестве написанных строк, количестве возвратов из&nbsp;code review и&nbsp;из QA, количество открытых багов и&nbsp;пр. представляются нам излишне&nbsp;сложными</li>
</ol>
<p><strong>Бонусы должны начисляться на основе результатов одного&nbsp;спринта</strong></p>
<p>Поскольку основной единицей времени, за которую заказчик получает свое бизнес-value, является спринт кажется разумным привязать бонусы к каждому спринту. Чем раньше вы найдете и высветлите проблему, тем раньше ее можно будет&nbsp;решить.</p>
<p>Так, с основными требованиями к схемам мы закончили, но перед&nbsp;тем как перейти непосредственно к описанию самих схем хочу оговориться, что&nbsp;для каждой из предложенных схем существует несколько вариантов реализации,&nbsp;например:</p>
<ol>
<li>Выставление оценок&nbsp;или принятие решения о сумме бонуса может приниматься исключительно Product Owner&#39;ом, Product Owner&#39;ом и&nbsp;Scrum Master&#39;ом, Product Owner&#39;ом и командой со сравнением результатов и&nbsp;т.д.&nbsp;</li>
<li>Может допускаться обсуждение суммы бонусов в случае, если <span style="white-space:nowrap">какая-то</span> сторона считает, что бонус рассчитан неправильно/несправедливо. Да, нам всем нужны деньги, но в данном случае смысл не только в них. Если вы не проводите ретроспективные митинги,&nbsp;или постоянно их откладываете, то бонусы могут быть как&nbsp;раз тем, что&nbsp;вам нужно, потому, что ретроспективы очень важны для постоянного улучшения процесса работы и&nbsp;для обмена мнениями между Product Owner&#39;ом и командой. Проблема, о которой знают все&nbsp;&mdash; это уже наполовину решенная&nbsp;проблема</li>
<li>Бонусы могут аккумулироваться&nbsp;или выплачиваться сразу после&nbsp;начисления</li>
</ol>
<p>А теперь переходим непосредственно к возможным бонусным&nbsp;схемам.</p>
<h2><strong>Схема, основанная на прибыльности&nbsp;команды</strong></h2>
<p>Размер бонуса&nbsp;&mdash; это процент от прибыли, полученной от реализации продуктов, реализованных командой. С данной схемой есть несколько&nbsp;проблем:</p>
<ol>
<li>Расчет прибыльности, да&nbsp;еще и каждые 2 недели (длина нашего спринта) может превратиться в большую головную&nbsp;боль</li>
<li>Собственно, сам расчет прибыльности не очевиден: кроме команды над проектом наверняка работают менеджеры по продажам, консультанты, служба поддержки, системные администраторы и&nbsp;пр.</li>
<li>Реализация схемы может быть проблемой для заказчика, особенно если заказчик не&nbsp;из &laquo;цивилизованной Европы&raquo;, где ежемесячно всем сотрудникам высылается полнейший отчет о финансовых достижениях&nbsp;компании</li>
<li>Допускаю, что этот вариант может оказаться меньшим мотивирующим фактором, чем остальные схемы, поскольку команда (если только в&nbsp;ней нет менеджеров по продажам) скорее всего лишь косвенно влияет на <strong>чистый доход</strong> от проекта. С другой стороны, если команда может активно влиять на&nbsp;ход проекта&nbsp;или на&nbsp;его функционал (например, предлагая собственные идеи), эта схема становится одним из лучших&nbsp;вариантов</li>
<li>Допускаю, что этот вариант не лучший для заказчика, т.к. у него нет прямых рычагов стимулирования и мотивации&nbsp;команды</li>
</ol>
<p>С другой стороны, если возложить расчет суммы дохода на финансовый отдел компании и изменить временной промежуток, за который выплачивается бонус так, чтобы он совпадал по времени, например, с подготовкой ежемесячных отчетов финансовым отделом компании, то схема может оказаться вполне интересной и работоспособной. Например, чистая прибыль компании от реализации продуктов за месяц составила $300000, команда получает 1%, что в данном случае составит $3000 на команду в месяц. Тут возможны подварианты с зависимостью процента, получаемого командой от самой суммы&nbsp;прибыли.</p>
<h2>Схема, основанная на уменьшении от максимальной величины&nbsp;бонуса</h2>
<p>Допустим, команда договаривается о максимальной сумме бонуса за спринт в&nbsp;$1000. Реальная сумма бонуса рассчитывается по следующей&nbsp;формуле:</p>
<p>$Реальная = $Максимальная * Фактор_1 * Фактор_2 * ... *&nbsp;Фактор_N</p>
<p>В самом простом случае каждый из факторов_N&nbsp;&mdash; это дробное число от 0 до 1, оценивающее достижение той&nbsp;или иной цели. Например, у&nbsp;нас есть следующие&nbsp;факторы:</p>
<ul>
&nbsp;
<li>Скорость</li>
&nbsp;
<li>Качество</li>
<li>Объем&nbsp;работ</li>
&nbsp;
<li>Дисциплина</li>
</ul>
<p>Если product owner совершенно удовлетворен скоростью работы команды в течении спринта, то этот фактор становится равным 1, если у него есть лишь небольшие замечания&nbsp;&mdash; 0.9, если заказчик скорее недоволен, чем доволен&nbsp;&mdash; 0.2 и&nbsp;т.д.  Точно также определяется значение для остальных факторов. Для примера, Скорость = 1, Качество = 0.6, Объем работ = 1, Дисциплина = 0.8. Получаем, что командный бонус будет равен $1000 * 1 * 0.6 * 1 * 0.8 =&nbsp;$480.</p>
<p>Мне кажется, что в случае этой схемы, оценки должны&nbsp;выставляться:</p>
<ol>
<li>Product&nbsp;Owner&#39;ом</li>
<li>Scrum Master&#39;ом отдельно от команды (особенно если он не принимает непосредственного участия в разработке, т.е. не пишет&nbsp;код)</li>
<li>Каждым членом&nbsp;команды</li>
</ol>
<p>Проблемными и подлежащими дискуссии считаются минимальные и максимальные значения оценок. Возможно, заказчик очень просил команду реализовать данный набор задач и команда сделала это, но пожертвовав качеством и побузев немного :) В таком случае будет честно, если команда сможет обговорить этот вопрос с заказчиком. Но опять&nbsp;же, не&nbsp;для того, чтобы каждый из&nbsp;них получил на $20 больше, а&nbsp;для того, чтобы выявить возможные проблемы в понимании, определении цели и средств проекта и &nbsp;т.д.</p>
<h2>Схема, основанная на удовлетворении нужд&nbsp;заказчика</h2>
<p>Какие&nbsp;бы параметры мы не выбирали для расчета, основной задачей является именно <strong>удовлетворение</strong> заказчика. Вы можете делать все супер быстро и с наивысшим качеством,   но если заказчик при этом все равно остается недоволен (заказчики разные бывают, ага), будет&nbsp;ли это честно, если команда потребует максимальную сумму бонуса? Или, например, команда реализовала все, что&nbsp;ОНА запланировала (никто, кроме команды, не имеет права решать, что войдет в текущий спринт, помним?), но&nbsp;при этом отказалась поработать 2 дня в режиме аврала, хотя это было критично для&nbsp;заказчика.</p>
<p>Я пытаюсь сказать, что числа числами, но даже если числа хороши&nbsp;&mdash; не факт, что в проекте все хорошо. Вы никогда не уходили с работу, на которой вас устраивала&nbsp;зарплата?</p>
<p>Сама схема проста: заказчик определяет сумму бонуса на основе того, насколько он удовлетворен работой команды и&nbsp;ее результатами. У этого подхода множество минусов, но несомненным плюсом является то, что такой подход может стимулировать диалог между product owner&#39;ом и командой, что, опять&nbsp;же, приведет к высветлению и обсуждению существующих проблем, а значит так&nbsp;или иначе к их&nbsp;решению.</p>
<h2>Схема с фиксированной&nbsp;оплатой</h2>
<p>Схема проста: по наступлении <span style="white-space:nowrap">какого-либо</span> события, будь то конец спринта&nbsp;или месяца, релиз продукта&nbsp;или каждый сотый клиент, команде начисляется определенная сумма. Самая простая и самая неэффективная с точки зрения мотивации бонусная схема. С одной стороны она все&nbsp;же позволяет заказчику поднять мотивацию команды (правда, как известно, мотивация деньгами&nbsp;&mdash; это самая слабая и самая кратковременная мотивация). С другой стороны, команда почти никак не может повлиять на факт начисления&nbsp;или неначисления&nbsp;бонусов.</p>
<p>Еще одним плюсом данной схемы, кроме ее простоты, является возможность для заказчика регулировать финансовые вложения в команду. Если финансы не позволяют заказчику провести очередной пересмотр заработной платы, то данная бонусная схема может быть идеальной. С одной стороны она-таки позволяет повысить доход членов команды при наличии такой возможности, с другой стороны, в случае, если такой возможности нет, лично я предпочел&nbsp;бы потерять бонус, чем члена команды&nbsp;или часть своей заработной платы. Вобщем, такой себе бюджетный вариантик&nbsp;:)</p>
<p>К сожалению, на данный момент это все, на&nbsp;что&nbsp;мы оказались способны. И к сожалению, ни одна из схем в чистом виде не&nbsp;подходит.</p>
<p>Если у&nbsp;вас есть варианты, которые могут нам подойти и&nbsp;вы соизволите оставить комментарий с описанием этих вариантов&nbsp;&mdash; будем премного&nbsp;благодарны.</p>
<p>Всем заранее большое спасибо! До встречи в комментариях&nbsp;:)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.laway.in.ua/common/4-options-of-bonus-schemas-for-scrum-team/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Экзамен на звание Certified Scrum&#160;Master</title>
		<link>http://blog.laway.in.ua/common/scrum-basics/certified-scrum-master-exam/</link>
		<comments>http://blog.laway.in.ua/common/scrum-basics/certified-scrum-master-exam/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 12:52:08 +0000</pubDate>
		<dc:creator>laway</dc:creator>
				<category><![CDATA[Основы Scrum]]></category>
		<category><![CDATA[CSM]]></category>
		<category><![CDATA[exams]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://blog.laway.in.ua/?p=152</guid>
		<description><![CDATA[Всем&#160;здравствуйте,
Сегодня вроде&#160;бы свершилось то, что планировалось уже на протяжении нескольких лет. Scrum Alliance выложил на своем сайте вопросы для сертификационного экзамена на звание Certified Scrum&#160;Master.
Ранее писалось, что экзаменовать по окончании классов начнут с&#160;1-го октября 2009 года и обещали вскоре выложить вопросы. Вот оно и&#160;случилось.
Даже если вы не планируете в ближайшее время сертифицироваться я&#160;бы посоветовал вам [...]]]></description>
			<content:encoded><![CDATA[<p>Всем&nbsp;здравствуйте,</p>
<p>Сегодня вроде&nbsp;бы свершилось то, что планировалось уже на протяжении нескольких лет. <a href="http://www.scrumalliance.org">Scrum Alliance</a> выложил на своем сайте <a href="http://www.scrumalliance.org/resources/968">вопросы для сертификационного экзамена на звание Certified Scrum&nbsp;Master</a>.</p>
<p><a href="http://www.scrumalliance.org/pages/certification_changes">Ранее писалось</a>, что экзаменовать по окончании классов начнут с&nbsp;1-го октября 2009 года и обещали вскоре выложить вопросы. Вот оно и&nbsp;случилось.</p>
<p>Даже если вы не планируете в ближайшее время сертифицироваться я&nbsp;бы посоветовал вам ознакомиться с вопросами экзамена, а&nbsp;для удобства предлагаю вам здесь переведенную на русский язык версию с небольшими комментариями. Поехали!&nbsp;:)</p>
<h2>1.&nbsp;Scrum</h2>
<p><strong>1.1 Укажите основные принципы Scrum, которые заложенные в основу эмпирического контроля процесса и которые реализуются частыми ревизиями и адаптированием прозрачных (transparent)&nbsp;артифактов.</strong></p>
<p>Если проще, какие основные принципы Scrum лежат в основе идеи <em>Inspect and Adapt</em>? Честно говоря не припомню, чтобы на CSM-классах упоминались слова &laquo;эмпирический контроль процесса&raquo;&nbsp;или &laquo;прозрачные артефакты&raquo;. По смыслу можно догадаться, что имеется ввиду ввиду опытный путь постоянного улучшения процесса и избавления от проблем. Первое, что приходит в голову&nbsp;&mdash; это <strong>ретроспективы</strong>: в конце спринта собрались всей командой (а если пригласите еще и представителей команды заказчика вообще супер будет), обсудили, какие задачи, которые ставились на прошлой ретроспективе были выполнены, обговорили и <strong>выписали на доску</strong> все положительные и отрицательные события с момента последней ретроспективы, для каждой записи вместе выработали меры, которые должны позволить развить успех и избавиться от найденных проблем, <strong>запланировали</strong> выполнение наиболее важных задач на следующий спринт. Примерный roadmap для&nbsp;ретроспективы.</p>
<p><strong>1.2 Опишите фреймворк Scrum, который реализует эмпирический контроль процессов с помощью timeboxing (ограничение по времени), совещаний и артефактов.&nbsp;</strong></p>
<p>Все описывать долго, а потому опишу кратко. В Scrum все ограничено по времени: выполнение отдельных задач, спринты, митинги и&nbsp;пр. Все совещания должны быть максимально короткими и эффективными: daily scrum, планирование, ретроспектива, демо. Главнейшими артефактами, позволяющими следить за ходом проекта являются <strong>burndown chart, sprint backlog</strong> и <strong>product&nbsp;backlog</strong>.</p>
<p><strong>1.3 Укажите элементы (практики) Scrum, реализованные в time-box&#39;ах, совещания и артефакты, и&nbsp;то, как&nbsp;они используются различными&nbsp;ролями.</strong></p>
<p>Daily scrum, ретроспектива, планирование, ревью (демо)&nbsp;&mdash; это митинги. Бэклоги и burndown chart&nbsp;&mdash; это&nbsp;артефакты.</p>
<h2>2.&nbsp;Артефакты</h2>
<p><strong>2.1 Укажите назначение, процесс производства и использования трех артефактов&nbsp;Scrum</strong></p>
<p>Артефакты&nbsp;&mdash; это product backlog, sprint backlog и burndown&nbsp;chart.</p>
<p>Product backlog постоянно содержится в порядке и пополняется/исправляется Product Owner. Элементами являются истории пользователя (user stories). Все элементы приоритизированы и, желательно, оценены в&nbsp;story points&nbsp;командой.</p>
<p>Sprint backlog&nbsp;&mdash; заполняется командой на основе скорости (velocity) команды и приоритетов. Берутся наиболее важные по оценке Product Owner&#39;а задачи из Product Backlog. Содержит&nbsp;<strong>задачи</strong>.</p>
<p>Burndown chart служит для отслеживания прогресса спринта. Содержит идеальный и реальный графики времени, необходимого для завершения всех целей спринта по&nbsp;дням.</p>
<p><strong>2.2 Укажите содержимое и способ заполнения Product backlog и&nbsp;как он&nbsp;приоритизируется.</strong></p>
<p>См. комментарий к&nbsp;п.2.1.</p>
<p><strong>2.3 Укажите техники работы с Product&nbsp;Backlog</strong></p>
<p>Вносить истории в product backlog могут все, но приоритеты расставляются только product owner&#39;ом. На каждом планировании спринта желательно оценить в&nbsp;story points размер всех историй, которые еще не имеют оценки с тем, чтобы product owner имел возможность рассчитать даты&nbsp;релизов.</p>
<p><strong>2.4 Опишите роль product backlog в митинге планирования&nbsp;спринта</strong></p>
<p>Product backlog является источником историй пользователей, которые обсуждаются командой, разбиваются на задачи и добавляются в sprint&nbsp;backlog.</p>
<p><strong>2.5 Укажите сожержимое и способ заполнения sprint backlog, и&nbsp;то, как&nbsp;он обновляется и поддерживается командой в течение&nbsp;спринта</strong></p>
<p>См.&nbsp;п.2.1.</p>
<p><strong>2.6 Опишите роль sprint backlog в daily&nbsp;scrum</strong></p>
<p>Из него команда выбирает задачи, над которыми будет работать в течение для и отмечает задачи, которые уже&nbsp;реализованы.</p>
<p><strong>2.7 Опишите способ создания burndown chart на основе sprint backlog и product&nbsp;backlog</strong></p>
<p>Рассчитывается сумма часов/story point всех задач/историй для&nbsp;sprint и product backlog соответственно. Это первая точка. Дальше в качестве точек на&nbsp;оси Х берутся дни&nbsp;или спринты и&nbsp;по&nbsp;оси Y отмечается новое значение суммы оставшихся часов/story&nbsp;points.</p>
<p><strong>2.8 Укажите 2 оси burndown&nbsp;chart</strong></p>
<p>Время по&nbsp;оси Х, количество оставшейся работы в часах&nbsp;или story point по оси&nbsp;Y</p>
<p><strong>2.9 Опишите, как&nbsp;на основе burndown chart можно построить тренды&nbsp;или&nbsp;прогнозы</strong></p>
<p>Линию графика, указывающую на реальный остаток работы можно аппроксимировать (продлить) и получить примерную дату, когда все задачи/истории будут реализованы. С помощью этой&nbsp;же аппроксимации можно рассчитать даты промежуточных&nbsp;релизов.</p>
<h2>3.&nbsp;Митинги</h2>
<h3><strong>3.1 Опишите как 4 scrum митинга реализуют проверку и адаптацию эмпирического процесса&nbsp;контроля</strong></h3>
<p><strong>3.1.1 Опишите механизмы sprint review (demo митинг) в проверке прогресса на пути к релизу&nbsp;или цели&nbsp;проекта</strong></p>
<p>По окончании спринта команда демонстрирует результаты выполнения задач, поставленных на&nbsp;спринт.</p>
<p><strong>3.1.2 Опишите роль митинга планирования в процессе инспектирования и адаптации в демо митинге  и оптимизации ценности релиза&nbsp;или&nbsp;проекта</strong></p>
<p>Хм...</p>
<p><strong>3.1.3 Опишите роль daily scrum в процессе инспектирования прогресса и принятии изменений для того, чтобы выполнить все цели&nbsp;спринта.</strong></p>
<p>Не жертвуем качеством. Если видим, что&nbsp;не успеваем (реальный burndown идет выше идеального) мы должны выбрать задачи, которые будут исключены из&nbsp;спринта.</p>
<p><strong>3.1.4 Опишите, как ретроспективный митинг реализует Inspect and Adapt принцип для постоянного улучшения&nbsp;процесса</strong></p>
<p>См.&nbsp;п.1.1</p>
<h3>3.2 Опишите как различные артефакты Scrum предоставляют прозрачность, необходимую для того, чтобы 4 основных митинга Scrum&nbsp;работали</h3>
<p>Все артефакты уже описаны в секции&nbsp;2.</p>
<p><strong>3.2.1 Опишите как Product Backlog и&nbsp;Sprint Backlog используются в митинге&nbsp;планирования</strong></p>
<p>см.&nbsp;п.2.1</p>
<h2>4.&nbsp;Роли</h2>
<p><strong>4.1 Опишите обязанности Product Owner и&nbsp;то, как Product Owner использует Product Backlog для выполнения этих&nbsp;обязанностей.</strong></p>
<p>Задача Product Owner&nbsp;&mdash; представлять интересы stakeholder&#39;ов и предоставлять информацию команде. Несмотря на&nbsp;то, что&nbsp;все могут вносить задачи в product backlog, только product owner имеет право расставлять приоритеты, тем самым обеспечивая то, что в первую очередь будут реализованы наиболее важные для проекта&nbsp;задачи.</p>
<p><strong>4.2 Опишите как Product Owner использует Sprint Planning и&nbsp;Sprint Review для оценки ценности релиза&nbsp;или проекта и ее&nbsp;оптимизации</strong></p>
<p>На планировании, заказчик сможет поменять приоритеты в случае, если для выполнения задачи нужно слишком много времени. На Sprint Review команда демонстрирует Product Owner&#39;у и stakeholder&#39;ам результаты своей работы с тем, чтобы они могли сразу предоставить комментарии по проделанной работе и направить проект в нужном направлении если проект отклонился от него&nbsp;или если цели проекта&nbsp;поменялись.</p>
<p><strong>4.3 Опишите обязанности Scrum Master, включая обязанность &laquo;агента по изменениям&raquo; и механизмы реализации этих изменений. Опишите, как&nbsp;Scrum Master взаимодействует с командой и product&nbsp;owner&#39;ом.</strong></p>
<p>Одна из главнейших задач Scrum Master&#39;а&nbsp;&mdash; это обеспечить спокойную работу команды на протяжении спринта с тем, чтобы команда могла реализовать все, что было запланирована. В частности, Scrum Master должен препятствовать внесению изменений в&nbsp;Sprint Backlog после того, как спринт уже начался. Если изменения срочные, то&nbsp;они должны быть внесены в Product Backlog с высоким приоритетом. Если изменения очень срочные, то product owner имеет право оборвать спринт и начать новый, но&nbsp;это обязательно включает в себя новый митинг&nbsp;планирования.</p>
<p><strong>4.4 Опишите обязанности команды и&nbsp;то, как команда взаимодействует со&nbsp;Scrum Master&#39;ом и Product&nbsp;Owner&#39;ом</strong></p>
<p>Основная задача команды&nbsp;&mdash; приносить бизнесc-value stakeholder&#39;ам. Она вправе требовать информацию от Product&nbsp;Owner&#39;а.</p>
<p><strong>4.5 Опишите влияние самоорганизованности и кросс-функциональности на команду и&nbsp;как&nbsp;эти принципы могут быть&nbsp;реализованы</strong></p>
<p>И самоорганизация, и кросс-функциональность необходимы для увеличения производительности команды. Достичь этих целей непросто и&nbsp;тут много факторов, особенно человеческих. Как минимум нужно иногда позволять команде ошибаться и позволять людям браться за задачи из области, где они не являются лучшими специалистами. И нет&nbsp;&mdash; Scrum Master не Project Manager, и&nbsp;он не должен управлять командой. Скорее он должен следить за тем, чтобы команда выполняла разработанные ею&nbsp;же&nbsp;правила.</p>
<p><strong>4.6 Объясните, как команда использует Sprint Backlog и&nbsp;Daily Scrum в процессе Inspect and Adapt чтобы увеличить вероятность выполнения всех целей&nbsp;спринта</strong></p>
<p>Об этом уже писалось выше. Основная идея в том, чтобы сделать проблему видимой всем участникам&nbsp;&mdash; тогда ее проще&nbsp;решить.</p>
<p>Вот и все, вопросы&nbsp;закончились.</p>
<p>Насколько я знаю, это не первый вариант экзамена на получение CSM. Scrum Alliance уже несколько лет пытается ввести экзамены, но каждый раз вопросы подвергаются жесткой критике со стороны общественности. Так что&nbsp;нет никакой гарантии, что ситуация не повторится и в этот раз. Тем не менее, эти вопросы формируют roadmap для изучения Scrum и позволяют вам понять, что и&nbsp;где вы упустили (например, я <span style="white-space:nowrap">что-то</span> упустил в пункте 3.1.2, и&nbsp;это только как&nbsp;минимум).</p>
<p>Всегда рад вашим комментариям и обещаю ответить на все! До новых встреч на&nbsp;блоге!</p>
<p><strong>Update 14-09-2009:</strong> Как я и подозревал, 11 сентября 2009 года на сайте <a href="http://scrumalliance.com">http://scrumalliance.com</a> появилась <a href="http://www.scrumalliance.org/resources/1054">информация</a> о том, что введение экзамена на звание Certified Scrum Masters в очередной раз отложено на неопределенный срок. На этот раз причиной называется то, что&nbsp;Scrum Alliance не успел завершить перевод/локализацию текста&nbsp;вопросов.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.laway.in.ua/common/scrum-basics/certified-scrum-master-exam/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Рефакторинг: 7 вариантов убеждения&#160;заказчика</title>
		<link>http://blog.laway.in.ua/practices/refactoring/refactoring-7-variantov-ubejdeniya-zakazchika/</link>
		<comments>http://blog.laway.in.ua/practices/refactoring/refactoring-7-variantov-ubejdeniya-zakazchika/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 19:25:46 +0000</pubDate>
		<dc:creator>laway</dc:creator>
				<category><![CDATA[Рефакторинг]]></category>
		<category><![CDATA[business value]]></category>
		<category><![CDATA[product owner]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://blog.laway.in.ua/?p=143</guid>
		<description><![CDATA[Всем доброе время суток, дорогие читатели&#160;:)
Пока я собираю материал и обдумываю аргументы для второй статьи по теме &#171;Scrum без...&#187; встретился с необходимостью убедить заказчика в необходимости отдельной сессии&#160;рефакторинга.
Да-да-да, мы всем в курсе того, что качеством жертвовать нельзя, а потому, чисто теоретически, не должно и возникать необходимости в отдельной фазе рефакторинга. Вот как&#160;это должно выглядеть в&#160;теории:

В [...]]]></description>
			<content:encoded><![CDATA[<p>Всем доброе время суток, дорогие читатели&nbsp;:)</p>
<p><img class="alignleft" style="border: 0pt none; margin: 10px;" title="if code smells" src="http://blog.laway.in.ua/img/yoda.jpg" alt="" width="240" height="175" />Пока я собираю материал и обдумываю аргументы для второй статьи по теме <em>&laquo;<a href="http://blog.laway.in.ua/practices/self-organising-team/scrum-without-self-organizing-team/">Scrum без...&raquo;</a></em> встретился с необходимостью убедить заказчика в необходимости отдельной сессии&nbsp;рефакторинга.</p>
<p>Да-да-да, мы всем в курсе того, что качеством жертвовать нельзя, а потому, чисто теоретически, не должно и возникать необходимости в отдельной фазе рефакторинга. Вот как&nbsp;это должно выглядеть в&nbsp;теории:</p>
<ol>
<li>В начале работы мы должны <strong>в общих чертах</strong> продумать&nbsp;архитектуру</li>
<li>Пока пишем код пишем и&nbsp;юнит-тесты</li>
<li>Как только встречаем <span style="white-space:nowrap">что-то</span>, что написано не красиво&nbsp;или просто не получается сделать в рамках текущей архитектуры&nbsp;&mdash; сразу рефакторим: при наличии юнит-тестов проблем возникнуть не&nbsp;должно.</li>
</ol>
<p>Но, если вы все-таки <strong>практикуете</strong> Scrum и, к тому&nbsp;же, живете в той&nbsp;же реальности, что и я могут возникнуть следующие&nbsp;проблемы:</p>
<ol>
<li>Основная идея проекта, на которую была рассчитана ваша архитектура изменилась и теперь всякое изменение дается с трудом. Пример: сначала хотим очень гибкую систему, которая могла&nbsp;бы служить единой платформой для всех заказчиков. Со временем понимаем, что пожелания этих заказчиков настолько различны, что  нет никакого смысла пытаться делать эту самую единую систему и куда проще (Keep It Simple Stupid&nbsp;&mdash; KISS) для каждого из заказчиков сделать отдельную&nbsp;систему.</li>
<li>Со вторым пунктом все ясно: хоть в теории только команда и может ставить сроки, на практике кроме команды есть еще куча людей, которые прямо-таки рвутся установить свои сроки, причем еще ни разу не встречал, чтобы настаивали на сроках бОльших, чем говорит команда. Обычно наоборот. Если у&nbsp;вас в компании есть хоть один сейлз вы 100% встречались с такой ситуацией, хотя, допускаю, что&nbsp;вы смогли отмахаться :) И хоть в теории мы и&nbsp;не должны жертвовать качеством, на практике и карьерой не хочется жертвовать, а потому из двух зол выбираем меньшее&nbsp;&mdash; отказываемся от&nbsp;юнит-тестов.</li>
<li>Этот пункт тоже связан с нехваткой времени. Поставлю золотой памятник тому, кто расскажет как в&nbsp;100% случаях убедить заказчика отложить релиз. А если уже запустили рекламу&nbsp;или заказчики уже договорились с субподрядчиками? И если та задача, которую вы ну никак не успеваете сделать, нужна кровь из носу и&nbsp;без&nbsp;нее проект никому вообще не нужен? Какие тут варианты, кроме как кроме юнит-тестов начать жертвовать и качеством (злорадно предупредив заказчика, что ничего путного из этого не&nbsp;выйдет).</li>
</ol>
<p>Одного из пунктов в принципе достаточно для того, чтобы код превратился в длинные полоски вермишели, понятия перемешались и чтобы в коде появилось множества комментариев&nbsp;типа:</p>
<ol>
<li>//&nbsp;Костыль</li>
<li>// Hardcode&nbsp;:(</li>
<li>// Пусть пока будет так&nbsp;&mdash; потом исправлю&nbsp;;)</li>
</ol>
<p>И с каждым таким комментарием растет цена на внесение изменений, что, рано&nbsp;или поздно заметит заказчик. Например, когда реализация истории по созданию странички FAQ по вашим оценкам займет половину всего времени, отведенного на спринт просто потому, что ваша CMS держится на честном слове и 80% времени уйдет на&nbsp;то, чтобы все&nbsp;перетестировать.</p>
<p>Итог этой части: хотя и нужно стремиться к тому, чтобы никогда и&nbsp;ни&nbsp;за&nbsp;что&nbsp;не жертвовать качеством, на практике иногда приходится делать именно это. Особенно в смутные времена финансового кризиса вряд&nbsp;ли <span style="white-space:nowrap">кому-то</span> хочется потерять работу&nbsp;или заказчика,&nbsp;или и&nbsp;то и другое сразу. А потому, после того как проекты сданы и планируется дальнейшее расширение функциональности, но конкретных задач еще нет, может появиться возможность исправить все проблемы с технической частью, проведя сессию рефакторинга и почистив и причесав&nbsp;код.</p>
<p>Уверен, что в 90% случаев у product owner&#39;а (или у&nbsp;его босса&nbsp;или у босса его босса :)) возникнет вопрос: зачем тратить неделю  [хотя бы]работы команды на <span style="white-space:nowrap">что-то</span> под названием рефакторинг, если &laquo;... и&nbsp;так все&nbsp;работает&raquo;.</p>
<p>В этой статье мы поговорим как&nbsp;раз о бизнес-обоснованиях сессии рефакторинга. Оговорюсь, что задача не только в необходимости убеждения product owner&#39;а в том, что такая сессия необходима, но и в том, что&nbsp;не должно быть работы просто ради работы&nbsp;&mdash; все должно приносить бизнес-value. Это тот самый критерий, по которому команда должна отбирать идеи для рефакторинга. <strong>В любой задаче, даже в задаче по рефакторингу системы, должно быть <span style="text-decoration: underline;">business-value</span></strong>. Если business value есть&nbsp;&mdash; задачу можно рассматривать для включения в сессию рефакторинга, если его нет&nbsp;&mdash; тогда и смысла в этом немного, и заказчика будет сложно убедить. Итак, 7 вариантов обоснования необходимости&nbsp;рефакторинга:</p>
<h2>Вариант №1: уменьшение стоимости внесения&nbsp;изменений</h2>
<p>Самый очевидный вариант и, в принципе, при желании любую задачу по рефакторингу можно, хотя&nbsp;бы и криво, подвести под&nbsp;эту аргументацию. Тут можно выделить 2 простых и очевидных&nbsp;правила:</p>
<ol>
<li>Вряд&nbsp;ли стоит рассматривать эту идею, если не предполагается никаких изменений в&nbsp;той части, которую вы хотите&nbsp;рефакторить.</li>
<li>Всегда нужно примерно сравнивать стоимость самих работ по рефакторингу и вероятность и частоту внесения изменений в&nbsp;ту область, с которой вы планируете работать. Если рефакторинг займет 5 человеко-недель, а&nbsp;за&nbsp;все время разработки проекта изменения в&nbsp;эту часть вносились лишь один раз... в общем вы поняли :) И да&nbsp;&mdash; в идеале всеми этими просчетами должен заниматься заказчик, но&nbsp;вы облегчите ему и себе жизнь, если сами подумаете об этом перед тем, как вызывать заказчика на&nbsp;2-х дневное совещание для обсуждения 257 идей для&nbsp;рефакторинга.</li>
</ol>
<h2>Вариант №2: поддержка новой&nbsp;функциональности</h2>
<p>Одним из основных принципов Scrum и&nbsp;Agile вообще в том, что&nbsp;сам заказчик никогда не может знать <strong>все</strong>, что&nbsp;ему нужно на самом деле. Например, он может попросить вас реализовать <em>&laquo;<span style="text-decoration: underline;">простую</span></em> систему отчетности&raquo;, а к концу проекта (мы говорим про после_авральную фазу,   помните? Жертвовать качеством можно <strong>только</strong> в том случае, если альтернативой являются только потеря рабочего места&nbsp;или заказчика) выяснится, что простая она <em>для него</em>, а&nbsp;вы таких графиков и в глаза никогда не видели, и даже предположить не могли, что такие вообще бывают. А потому, оглянувшись назад и заглянув вперед вы можете обнаружить, что рефакторинг системы отчетности даст вам, кроме всего прочего, возможность легко добавлять новые типы графиков. По-моему мнению, если задача по рефакторингу попадает под&nbsp;это условие ее нужно делать в 90 случаях из&nbsp;100. Особенно если вы уверены, что&nbsp;эта новая функциональность рано&nbsp;или поздно&nbsp;появится.</p>
<h2>Вариант №3: оптимизация&nbsp;системы</h2>
<p>Если вы такой молодец, что даже при аврале не пожертвовали непосредственно качеством продукта, то&nbsp;уж наверняка вы пожертвовали оптимизацией. А потому собственно оптимизация и может служить хорошим аргументом для включения задачи в фазу рефакторинга. Но, опять&nbsp;же, всегда нужно рассматривать целесообразность внесения тех&nbsp;или иных изменений. Если <span style="white-space:nowrap">какой-то</span> запрос выполняется 30 минут, но&nbsp;при этом он никак не влияет на действия пользователей и вообще выполняется один раз в сутки ночью, вряд&nbsp;ли имеет смысл переписывать его&nbsp;&mdash; уверен, вы сможете найти более важные и ценные&nbsp;задачи.</p>
<h2>Вариант №4: создание возможности для&nbsp;автоматизации</h2>
<p>Долго пытался сформулировать понятно и&nbsp;тем не менее не уверен, что получилось :) А потому объясню. Этот вариант можно рассматривать как симбиоз вариантв &laquo;поддержка новой функциональности&raquo; и &laquo;уменьшение стоимости внесения изменений&raquo;. Под этот вариант могут подойти все изменения, связанные с вынесением отдельных параметров в конфигурацию, реализация поддержки собственных простеньких скриптов&nbsp;или XML для описания последовательностей, правил и&nbsp;т.п.  как альтернатива жесткому хардкоду. Например, если у&nbsp;вас есть набор правил, по которому рассчитывается дата рассылки почты, то, возможно, имеет смысл реализовать более гибкий механизм, который позволил&nbsp;бы вам легко добавлять и изменять правила, а может даже позволил&nbsp;бы делать это самому заказчику. Они хоть и очень заняты, но часто любят собственноручно поучаствовать в работе. В качестве еще одного примера можно привести реализацию описания отчетов с помощью XML с тем, чтобы позже можно было позволить заказчикам самим составлять отчеты через пользовательский&nbsp;интерфейс.</p>
<h2>Вариант №5: вынесение общих частей систем в отдельную&nbsp;подсистему</h2>
<p>Часто случается, что у разных приложений есть много общего. Например, многие проекты занимаются отправкой почты и, возможно, имеет смысл вынести этот функционал в отдельную подсистему. Это имеет смысл делать только в&nbsp;том случае, если планируется поддерживать и развивать все проекты (или большинство проектов), которые вы планируете перевести на новую подсистему. Ценностью для заказчика в данном случае будет уменьшение стоимости внесения изменений, т.к. при расширении функционала подсистемы все использующие ее проекты автоматически получат возможность использовать новую функциональности (я уже не говорю об исправлениях ошибок), и поддержка новой функциональности. Отдельным примером может служить вынесение общего функционала в элементы управления, используемые во многих местах&nbsp;приложения.</p>
<h2>Вариант №6: улучшение пользовательского&nbsp;интерфейса</h2>
<p>Примером тут может служить оптимизация верстки, чтобы страницы грузились быстрее, перевод пользовательского интерфейса на&nbsp;Ajax, чтобы работать с приложением было удобнее и&nbsp;т.п.  Здесь следует иметь ввиду, что, выбирая между хорошим функционалом с плохим интерфейсом и плохим функционалом с великолепным интерфейсом, большинство пользователей предпочтут первое. С другой стороны, если есть серьезные проблемы с интерфейсом&nbsp;&mdash; этим нужно&nbsp;заняться.</p>
<h2>Вариант №7: переход на новую&nbsp;технологию/версию</h2>
<p>В случае желания перейти на новую технологию&nbsp;или новую версию этой&nbsp;же технологию всегда нужно задаться двумя&nbsp;вопросами:</p>
<ol>
<li>Что команду не устраивает в данной версии и&nbsp;не проявится&nbsp;ли это <span style="white-space:nowrap">что-то</span> и после&nbsp;изменения</li>
<li>Какие проблемы сулит собственно&nbsp;переход</li>
</ol>
<p>Эти вопросы помогут выяснить необходимость перехода со стороны команды, но, что более важно, должно быть <span style="white-space:nowrap">что-то</span>, что будет иметь ценность для клиента. Вот только несколько&nbsp;вариантов:</p>
<ol>
<li>Безопаснее. Например, использовать последнюю версию нужно потому, что в старой найдены критические уязвимости. В наш век, когда существует понятие &laquo;вечной бета-версии&raquo; (практически все продукты Google, например), это может оказаться серьезным&nbsp;доводом</li>
<li>Быстрее. Редкий релиз новой версии не сопровождается словами &laquo;теперь это работает в N раз быстрее&raquo;. Это связано с вариантом &laquo;оптимизация&nbsp;системы&raquo;</li>
<li>Возможность использовать функционал, который отсутствует в текущей версии/технологии. Что важно&nbsp;&mdash; этот функционал должен быть востребован в первую очередь заказчиком. Под это подходят все перечисленные выше и ниже&nbsp;варианты</li>
</ol>
<p>Как и&nbsp;все статьи на этом блоге, эта статья не претендует ни&nbsp;на энциклопедичность, ни&nbsp;на полноту изложения, ни&nbsp;на работоспособность во всех возможных случаях. Все эти варианты использовались мной в личной практике (правда, слава Богу не&nbsp;для того, чтобы аргументировать product owner&#39;у необходимость рефакторинга, а&nbsp;для убеждения боса боса product owner&#39;а :)) и&nbsp;все имели ценность для <strong>моей</strong> команды и&nbsp;для <strong>моего</strong> заказчика.А потому, если у&nbsp;вас есть вопросы, мнения, критика и&nbsp;пр. прошу высказываться в&nbsp;комментариях!</p>
<p>До новых&nbsp;встреч!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.laway.in.ua/practices/refactoring/refactoring-7-variantov-ubejdeniya-zakazchika/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scrum без самоорганизовывающейся&#160;команды</title>
		<link>http://blog.laway.in.ua/practices/self-organising-team/scrum-without-self-organizing-team/</link>
		<comments>http://blog.laway.in.ua/practices/self-organising-team/scrum-without-self-organizing-team/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 21:48:48 +0000</pubDate>
		<dc:creator>laway</dc:creator>
				<category><![CDATA[Self-Organising Team]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[команда]]></category>
		<category><![CDATA[Организация]]></category>
		<category><![CDATA[самоорганизация]]></category>

		<guid isPermaLink="false">http://blog.laway.in.ua/?p=137</guid>
		<description><![CDATA[Доброе время суток, уважаемые&#160;читатели.
Сегодня хочу поговорить вот о чем. Когда мы говорим о практиках Scrum мы часто подразумеваем, что&#160;все они необходимы и упаси боже что-то упустить&#160;&#8212; и&#160;Scrum уже не такой уж и&#160;Scrum, и другие Scrum-мастера уже коситься начинают, ну и прочие не очень приятные вещи происходят. Есть замечательная статья под названием &#171;Когда Scrum не похож [...]]]></description>
			<content:encoded><![CDATA[<p>Доброе время суток, уважаемые&nbsp;читатели.</p>
<p>Сегодня хочу поговорить вот о чем. Когда мы говорим о практиках <strong>Scrum</strong> мы часто подразумеваем, что&nbsp;все они необходимы и упаси боже <span style="white-space:nowrap">что-то</span> упустить&nbsp;&mdash; и&nbsp;Scrum уже не такой уж и&nbsp;Scrum, и другие Scrum-мастера уже коситься начинают, ну и прочие не очень приятные вещи происходят. Есть замечательная статья под названием &laquo;<a href="http://tim.com.ua/2009/05/when-is-scrum-not-scrum/">Когда Scrum не похож на Scrum</a>&raquo;, в которой автор бегло пробегается по некоторым принципам, описанным в <em>классической литературе по Scrum</em> и показывает, что&nbsp;без некоторых из&nbsp;них вполне можно обойтись. В этой статье (и возможно в последующих статьях) я хочу более детально посмотреть на основные принципы Scrum с точки зрения &laquo;а что если без этого&raquo;. Зачем это нужно? Ну, я вижу несколько применений подобным&nbsp;знаниям:</p>
<ol>
<li>Если вы только начинаете работать по&nbsp;Scrum вам следует сосредоточиться на самых важных принципах, без которых Scrum не просто не&nbsp;Scrum, а&nbsp;без которых <strong>основные идеи Scrum</strong> просто перестают&nbsp;работать.</li>
<li>Если вы уже работаете по&nbsp;Scrum, но кризис (да, <a href="http://blog.laway.in.ua/common/scrum-basics/scrum-and-crisis/">опять о кризисе</a>) уже затронул вашего заказчика, то наверняка ваши действия будут так&nbsp;или иначе направлены на повышение производительности и, может быть, с помощью этой статьи (или этих статей) вы сможете найти способ оптимизации&nbsp;процесса.</li>
<li>Если вы уже работаете по&nbsp;Scrum, но <span style="white-space:nowrap">какие-то</span> из практик вы посчитали не нужными&nbsp;или не применимыми, то возможно эти статьи заставят вас пересмотреть вашу точку зрения и сделать еще один виток в вечно кружащемся Inspect &amp; Adopt&nbsp;:)</li>
</ol>
<p>Здесь я хочу кое-что оговорить. Обещаю, это последнее лирическое отсупление от темы данной статьи, сразу после него я перейду непосредственно к рассмотрению поднятого вопроса. Оговорка следующая: сейчас, когда я пишу эти строки я, как и&nbsp;вы, еще не знаю, что будет написано дальше и к каким выводам я приду. Просто мне стало интересно (а еще показалось важным) разобраться в том, что в&nbsp;Scrum наиболее важно, а&nbsp;чем можно пренебречь. Можете назвать это расстановкой приоритетов. Я сейчас делаю то, что, возможно, делали&nbsp;бы вы если&nbsp;бы всерьез занялись поднятым вопросом: просматриваю блоги и форумы, обращаюсь к своей практике, советуюсь с другими CSM и&nbsp;т.д.  А потому хочу подчеркнуть, что&nbsp;все сказанное есть лишь мое мнение и&nbsp;вы вправе согласиться&nbsp;или не согласиться с ним. И, <span style="white-space:nowrap">вообще-то</span>, будет очень классно, если вы сделаете это в комментариях :) Зачем мы часто релизим наши продукты? Для того, чтобы часто получать отзыв заказчика, чтобы, в свою очередь, заказчик получил то, что&nbsp;ему действительно нужно. Так что даже если вам нечего сказать в комментариях на блоге действует система рейтингов (угу, вооон те звездочки в конце статьи и&nbsp;под каждым из комментариев) и я был&nbsp;бы очень признателен даже за такой бессловный отзыв&nbsp;:)</p>
<p>Вот. Итак&nbsp;&mdash; основной вопрос: <strong>Может&nbsp;ли Scrum работать, когда нет самоорганизующейся&nbsp;команды</strong>?</p>
<p>В статье я рассмотрю несколько точек зрения на вопрос, а&nbsp;под конец постараюсь сделать&nbsp;вывод.</p>
<p>Для начала давайте расставим приоритеты. Давайте возьмем <strong>3 принципа Scrum</strong>, о которых обычно упоминают в первую&nbsp;очередь:</p>
<ol>
<li>Частые релизы и итеративный процесс разработки: нужны для того, чтобы часто получать отзывы пользователей и, соответственно, подправлять направление развития проекта. <strong>Корректировка курса развития&nbsp;проекта.</strong></li>
<li>Фиксируем качество, позволяя заказчику изменять только scope: делаем для самих&nbsp;же заказчиков, ибо часто они не понимают, что исправление ошибок в проекте, который уже активно используется намного дороже, чем сохранения отличного качества продукта на всех итерациях разработки. <strong>Высокое качество&nbsp;продукта.</strong></li>
<li>Самоорганизующаяся команда: скорее всего, именно такая команда сможет работать наиболее эффективно и качественно, будет быстро приспосабливаться к меняющимся условиям и будет способной быстро реагировать на новые и изменяющиеся требования. <strong>Быстрая реакция на&nbsp;изменения.</strong></li>
</ol>
<p> <strong></strong>Из каждой из практик я попытался выделить <strong>цель</strong>, для <strong></strong>выполнения которой они предназначены и убрать из определения то, <strong>как</strong> эта цель должна быть достигнута. А теперь обычная задача любого менеджера: представьте, что всех трех целей достингуть ну никак нельзя и&nbsp;вам нужно выбрать только 2, на которых вы сосредоточите свои усилия. Итак, у&nbsp;вас есть следующие&nbsp;варианты:</p>
<ol>
<li>Вы быстро и с высоким качеством получите то, что&nbsp;вам не&nbsp;нужно</li>
<li>Вы быстро получите то, что&nbsp;вам нужно, но&nbsp;при этом о качестве продукта говорить не&nbsp;приходится</li>
<li>Вы получаете то, что хотите и с отменным качеством, однако не&nbsp;так быстро, как <strong>может быть</strong> могли&nbsp;бы&nbsp;получить</li>
</ol>
<p>Мое мнение, что несмотря на&nbsp;то, что идея самоорганизовующейся команды (СК) и входит в&nbsp;TOP-3 идей Scrum, она находится на последнем 3-ем месте. И еще. Навскидку, скажите, что&nbsp;еще можно использовать для того, чтобы быть увереным в том, что проект развивается в нужном направлении, кроме как постоянно спрашивать мнение заказчика? Как минимум на вскидку я&nbsp;не скажу. А как можно сохранять высокое качество продукта, кроме как запретить жертвовать им? Тоже не тривиальная задача. А как можно повысить эффективность работы команды? <strong>МИЛЛИОН вариантов!</strong> Начиная от бесплатного кофе, через новую технику и софт и оптимизацию процесса и&nbsp;до треннингов и курсов. Как минимум есть&nbsp;выбор.</p>
<p>Следующий вопрос: давайте рассмотрим команду из 10 человек. Можно&nbsp;ли назвать эту команду самоорганизовующейся, если в самоорганизации принимают участие только 9 человек? А если только 8? А 7? Как мне кажется (и гугл говорит, что&nbsp;мне не одному кажется:), что полностью самоорганизовующаяся команда&nbsp;&mdash; это красивый и&nbsp;на практике очень редко достижимый миф. Это отличная идея и, скорее всего, нужно стремиться к тому, чтобы команда сама собой управляла, но скольким мы готовы пожертвовать ради этого? Ну например, готовы&nbsp;ли вы уволить отличного программиста, который знает все ваши продукты просто потому, что&nbsp;он не желает самоорганизовываться. А если у&nbsp;вас отличная команда из 10 человек и&nbsp;ни один из&nbsp;них не может&nbsp;или не хочет организовывать работу предпочитая, чтобы это делали за них? Можно&nbsp;ли говорить, что производительность будет&nbsp;низкой?</p>
<p>И последний момент на сегодня: далеко не факт, что производительность прямо пропорциональна уровню возможностей для самоорганизации. Единственная очевидная для меня прямая зависимость существует лишь между возможностью самоорганизоваться и <strong>мотивацией</strong>. Это немаловажно, но есть и другие пути мотивации сотрудников и, если по какой&nbsp;либо причине не получается достичь высокой самоорганизованности, то, возможно, следует избрать другие&nbsp;пути.</p>
<p>Я&nbsp;бы хотел сделать следующий вывод. Реализация идеи самоорганизовывающейся команды замечательна, но&nbsp;ее очень нелегко реализовать на практике. Более того, во многих случаях <strong>цель</strong> принципа самоорганизации&nbsp;&mdash; высокая производительность&nbsp;&mdash; может быть с большим успехом достигнута другими средствами. Другими словами: если у&nbsp;вас самоорганизовывающаяся команда&nbsp;&mdash; у&nbsp;вас высокая производительность, но если у&nbsp;вас высокая производительность&nbsp;&mdash; это еще не значит, что у&nbsp;вас самоорганизовывающаяся команда. Мое мнение&nbsp;&mdash; Scrum может оставаться Scrum&#39;ом и&nbsp;без самоорганизовывающейся команды. И, будучи поставленным перед выбором, я&nbsp;бы выбрал цели №1 и&nbsp;№2, пожертвовав целью номер 3. Хотя идеалы и нужны на&nbsp;то, чтобы к&nbsp;ним стремиться&nbsp;:)</p>
<p>Жду вашего мнения в комментариях! До скорых&nbsp;встреч.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.laway.in.ua/practices/self-organising-team/scrum-without-self-organizing-team/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Story points vs Ideal hours vs&#160;man/hours</title>
		<link>http://blog.laway.in.ua/practices/story-points/story-points-vs-ideal-hours-vs-manhours/</link>
		<comments>http://blog.laway.in.ua/practices/story-points/story-points-vs-ideal-hours-vs-manhours/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 17:52:59 +0000</pubDate>
		<dc:creator>laway</dc:creator>
				<category><![CDATA[Story points]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[sprint]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[идеальный час]]></category>
		<category><![CDATA[планирование]]></category>
		<category><![CDATA[релиз]]></category>
		<category><![CDATA[человеко-час]]></category>

		<guid isPermaLink="false">http://blog.laway.in.ua/?p=125</guid>
		<description><![CDATA[Здравствуйте,
Тема сегодняшней статьи навеяна долгой дискуссией с коллегами по поводу нужности, важности и вообще применимости такого инструмента планирования, как story&#160;point.
В частности, спор велся о том, что лучше и легче использовать&#160;&#8212; story points, идеальные часы или реальные человеко-часы. Давайте начнем сравнение с того, что дадим определение каждому из&#160;инструментов.
Человеко-час:  это количество работы, выполняемой средним работником за один&#160;час.
Идеальный [...]]]></description>
			<content:encoded><![CDATA[<p>Здравствуйте,</p>
<p><img class="alignleft" src="http://blog.laway.in.ua/img/clock.jpg" alt="" width="362" height="310" />Тема сегодняшней статьи навеяна долгой дискуссией с коллегами по поводу нужности, важности и вообще применимости такого инструмента планирования, как <strong>story&nbsp;point</strong>.</p>
<p>В частности, спор велся о том, что лучше и легче использовать&nbsp;&mdash; <strong>story points</strong>, <strong>идеальные часы</strong> или <strong>реальные человеко-часы</strong>. Давайте начнем сравнение с того, что дадим определение каждому из&nbsp;инструментов.</p>
<p><strong>Человеко-час</strong>:  это количество работы, выполняемой средним работником за один&nbsp;час.</p>
<p><strong>Идеальный час</strong>: количество часов в день, которые работник тратит на непосредственное выполнения задач перед&nbsp;ним поставленных. В эти часы не входят всякого рода чаепития, совещания, игры в&nbsp;Quake3 и прочие, не очень относящиеся&nbsp;или совсем не относящиеся к работе занятия. В очень хорошем случае у&nbsp;вас в одном рабочем дне будет 7 идеальных часов. Нижней границы нет: в некоторых особо запущенных проектах хорошо, если их&nbsp;3-4.</p>
<p><strong>Story point</strong>: единицы <strong>относительного размера</strong>, используемые в оценке требований как альтернатива единицам времени. Story points&nbsp;&mdash; единицы измерения <strong>сложности</strong> или <strong>размера</strong> требования, а&nbsp;не количества времени, требуемого для реализации&nbsp;требования.</p>
<p>А теперь ответьте, пожалуйста, на вопрос: что лучше подходит для оценки, ну скажем, необходимой мощности трансформатора: вольты&nbsp;или амперы? Ну&nbsp;или если электричество в свое время прошло мимо вас, что лучше подходит для оценки красоты здания: количество используемых цветов&nbsp;или площадь поверхности под&nbsp;витражами?</p>
<p>Для тех, кто не понял, к чему я клоню скажу прямо: story point нельзя сравнивать ни с человеко-часами, ни с идеальными часами&nbsp;&mdash; это совершенно разные инструменты. Идеальные часы и часы&nbsp;&mdash; сравнивайте на здоровье, даже формула есть для конвертации одного в другое. Но поскольку блог о <strong>Scrum</strong>, далее мы поговорим об идеальных часах и&nbsp;story point, о том, как&nbsp;они могут и должны использоваться в одной и той&nbsp;же&nbsp;команде.</p>
<p>Если вы хоть раз принимали участие в Scrum-треннинге, вам наверняка приводили такой пример: вам показывали ближайшее здание и спрашивали ваши соображения насчет его высоты. После сравнительно небольшой паузы вы наверняка выдавали число, причем понятия не имели насколько оно соответствует действительности. А потом вам показывали второе здание и спрашивали, насколько первое здание выше&nbsp;или ниже второго. Тут вы наверняка быстро и уверенно отвечали на&nbsp;вопрос.</p>
<p>В этом, собственно, и заключен основной принцип story point. Человеческий мозг устроен таким образом, что&nbsp;ему легче сравнивать, чем оперировать абсолютными&nbsp;величинами.</p>
<p>Теперь об идеальных часах. Оценка в идеальных часах делается следующим образом: сначала делается оценка в идеальных часах, а потом вы умножаете полученное значение на определенный коэффициент в итоге получая оценку в реальных часах. Коэффициент рассчитать просто&nbsp;&mdash; посчитайте сколько времени из 8 рабочих часов в день вы тратите непосредственно на работу, а потом разделите 8 на&nbsp;это значение.&nbsp;Пример:</p>
<p>Допустим, за день я&nbsp;успеваю:</p>
<ol>
<li>Daily scrum&nbsp;&mdash; 15&nbsp;минут</li>
<li>2 партии в&nbsp;Quake3 по 15 минут&nbsp;каждая</li>
<li>Каждый час выхожу покурить по 5 минут каждый из&nbsp;перекуров</li>
<li>В среднем меня отрывают от работы 5 раз за день, каждый раз на 5&nbsp;минут</li>
</ol>
<p>Итого:  15 + 30 + 40 + 25 = 110 минут ~ 2 часа. Т.е. в моем случае коэффициент пересчета будет равен 1.333. Таким образом, если я считаю, что&nbsp;на задачу нужно потратить 12 часов, на&nbsp;ее выполнение я планирую&nbsp;16.</p>
<p>Если у&nbsp;вас возник вопрос зачем&nbsp;же все-таки нужны story points, если есть идеальные часы, то именно сейчас вы получите ответ на этот&nbsp;вопрос.</p>
<p>В проекте, который разрабатывается по&nbsp;Scrum есть несколько видов детализации задач: <strong>user stories</strong> и, собственно, задачи&nbsp;или&nbsp;<strong>task</strong>&#39;и.</p>
<p>User stories&nbsp;&mdash; это большие и концептуальные описания требований на очень высоком уровне.&nbsp;Пример:</p>
<blockquote>
<p>В качестве пользователя системы Google Reader я могу импортировать все свои RSS-ленты с использованием OPML для того, чтобы я&nbsp;мог читать их с использованием этой&nbsp;системы.</p>
</blockquote>
<p>Story points используются для оценки именно user stories. И тому есть несколько&nbsp;причин:</p>
<ol>
<li>Поскольку user stories обычно очень велики их долго точно оценить в&nbsp;часах</li>
<li>Поскольку <a href="http://blog.laway.in.ua/practices/the-power-of-open-ended-requirements/">user stories специально не содержат всех деталей</a> их очень сложно точно оценить в&nbsp;часах.</li>
</ol>
<p>Story points&nbsp;&mdash; это инструмент для планирования релизов&nbsp;&mdash; как окончательных, так и промежуточных. Для этого вам нужно собрать статистику, сколько story points &laquo;сжигает&raquo; команда за один спринт&nbsp;&mdash; вы получите так называемую <strong>velocity</strong>. Далее, просуммировав story points во всем product backlog и разделив это значение на velocity вы получите количество спринтов, необходимое для того, чтобы реализовать все требования в product backlog <strong>на текущий момент (!!!).</strong> Вот это &laquo;на текущий момент&raquo; очень важно. Дело в том, что&nbsp;Scrum не только не запрещает вносить новые требования и изменять существующие, но и поощрает это. А потому и даты релизов могут меняться, а значит вам нужен <strong>быстрый</strong> и относительно <strong>точный</strong> инструмент для этих расчетов. Конечно, вы можете потратить неделю составляя детальный Gaant chart и оказаться очень разочарованным когда неделя вашей работы пойдет на смарку из-за отклонений ваших оценок от действительности и из-за изменений требований&nbsp;проекта.</p>
<p>После того, как релизы спланированы можно переходить к планированию спринта, и&nbsp;тут нужны уже идеальные часы: Story points <em>могут</em> оказаться для&nbsp;вас слишком грубым инструментом для планирования на такой непродолжительный срок как 1-4&nbsp;недели.</p>
<p>Здесь хотелось&nbsp;бы оговориться особенно: лично я использую story points и&nbsp;для <strong>планирования спринтов</strong>. Уже минимум полгода команда показывает приблизительно постоянную velocity, все привыкли и прочувствовали понятие story point и, как показывает практика, это работает, как минимум для моей команды. Planning meeting для&nbsp;нас в первую очередь необходим для получения деталей историй, которые мы хотим реализовать и&nbsp;для разбиения этих историй на задачи, которые мы так&nbsp;же оцениваем в story&nbsp;points.</p>
<p>Честно говоря, я несколько раз слышал от различных тренеров о том, что&nbsp;так делать неправильно, но пока не могу ни понять причин этого, ни найти <span style="white-space:nowrap">какой-нибудь</span> материал, который&nbsp;бы объяснял почему нельзя планировать спринт использую story points. Жду ваших&nbsp;комментариев!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.laway.in.ua/practices/story-points/story-points-vs-ideal-hours-vs-manhours/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Scrum и&#160;кризис</title>
		<link>http://blog.laway.in.ua/common/scrum-basics/scrum-and-crisis/</link>
		<comments>http://blog.laway.in.ua/common/scrum-basics/scrum-and-crisis/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 21:17:30 +0000</pubDate>
		<dc:creator>laway</dc:creator>
				<category><![CDATA[Основы Scrum]]></category>
		<category><![CDATA[Burndown Chart]]></category>
		<category><![CDATA[product backlog]]></category>
		<category><![CDATA[product owner]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[sprint]]></category>
		<category><![CDATA[заказчик]]></category>
		<category><![CDATA[команда]]></category>
		<category><![CDATA[финансовый кризис]]></category>

		<guid isPermaLink="false">http://blog.laway.in.ua/?p=112</guid>
		<description><![CDATA[Здравствуйте,
Во время, когда в стране, да и&#160;во всем мире, бушует кризис, я&#160;не&#160;мог пройти мимо этой темы. Тем более, что&#160;мне на глаза попалась отличная статья Rafael Sabbagh Armony и&#160;Marcos Garrido. А потому сразу&#160;же было решено заняться ее переводом. Что получилось смотрите ниже по тексту. А еще ниже текста статьи форма для комментирования, куда я&#160;вас и приглашаю [...]]]></description>
			<content:encoded><![CDATA[<p>Здравствуйте,</p>
<p>Во время, когда в стране, да и&nbsp;во всем мире, бушует кризис, я&nbsp;не&nbsp;мог пройти мимо этой темы. Тем более, что&nbsp;мне на глаза попалась отличная статья Rafael Sabbagh Armony и&nbsp;Marcos Garrido. А потому сразу&nbsp;же было решено заняться ее переводом. Что получилось смотрите ниже по тексту. А еще ниже текста статьи форма для комментирования, куда я&nbsp;вас и приглашаю после&nbsp;прочтения</p>
<p>Мир столкнулся с самым тяжелыми финансовым кризисом в истории. Многие европейские страны, США и Япония уже в состоянии рецессии. Международный Валютный Фонд недавно заявил, что рецессия еще продолжает развиваться и&nbsp;что восстановление будет более медленным, чем в&nbsp;это было в прошлом. Как следствие, страны с развивающейся экономикой, такие как Индия и Бразилия, пострадают от массивного оттока капитала. МВФ в своем прогнозе также заявил, что мировая экономика сократится на 1.3 процента в 2009&nbsp;году.</p>
<p>Forrester и Gartner предсказали, что объем инвестиций в&nbsp;2009 году уменьшится на 3%&nbsp;или 4% соответственно. В частности, затраты на IT-сервисы упадут в этом году. Такие компании, как Toshiba и&nbsp;Nokie недавно отчитались об убытках&nbsp;или значительном снижении прибыли и о своих планах уволить тысячи сотрудников. Резко упала цена на акции Intel. Даже такой гигант как Google, который до этого казался непоколебимым, отчитался о первом за&nbsp;всю историю снижении прибыли за квартал и сократил сотни рабочих&nbsp;мест.</p>
<p><strong>Новый сценарий для&nbsp;Проектов</strong></p>
<p>В таких условиях неизвестности и постоянных изменениях, игроки на рынке проектов встречаются с проблемами более рационального использования ресурсов, ограниченного доступа к кредитам и финансовые проблемы с большинством заказчиков. Процесс принятия решений становится более долгим, а спрос на проекты заметно спадает. Чтобы выжить, организациям приходится изменять то, как&nbsp;они работают. Необходимо действительное изменение подходов к работе. Выживающие IT-организации демонстрируют следующие&nbsp;качества:</p>
<ul>
<li>Качественная работа в быстро изменяющихся условиях, позволяющая частое&nbsp;перепланирование</li>
<li>Курс на максимальное увеличение возврата&nbsp;инвестиций</li>
<li>Помощь в уменьшении time-to-production и&nbsp;time-to-market</li>
<li>Избегание затраты усилий и времени на подпродукты и функциональность, которые никогда не будут&nbsp;использоваться</li>
<li>Постоянная доставка ценностей клиенту, даже если проект должен быть приостановлен перед тем, как он&nbsp;окончится</li>
<li>Увеличение и улучшение коммуникации и обратной связи между stakeholder&#39;ами, чтобы люди знали что должно быть сделано и&nbsp;что делается&nbsp;сейчас</li>
</ul>
<p>Scrum&nbsp;&mdash; это фреймворк, который как&nbsp;раз сфокусирован на достижение этих качеств. Scrum&nbsp;&mdash; лучший выбор во времена&nbsp;кризиса.</p>
<p><strong>Почему&nbsp;Scrum?</strong></p>
<p>Давайте взглянем на игроков на рынке проектов в контексте финансового&nbsp;кризиса:</p>
<ol>
<li>Организация&nbsp;или группа, которая предоставляет сервис. Она должна усилить конкурентоспособность с тем, чтобы не потерять клиентов: как внутренних, так и&nbsp;внешних</li>
<li>Директор&nbsp;или менеджер должен сократить операционные расходы, чтобы его организация могла выжить. Он выбирает внутренние проекты, сфокусированные на получение лучших&nbsp;результатов</li>
<li>Клиенту нужно аутсорсить, но&nbsp;ему также нужно сократить расходы, чтобы поддерживать их&nbsp;жизнеспособность</li>
</ol>
<p>Мы предоставим важные аргументы, чтобы помочь всем этим людям (а также другим людям, в чьих полномочиях принимать решения&nbsp;или влиять на принятие решения) защитить выбор Scrum как фреймворка для&nbsp;их организаций в неспокойное&nbsp;время.</p>
<p><strong>Нет&nbsp;растратам!</strong></p>
<p>В традиционных методологиях значительная часть затрат времени и финансов тратятся на создание и поддержку массивных документов. Однако, будучи законченными, эти артифакты редко обновляются настолько часто, насколько это требуется, потому, что изменения происходят быстрее, чем команда может обновлять эти артефакты, чтобы поддерживать их актуальность. В итоге большая часть из этих документов становится бесполезной и, в конце концов, их просто перестают&nbsp;обновлять.</p>
<p>В своей книге &laquo;The enterprise and Scrum&raquo; Schwaber утверждает, что в среднестатистическом проекте порядка 50% времени (и денег) тратятся на требования, архитектуру, спецификации, и&nbsp;все это делается до того, как функциональность начнет реализовываться. Однако 35% запросов на изменение требований и 65% функционала, описанного в требованиях,&nbsp;либо используются очень редко,&nbsp;либо вообще не используются. Во время кризиса такая растрата времени и усилий&nbsp;неприемлема.</p>
<p>Scrum напоминает нам, что цель проекта&nbsp;&mdash; это продукт, а&nbsp;не документация. В Scrum, желаемый функционал регистрируется в приоритизированном списке, который называется Product Backlog. Детальные требования и архитектура для каждого из требований в этом динамическом списке определяется всего за несколько недель перед тем, как начнется реальная работа по выполнению этих требований. Во время разработки проекта требования могут добавляться, удаляться, может изменяться их приоритет. Они всегда содержатся в порядке приоритета. В конце каждой ограниченной по времени итерации,&nbsp;или спринта (sprint), заказчику доставляется ряд реализованных требований. Поэтому у этих требований намного больше шансов быть действительно нужным клиенту, вне зависимости от того, какие именно требования были&nbsp;реализованы.</p>
<p><strong>Самое важное&nbsp;&mdash; в первую&nbsp;очередь!</strong></p>
<p>В типичном waterfall-проекте, клиент может прождать год, чтобы впервые увидеть законченный продукт и начать возвращать свои инвестиции. При сегодняшних экономических условиях не всегда компании могут так долго&nbsp;ждать.</p>
<p>С другой стороны, в случае Scrum возврат инвестиций увеличивается в конце каждого спринта. Одна из главных ролей Product Owner&#39;а в том, чтобы максимизировать возврат инвестиций с помощью постоянного обновления и приоритизации Product Backlog&#39;а. Это позволяет наиболее ценным требованиям быть реализованными в первую очередь. Приоритизация product backlog на основе ценности того&nbsp;или иного требования позволяет организации оставаться конкурентноспособной, поставляя результат клиентам быстрее, чем конкурирующие организации, вводя в строй новый наиболее важный для&nbsp;их бизнеса функционал быстрее,&nbsp;или запуская проекты&nbsp;или выпуская новые версии чаще, так, что&nbsp;они постоянно соответствуют неизбежным изменениям&nbsp;рынка.</p>
<p><strong>Да придут&nbsp;изменения!</strong></p>
<p>Говоря о неизбежных изменениях рынка, если время, когда изменения рынка происходят быстрее и чаще, чем во время кризиса. Создаются новые законы и нормы, изменяются правила ведения бизнеса, появляются новые возможности, важные игроки покидают рынок, ранее доступные бюджеты становятся скудными, компании встречаются с большими убытками, увеличивается количества слияний и поглощений, правительства вмешиваются с тем, чтобы обеспечить&nbsp;стабильность.</p>
<p>Традиционным методологиям, где изменения нежелательны, рискованны и дороги, практически не&nbsp;под силу управлять таким беспорядком. Это создает напряженность в проектной команде и напряженность в отношениях с&nbsp;заказчиком.</p>
<p>Scrum следует утверждению Agile Manifesto, что ответ на изменение более важно, чем следование плану. Scrum принимает, что изменение&nbsp;&mdash; это естественная часть процесса разработки. В Scrum есть механизмы, позволяющие нормально работать с изменениями. Динамическая природа Product Backlog позволяет реализовать новые требования клиента в ближайшем&nbsp;же спринте. Такой быстрый ответ на изменение становится отличным конкурентным преимуществом, позволяющим превратить кризис в&nbsp;возможность.</p>
<p><strong>Группа&nbsp;или&nbsp;Партнеры?</strong></p>
<p>За все время разработки типичного waterfall-проекта, участие клиента требуется лишь дважды: в начале проекта для анализа требований и в&nbsp;его конце для приемочных тестов. В таком случае проект воспринимается клиентом как большая посылка со штампом "Не Открывать До ... ", чье содержимое будет доступно только в самом конце. Единственное впечатление о будущем продукте может быть полученно только из проектных документов, большинство которых уже не соответствуют действительности из-за изменения требований. В случае быстро и постоянно изменяющегося рынка, который мы имеем сегодня, то, что клиент хотел в начале проекта не всегда будет соответствовать тому, что&nbsp;ему нужно в&nbsp;конце.</p>
<p>В проекте, который использует Scrum, Product Owner постоянно находится в контакте с клиентом с тем, чтобы определить насущные требования и всегда держать Product Backlog обновленным и приоритизированным. Клиент часто получает новые версии и, соответственно, в состоянии чаще давать отзыв о проекте. Клиент чувствует себя вовлеченным в процесс, делящим ответственность на проекте со всей командой. Отношения с клиентом перестают походить на отношения между заказчиком и исполнителем и становятся более похожими на отношения между партнерами, проявляя соучастие, удовлетворение и почтительность. С клиентом устанавливаются долгосрочные отношения, которые могут преодолить тяжелый кризисный&nbsp;период.</p>
<p>Общение происходит не только между Product Owner&#39;ом и клиентом. Все люди, воволеченные в проект, получают ежедневную возможность взглянуть на&nbsp;то, чем занята команда. Ежедневные совещания позволяют членам команды показать другим, что&nbsp;они сделали за время, прошедшее с момента предыдущего митинга и&nbsp;чем они собираются заниматься до следующего. Spring backlog&nbsp;или kanban показывает всем уже совершенные действия, те, которые вот-вот совершатся и&nbsp;те, что&nbsp;уже совершаются. Совместная работа в одном помещении стимулирует членов команды общаться между собой.  Burndown chart&#39;ы показывают прогресс проекта. Частые демонстрации показывают Product Owner&#39;у то, что было произведено и предоставляют возможности составить отзыв. В заключение, ретроспективы позволяют всем увидеть что работало в спринте, и&nbsp;что может быть&nbsp;улучшено.</p>
<p>Поддержание открытой связи между stakeholder&#39;ами&nbsp;&mdash; это лучший способ убедиться, что&nbsp;все знают, что должно быть сделано и&nbsp;что делается. Это увеличивает продуктивность, что является обязательным для выживания в&nbsp;кризис.</p>
<p><strong>Что, если проект&nbsp;приостанавливается</strong>?</p>
<p>Во времена кризиса часто случается, что бюджет иссякает&nbsp;или что поставщих уходит с рынка во время разработки проекта. Когда это происходит в не-agile проекте, что заказчик может предложить&nbsp;клиенту?</p>
<p>Если проект останавливается сразу после начальной фазы составления спецификаций, клиент получает набор документов, который он никак не может использовать. Если это случается в середине процесса разработки, он получает незавершенный и непроверенный функционал. Даже если это случается в середине фазы тестирование, вряд&nbsp;ли продукт будет надежным. В действительности, наиболее вероятна ситуация, в которой клиент не получит никакого возврата, какими&nbsp;бы не были инвестиции, если проект остановлен&nbsp;преждевременно.</p>
<p>Проект, работающий по&nbsp;Scrum, с каждым спринтом наращивает возможности проекта, который, потенциально, может быть продан по окончании каждого из спринтов. Если проект останавливается, в любой момент клиент получает то, что может использовать. В обстановке неизвестности это становится важным конкурентным&nbsp;преимуществом.</p>
<p><strong>Что, если вам приходится сокращать&nbsp;Команду?</strong></p>
<p>Вр время кризиса может возникнуть необходимость уволить&nbsp;или передислоцировать членов команды. В случае waterfall-проекта, все роли в проекте четко оговорены. Например, в случае IT-проекта, программист программирует, тестер тестирует и&nbsp;т.д.  Таким образом, если из проекта уходит дизайнер, то новые окна останутся без графического оформления; если уходит тестер&nbsp;&mdash; проект окажется неоттестированным; и, что хуже всего, если уходит менеджер, проект остается без руководства. Таким образом, потеря члена команды угрожает успеху всего&nbsp;проекта.</p>
<p>В случае Scrum, ответственной за поставку продукта является вся команда, вне зависимости от ролей. Хотя в команде и присутствует естественная специализация, люди совершенствуют и используют свои вторичные способности и, в общем, делают все возможное, чтобы компенсировать недостаток членов команды. В этом случае, даже с меньшей численностью, команда продолжает&nbsp;поставки.</p>
<p>Важно указать, что увольнение членов команды никогда не должно быть пунктом №1 при сокращении расходов. Сокращение команды также сокращает ее возможности по поставке ценностей для заказчика. Как следствие, клиент будет менее доволен и будет искать поставщиков, способных предоставить лучший сервис. Это ухужшает ситуацию в организации, создавая порочный цикл&nbsp;потерь.</p>
<p><strong>Выводы</strong></p>
<p>Scrum&nbsp;&mdash; это лучший выбор для проектов во время кризиса. Он превосходит другие методологии по возможности работать в условиях постоянных изменений, по частоте поставки ценности клиенту, по нацеленности на максимизацию ROI, по избежанию затрат и приотизации коммуникаций и видимости того, что важно для успешной разработки проекта, по созданию кросс-функциональной команды. Когда кризис закончится, те организации, которые внедрили Scrum, будут ближе к клиенту, будут сфокусированы на результатах, более компактными, объективными и прозрачными. Для этих организаций кризис послужит движущим фактором, и когда рынок восстановится эти организации будут&nbsp;впереди.</p>
<p><strong>Оцените, пожалуйста, статью:&nbsp;</strong><table><thead><td class="title">Title</td><td class="votes">Votes</td><td class="rating">Rating</td><td class="rating">Review</td></thead><tbody><tr class="row-odd"><td class="title"><a href="http://blog.laway.in.ua/practices/story-points/story-points-vs-ideal-hours-vs-manhours/">Story points vs Ideal hours vs man/hours</a></td><td class="votes">4</td><td class="rating">9.5</td><td class="rating">-1.0</td></tr></tbody></table></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.laway.in.ua/common/scrum-basics/scrum-and-crisis/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
