<?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>Alex Sergeev @ ALSEDI &#187; процесс разработки</title>
	<atom:link href="http://alsedi.com/blog/tag/process-razrabotki/feed/" rel="self" type="application/rss+xml" />
	<link>http://alsedi.com/blog</link>
	<description>Блог о собственных наблюдениях, ошибках и находках в QA, софтверном бизнесе и жизни.</description>
	<lastBuildDate>Fri, 26 Mar 2010 21:08:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Agile Project Management With Scrum [Review]</title>
		<link>http://alsedi.com/blog/agile-project-management-with-scrum-review/</link>
		<comments>http://alsedi.com/blog/agile-project-management-with-scrum-review/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 18:41:12 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Ревью]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Ken Schwaber]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[Кен Швабер]]></category>
		<category><![CDATA[процесс разработки]]></category>
		<category><![CDATA[процесс тестирования]]></category>

		<guid isPermaLink="false">http://alsedi.com/blog/?p=849</guid>
		<description><![CDATA[ Причиной того, что уже долгое время я ничего не писал о разных интересных материалах, которые удавалось найти было то, что почти всё доступное время занимала книга Кена Швабера (Ken Schwaber) &#8211; Agile Project Management With Scrum.
Швабера вообще стоит читать, если есть интерес к применению Scrum, потому что, во-первых, он один из основателей Agile Alliance, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.microsoft.com/Learning/Images/Books/Imgt/9780735619937F.gif" alt="" align="left" /> Причиной того, что уже долгое время я ничего не писал о разных интересных материалах, которые удавалось найти было то, что почти всё доступное время занимала книга Кена Швабера (Ken Schwaber) &#8211; <a href="http://www.microsoft.com/mspress/books/6916.aspx">Agile Project Management With Scrum</a>.</p>
<p>Швабера вообще стоит читать, если есть интерес к применению Scrum, потому что, во-первых, он один из основателей Agile Alliance, а во-вторых один из двух авторов теоретики по процессу Scrum. То есть, он знает о чём говорит и то, что он говорит это не секонд хенд, а сведения из первоисточника.</p>
<p>Возвращаясь к книге. Она оказалась и интересной и полезной, но первичных ожиданий не оправдала. По названию я ожидал, что основное содержание будет составлено из описания практик того, как нужно управлять проектами по Scrum. Оказалось же, что Кен Швабер написал не о теоретических подходах, а чисто о <strong>случаях практического применения</strong>(упрощая &#8211; дал кейсы на разные ситуации). Но важнее оказалось то, что описывал он эти случаи с подходом людей на разных ролях, иногда в одной и той же ситуации, а иногда на протяжении длительного времени. Вот так и получилось, что ожидания не оправдались, но при этом материал оказался крайне полезным. Хотя больше она понравится менеджерам, чем рядовым программистам, тестировщикам и прочим участникам разработки.</p>
<p>Книга разбита на девять слабо связанных частей, а каждой рассматривается по несколько случаев, которые, по идее, должны дать общее представление об основных проблемах, методах их решения и о том, как вообще не допускать описанных ситуаций. Сами случаи показаны так, как видел их сам Кен и обычно разбиты на три части: исходная ситуация до введения Scrum, либо в самом начале его применения; описание появившейся проблемы; описание вынесенных уроков из ситуации и необходимые решения для устранения проблем (Lessons Learned). Очень хорошо и подробно описана работа в условиях одной команды, причем как в случае, когда начинался новый проект, так и при переводе существующего проекта на Scrum. Применение Scrum в случае, когда задействовано много команда (Scaling Scrum) описано явно недостаточно. При этом Кем в явном виде указывает на то, что расширение Scrum на несколько групп вполне осуществимо, но при это придётся сделать финт ушами.</p>
<p>В конце книги Кен поместил список правил, которым стоит следовать при работе в условиях Scrum. Если же не следовать этому компактному списку правил, то на правильно работающий процесс рассчитывать не стоит.</p>
]]></content:encoded>
			<wfw:commentRss>http://alsedi.com/blog/agile-project-management-with-scrum-review/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ежедневные митинги</title>
		<link>http://alsedi.com/blog/ezhednevnye-mitingi/</link>
		<comments>http://alsedi.com/blog/ezhednevnye-mitingi/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 16:48:17 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[QA]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[департамент qa]]></category>
		<category><![CDATA[менеджмент]]></category>
		<category><![CDATA[процесс разработки]]></category>
		<category><![CDATA[процесс тестирования]]></category>
		<category><![CDATA[собрания]]></category>

		<guid isPermaLink="false">http://alsedi.com/blog/?p=305</guid>
		<description><![CDATA[Еще в то время, когда нам пытались привить Scrum (по ряду причин безуспешно), тема ежедневных митингов поднималась несколько раз за декаду, но так до дела и не дошло. Мы делали митинги сначала три раза в неделю, потом раз в неделю, потом раз за итерацию, потом по необходимости, потом без отрыва задниц от места.
Я уверен, что [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Meeting" src="http://sha3teely.com/wp-content/uploads/2006/08/meeting.jpg" alt="" hspace="10" width="288" height="167" />Еще в то время, когда нам пытались привить Scrum (по ряду причин безуспешно), тема ежедневных митингов поднималась несколько раз за декаду, но так до дела и не дошло. Мы делали митинги сначала три раза в неделю, потом раз в неделю, потом раз за итерацию, потом по необходимости, потом без отрыва задниц от места.<span id="more-305"></span></p>
<p>Я уверен, что не я один участвовал в подобном процессе, мы материли &#8220;Scrum мастера&#8221; за то, что он ничего не знает, а время митинга растягивается минимум на час. Большую часть которого две трети участников спят, ковыряют столы, стулья и носы, звонят по телефону, обсуждают вчерашний футбол, сидят с хмурыми <span style="text-decoration: line-through;">мордами</span> лицами. После митинга никто не помнил о чем договорились, да и вообще, договорились ли?! Но ведь что то обсуждали, но что же решили? Никто не помнил. &#8220;<strong>S</strong><span style="color: #999999;">c</span><strong>rum</strong> мастер&#8221; писал письмо руководству о прогрессе в разработке, выражая его в процентах</p>
<blockquote><p>Мы готовы к завоеванию мира на 90%!</p>
<p>Эта версия лучше на 45%!</p>
<p>Ваши ресницы будут длиннее на 63.3% если вы попали в 34 и 5 десятых процента белокожих женщин с карими глазами и родинкой на животе!</p></blockquote>
<p>Да брехня это всё, виртуально. А мы реальны. Мы понимали, что это чушь, что нам это чуждо и не нужно. Естественно всё умерло и с каждым релизом выяснялось, что забыли что-нибудь положить в CVS, сделали изменения в зависимых модулях и забыли известить зависимых. В тестировании тоже всё было не слишком гладко, даже налаженные горизонтально-вертикально-поперечные связи давали сбои и какие то очевидные ошибки оставались незамеченными.</p>
<p>Так что необходимость митингов как была так и осталась. Я решил следовать довольно простой схеме. В моей команде люди разбиты по своим проектам и&#8230;</p>
<blockquote><p>Тогда, еще два года назад, &#8220;Scrum мастер&#8221; сделал главную ошибку, которой сейчас пытаюсь избежать я &#8211; он взял всех лидов и разработчиков по всем направлениям и посадил в одну комнату с целью у каждого узнать &#8220;как дела&#8221;. Направления, хоть и представляли собой единую платформу, но всё-таки были довольно самостоятельными и по большому счёту были связаны вместе только базой. Это примерно как, если бы вы ходили каждый день в один и тот же бар и слушали бы как бармен рассказывал как сложно достать сейчас бренди, хотя вам всё равно есть бренди или нет.</p></blockquote>
<p>&#8230;я решил митинговать с каждой командой отдельно (привет, велосипед). На каждую встречу не более 15 минут, во время митинга поднимаются только три темы: что не получилось сделать из запланированного вчера, какие проблемы мешают, что делаем сегодня. И так изо дня в день, пока эти маленькие сообщества не научатся четко говорить о проблемах и понимать свою работу, а я вместе с ними не пойму в деталях что происходит. После этого можно будет перейти к тому, чтобы митинговать со связанными командами. Делать это каждый день уже нет смысла, потому что группы нужно связывать только, когда релиз одного из компонент сильно затрагивает другие.</p>
<p>За разными командами тестировщиков стоят не только разные продукты или компоненты, но и разные команды разработчиков. А это люди! Каждый со своими тараканами и подходами к работе, которые могут упростить жизнь релизу или усложнить.</p>
<blockquote><p>Был у нас очень интересный разработчик. Он разрабатывал один компонент системы&#8230;  в течение двух лет! И когда проект был на этапе завершения оказалось, что он не совместим с платформой немного (ну это ладно). В добавок после его добавления в систему дороги назад уже не было &#8211; обратной совместимости продумано не было. С одной стороны очень плохо, разработчик чудовище. С другой мы избавились от многоярусной поддержки целого семейства старого кода.</p></blockquote>
<p>На третьем шаге собираем всех тестировщиков вместе. Это не может быть частое явление, на мой взгляд. Но почему бы не сделать так раз в месяц, для того чтобы не было вопросов кто и чем занимается. Это сыграет свою роль, обязательно. Когда это произойдёт нельзя будет сказать &#8211; &#8220;Вот он! Это потому что два месяца назад они были на митинге&#8221;, но при проблемах всегда найдется <span style="text-decoration: line-through;"><a href="http://www.prokofiev.ru/prikol/pics/p11/padla.jpg" target="_blank">падла</a></span> зараза, которая скажет &#8220;Это потому что митингов не было&#8221; и будет права.</p>
<p>С каждым шагом мы приближаемся к тому, чтобы повысить обмен информацией между тестировщиками. Это отлично, но не достаточно. После того как это свершилось надо двигаться в девелопмент и в добавок к личным горизонтальным связям добавлять еще качественно зрелый обмен информацией между разработчиками и разработчиками и тестировщиками. Так очень много глупостей и сложностей можно устранить.</p>
]]></content:encoded>
			<wfw:commentRss>http://alsedi.com/blog/ezhednevnye-mitingi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Департамент QA: Отслеживание задач как часть информационной системы (часть 2)</title>
		<link>http://alsedi.com/blog/departament-qa-otslezhivanie-zadach-kak-chast-informacionnoj-sistemy-chast-2/</link>
		<comments>http://alsedi.com/blog/departament-qa-otslezhivanie-zadach-kak-chast-informacionnoj-sistemy-chast-2/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 16:57:09 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[ALSEDI]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[jira]]></category>
		<category><![CDATA[task tracking]]></category>
		<category><![CDATA[департамент qa]]></category>
		<category><![CDATA[контроль работы]]></category>
		<category><![CDATA[менеджмент]]></category>
		<category><![CDATA[отслеживание задач]]></category>
		<category><![CDATA[ошибки]]></category>
		<category><![CDATA[процесс разработки]]></category>
		<category><![CDATA[процесс тестирования]]></category>
		<category><![CDATA[тестирование]]></category>

		<guid isPermaLink="false">http://alsedi.com/blog/?p=113</guid>
		<description><![CDATA[В первой части я кратко упомянул о том, как может выглядеть процесс выпуска релиза в небольшой компании. В больших фирмах существует намного больше людей, которые заинтересованы в конечном продукте. Некоторые мнения приходится учитывать не только в процессе выпуска программного продукта, но и при создании информационной системы о процессе разработки и тестирования.
Ниже показаны основные группы людей, [...]]]></description>
			<content:encoded><![CDATA[<p>В <a href="http://alsedi.com/blog/departament-qa-oshibki-upravleniya/" target="_blank">первой части</a> я кратко упомянул о том, как может выглядеть процесс выпуска релиза в небольшой компании. В больших фирмах существует намного больше людей, которые заинтересованы в конечном продукте. Некоторые мнения приходится учитывать не только в процессе выпуска программного продукта, но и при создании информационной системы о процессе разработки и тестирования.<br />
Ниже показаны основные группы людей, которым может потребоваться информация о том, что происходит с продуктом и что в нём будет еще до момента финального релиза.</p>
<div class="wp-caption alignnone" style="width: 522px"><a href="http://www.alsedi.com/blog/wp-content/upload/questions.png"><img src="http://www.alsedi.com/blog/wp-content/upload/questions_th.png" alt="Заинтересованные в релизе группы людей" width="512" height="324" /></a><p class="wp-caption-text">Заинтересованные в релизе группы людей</p></div>
<p><span id="more-113"></span>Список вопросов неполный, но QA должны знать ответы хотя бы на них. Для этого, в первую очередь, потребуется отслеживать выполнение задач по разработке и тестированию. Существование трекера первый шаг к построению нормальной информационной системы.<br />
Подойдет любая система трекинга, в которой можно реализовать такую структуру (я предпочитаю <a href="http://www.atlassian.com/software/jira/" target="_blank">Atlassian Jira</a>, для небольших проектов <a href="http://eventum.mysql.org/wiki/index.php/Main_Page" target="_blank">Eventum</a>):</p>
<ul>
<li>Backlog – группа проектов в которой по версиям и продуктам разбиваются пожелания и требования бизнес стороны. Это не только спецификации (ТЗ), но и простые заметки, пришедшие от бизнес стороны в стиле «нужно сделать это, примерно вот так функционирует и выглядит». На основе таких «business story» можно построить спецификацию и согласовать с бизнесом.</li>
<li> Development Project – Группа проектов по разработке конкретных продуктов. Основная часть задач появляется с привязкой к Backlog проекту. Это позволяет отслеживать соответствие требованиям бизнеса и начать работу QA еще до завершения разработки (что-то вроде Test Driving Development, но мягче).</li>
<li>Feedback – Группа проектов для получения отзывов от клиентов и бизнес стороны по работе текущей версии и проблемам с ними связанным (но не для трекинга багов по разрабатываемой версии).</li>
<li>QA – Группа проектов, привязанных к таким же проектам в Development Project. В них будет вестись трекинг задач, связанных с тестированием версии или общей работы, но не багов!</li>
<li>Bugs – Группа проектов, привязанных к проектам в QA и Development Project. Здесь тестировщики создают все таски связанные с найденными ошибками и предлагают улучшения проектов.</li>
</ul>
<p>Зачем нужно три проекта для QA? Для того, чтобы не создавать мусорной кучи. Feedback доступен не только тестировщикам (которые, по идее, знают о разрабатываемых продуктах больше остальных), но и бизнес стороне. Люди со стороны бизнеса имеют полное право не знать о том, что существует множество версий и множество компонент внутри продуктов, но должны иметь возможность сообщить о проблеме при работе. Для этого им нужно знать только что они делали и версию продукта, с которым они работали (а не всю систему), когда появилась проблема.</p>
<p>Причем, не важен тип решения (а пользователь может и не знать что там еще стоит за окном в которое он смотрит), разрабатываемого компанией:</p>
<ul>
<li> самостоятельное приложение;</li>
<li> серверное приложение с доступом из стороннего (Web сервис, XML/HMTL сервер);</li>
<li> клиентское приложение с доступом к стороннему (Debuggers, разнообразные сетевые клиенты);</li>
<li> клиент-серверное приложение, с собственным сервером и клиентом (платформы с удаленным доступом);</li>
</ul>
<p>Разобраться где конкретно ошибка и ошибка ли дело QA и разработчиков. Часто разработчики могут сделать это быстрее.</p>
<p>Тестировщики знают о продуктах компании больше и лучше понимают структуру проектов. Соответственно, могут указать намного больше данных при заведении ошибки. Для тестировщика требуется совершенно другое окружение и набор возможностей при заведении багов, чем бизнесу. Создание одного проекта приведет к тому, что либо будут проблемы у бизнес стороны, либо тестировщикам придется урезать вводимые данные. Так же, если записи бизнеса о проблемах не всегда являются прямым руководством к действиям разработчиков, то ошибки, найденные тестировщиками, должны как можно быстрее обрабатываться и в соответствии с серьезностью переноситься в план разработки или <span style="text-decoration: line-through;"><span style="line-through;">расстреливаться</span> </span>исправляться сразу.</p>
<p>Группа проектов QA позволяет отделить работу по тестированию от результатов. Для каждого релиза создается свой набор обязательных задач для проверки. В зависимости от проекта и версии список может меняться, адаптируясь под условия. Вместе с рутинными задачами в эти проекты могут быть добавлены задачи относящиеся к процессу тестирования. Например, автоматизация тестов, исследования программ и методик для тестирования.</p>
<p>Принципиальная схема процесса при такой структуре проектов выглядит так:</p>
<div class="wp-caption alignnone" style="width: 310px"><img src="http://alsedi.com/blog/wp-content/upload/projects-structure.png" alt="Потоки информации между проектами" width="300" height="500" /><p class="wp-caption-text">Потоки информации между проектами</p></div>
<p>При использовании этой схемы Backlog объединяет в себе первичные требования бизнеса, общее обсуждение технической реализации или ТЗ (в зависимости от возможностей), проблемы из Feedback и Bugs, которые требуют много времени на исправление или переработки бизнес логики. Основные задачи в Backlog описывают большие куски работы, разбиение которых делается через сабтаски. Далее эта информация клонируется (или разбивается на части и клонируется) в проекты по разработке и добавляется в задачи по подготовки к тестированию в QA проектах (написание тесткейсов, переработка существующих тестов, автоматизация и так далее). После релиза в соответствующем проекте QA создаётся общая задача на тестирование, а конкретная работа выделяется в сабтаски. При нахождении ошибок при тестировании они описываются в соответствующем проекте Bugs и либо клонируются в Development Project, либо заносятся в Backlog для позднего исправления. Процесс запускается по новой… в идеале.</p>
<p>В реальности, появляется множество событий и проблем, которые требуют быстрого решения. При этом рушится стройная последовательность действий, и затягиваются сроки релиза и тестирования, но логически модель не разрушается. Главное в такой ситуации сохранять трэкинг задач. Всегда записывать то, что делается. Тогда, позднее, можно будет собрать всю необходимую информацию о проделанной работе и её результатах.</p>
]]></content:encoded>
			<wfw:commentRss>http://alsedi.com/blog/departament-qa-otslezhivanie-zadach-kak-chast-informacionnoj-sistemy-chast-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
