<?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>AgileRussia</title>
	<atom:link href="http://agilerussia.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://agilerussia.ru</link>
	<description>Сайт о гибкой разработке программного обепечения</description>
	<lastBuildDate>Wed, 15 Feb 2012 08:07:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Конференция AgileDays’12, Москва, 23-24 марта 2012г</title>
		<link>http://agilerussia.ru/events/agiledays_2012/</link>
		<comments>http://agilerussia.ru/events/agiledays_2012/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 18:51:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[События]]></category>
		<category><![CDATA[AgileDays]]></category>

		<guid isPermaLink="false">http://agilerussia.ru/?p=786</guid>
		<description><![CDATA[Добро пожаловать на  AgileDays’12! Прогрессивный IT мир согласен, что настало время отказаться от тяжелых и громоздких схем в пользу гибких методологий, качественного продукта и партнерских отношений. Конференция AgileDays’12, которая пройдет 23-24 марта в Москве, станет для вас глотком свежего воздуха, открыв новые возможности в IT разработке. Мы приглашаем как новичков, которые только слышали о гибких…]]></description>
			<content:encoded><![CDATA[<h2 style="text-align: left;" align="center"><span style="color: #008000;"><strong>Добро пожаловать на  AgileDays’12!</strong></span></h2>
<p><a href="http://www.agiledays.ru/"><img class="size-full wp-image-790 alignright" style="margin: 30px;" title="agiledays12_logo" src="http://agilerussia.ru/wp-content/uploads/2012/01/agiledays12_logo.gif" alt="" width="242" height="45" /></a>Прогрессивный IT мир согласен, что настало время отказаться от тяжелых и громоздких схем в пользу гибких методологий, качественного продукта и партнерских отношений. Конференция <a href="http://www.agiledays.ru/"><strong>AgileDays’12</strong></a>, которая пройдет <strong>23-24 марта в Москве</strong>, станет для вас глотком свежего воздуха, открыв новые возможности в IT разработке.</p>
<p>Мы приглашаем как новичков, которые только слышали о гибких методологиях, так и тех, кто уже давно использует agile. Талантливые и опытные коучи и докладчики поделятся результатами новейших разработок со всего мира. Неоценимой помощью для тех, кто внедряет в agile у себя в компании, станут примеры реальных историй от тех, кто уже сделал свой выбор в пользу agile.</p>
<p>AgileDays’12 &#8211; прекрасная возможность для новых бизнес-знакомств с самыми продвинутыми представителями IT из России, стран СНГ, Европы и США.</p>
<p>Будьте на острие событий с AgileDays’12!</p>
<p>Присоединившись к нашему Agile фестивалю, вы услышите выступления передовых экспертов индустрии разработки ПО, таких как: <strong>David Hussman</strong>, Асхат Уразбаев, Никита Филиппов, Дмитрий Лобасев, Сергей Дмитриев, Максим Дорофеев, Борис Вольфсон, Андрей Бибичев и других.</p>
<p>Приглашенный гость конференции <strong>David Hussman</strong> &#8211; ключевой докладчик AgileDays’12 &#8211; истинный agile евангелист, продвигающий agile как образ мышления (mindset), а не следование практикам конкретных методологий, в избытке представленных в современном agile сообществе.</p>
<p>Программа AgileDays’12 будет состоять из:<br />
- докладов по новейшим веяниям agile сообщества, опыту успешного и неуспешного внедрения agile в различных компаниях из всех сфер бизнеса;<br />
- мастер-классов, игр-симуляций, которые являются прекрасной возможностью усвоить практические навыки и действенные техники от agile экспертов;</p>
<p>Уже сейчас вы можете ознакомиться с формирующейся <a href="http://msk12.agiledays.ru/reports/program/">программой конференции</a>.<br />
А если у вас есть интересный опыт в сфере agile, поделитесь им с нами, став докладчиком AgileDays’12. До 31 января <a href="http://msk12.agiledays.ru/reporter/">мы ждем ваши заявки</a>!</p>
<p>Действуют <a href="http://msk12.agiledays.ru/sponsor/">специальные предложения для партнеров</a> мероприятия. Мы предлагаем целый ряд возможностей для активного участия вашей компании в конференции AgileDays’12, а это 500 участников из более чем 300 компаний.</p>
<p>Не откладывай регистрацию на потом, <span style="text-decoration: underline;">стань участником</span> AgileDays’12 прямо сейчас!<br />
Узнайте больше и поделитесь своим опытом внедрения Agile, общаясь в неформальной обстановке с докладчиками и участниками со всей России, стран СНГ, Европы и США.</p>
<p>Все самые передовые идеи, подходы и лучшие практики индустрии разработки ПО будут обсуждаться именно здесь, на AgileDays&#8217;12!</p>
<p><a href="http://msk12.agiledays.ru/">http://agiledays.ru/</a><br />
<a href="https://twitter.com/#!/AgileDays">https://twitter.com/#!/AgileDays</a><br />
<a href="http://www.facebook.com/AgileDays">http://www.facebook.com/AgileDays</a></p>
<p>&nbsp;</p>
<p><strong>Дата и место проведения:</strong> 23-24 марта, Москва, ул. Шипиловская д.28, бизнес-отель Милан.<br />
<strong>Телефон:</strong>             +7 495 991-69-20       Ирина Цыбденова.<br />
<strong>E-mail:</strong> <a href="mailto:irina@scrumtrek.ru">irina@scrumtrek.ru</a></p>
]]></content:encoded>
			<wfw:commentRss>http://agilerussia.ru/events/agiledays_2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Конференция Software People в Москве, 10-12 апреля 2012г</title>
		<link>http://agilerussia.ru/events/conf-swp_apr_2012/</link>
		<comments>http://agilerussia.ru/events/conf-swp_apr_2012/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 10:37:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[События]]></category>
		<category><![CDATA[конференция]]></category>

		<guid isPermaLink="false">http://agilerussia.ru/?p=901</guid>
		<description><![CDATA[10-12 апреля в Digital October в очередной раз пройдет «самая человечная из технических конференций» - Software People 2012. В течение трех дней российские и зарубежные эксперты будут проводить доклады, мастер-классы и панельные дискуссии, посвященные темам проектирования интерфейсов, человеческого фактора в разработке ПО, юзабилити и UX ПО. Одним из ключевых докладчиков в этом году станет Джефф…]]></description>
			<content:encoded><![CDATA[<p><em><a href="http://agilerussia.ru/wp-content/uploads/2012/02/swp_logo.gif"><img class="alignleft size-full wp-image-903" style="margin-left: 30px; margin-right: 30px; margin-top: 20px; margin-bottom: 20px;" title="swp_logo" src="http://agilerussia.ru/wp-content/uploads/2012/02/swp_logo.gif" alt="" width="280" height="64" /></a>10-12 апреля в Digital October в очередной раз пройдет «самая человечная из технических конференций» <a href="http://softwarepeople.ru/2012/?utm_source=agilerussia&amp;utm_medium=anons">- Software People 2012.</a> В течение трех дней российские и зарубежные эксперты будут проводить доклады, мастер-классы и панельные дискуссии, посвященные темам проектирования интерфейсов, человеческого фактора в разработке ПО, юзабилити и UX ПО.</em></p>
<p>Одним из ключевых докладчиков в этом году станет Джефф Де Люка. Джефф – IT-стратег мирового уровня, пятикратный лауреат IBM Rating 1, автор одной из 6 признанных Agile-методологий «Feature-Driven Development».</p>
<p>Эксперт выступит с мастер-классом <a href="http://softwarepeople.ru/2012/workshops/de-luca/?utm_source=agilerussia&amp;utm_medium=anons">«Как с помощью FDD делать отличный софт».</a> Слушатели узнают, как добиться лучшей прозрачности (visibility) проектов, что такое полезная для клиента функция,  как описать проект в виде классифицированного списка полезных функций (client-valued feature), насколько полезна стратегия уменьшения рисков и многое другое из 25-летнего опыта спикера в ИТ-индустрии.</p>
<p>В день мастер-классов Александр Орлов и Вячеслав Панкратов расскажут о <a href="http://softwarepeople.ru/2012/workshops/startoplan/?utm_source=agilerussia&amp;utm_medium=anons">«Мотивации без бюджета»</a>.  Эксперты продемонстрируют 6 практических инструментов для оценки уровня внутренней мотивации сотрудников. Спикеры рассмотрят такие актуальные вопросы, как падение интереса человека к работе, развитие сотрудника в том направлении, в котором он действительно хочет развиваться, проблема «рутинной» работы.</p>
<p>Узнать подробнее о стоимости мероприятия и зарегистрироваться можно на <a href="http://softwarepeople.ru/2012/participants/?utm_source=agilerussia&amp;utm_medium=anons">сайте</a> конференции.</p>
]]></content:encoded>
			<wfw:commentRss>http://agilerussia.ru/events/conf-swp_apr_2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Конференция The Atlantic Systems Guild в Москве, 28-30 марта 2012г</title>
		<link>http://agilerussia.ru/events/conf-asg_march_2012/</link>
		<comments>http://agilerussia.ru/events/conf-asg_march_2012/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 10:24:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[События]]></category>
		<category><![CDATA[конференция]]></category>

		<guid isPermaLink="false">http://agilerussia.ru/?p=896</guid>
		<description><![CDATA[28-30 марта в Москве впервые состоится конференция The Atlantic Systems Guild с участием мировых экспертов во главе с Томом ДеМарко. Основными темами мероприятия станут интегрированный риск менеджмент, инновационное мышление, паттерны организационного поведения, преобладающие паттерны проектного поведения и многое другое. Том Демарко, Тимоти Листер, Питер Хрущка, Джеймс Робертсон и Сьюзан Робертсон  &#8211; три дня лекций и…]]></description>
			<content:encoded><![CDATA[<p><em>28-30 марта в Москве впервые состоится конференция <a href="http://worldconference.ru/?utm_source=agilerussia&amp;utm_medium=anons">The Atlantic Systems Guild</a> с участием мировых экспертов во главе с <a href="http://worldconference.ru/speakers.php?utm_source=agilerussia&amp;utm_medium=anons">Томом ДеМарко.</a> Основными темами мероприятия станут интегрированный риск менеджмент, инновационное мышление, паттерны организационного поведения, преобладающие паттерны проектного поведения и многое другое.</em></p>
<p><strong>Том Демарко, Тимоти Листер, Питер Хрущка, Джеймс Робертсон и Сьюзан</strong><strong> </strong><strong>Робертсон  &#8211; три дня лекций и практических занятий от мировых экспертов в управлении программными проектами</strong></p>
<p>Конференция ориентирована на топ-менеджеров, владельцев компаний-разработчиков, менеджеров проектов, желающих расширить границы как уже существующих проектов, так и реализовать новые идеи, а также архитекторов ПО, бизнес-аналитиков, ведущих разработчиков.</p>
<p>В активе The Atlantic Systems Guild более сотни реализованных проектов, около 500 статей, а также свыше 200 книг. Наиболее известные из них переведены на русский язык: «Человеческий фактор: успешные проекты и команды», «Deadline. Роман об управлении проектами», «Вальсируя с Медведями: управление рисками в проектах по разработке программного обеспечения», «Балдеющие от адреналина и зомбированные шаблонами». Техники, впервые разработанные и внедренные The Atlantic Systems Guild, используются во всем мире. Можно без преувеличения сказать, что книги Тома ДеМарко и его коллег оказали огромное влияние на индустрию разработки ПО.</p>
]]></content:encoded>
			<wfw:commentRss>http://agilerussia.ru/events/conf-asg_march_2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>В Санкт-Петербурге впервые пройдет тренинг &#8220;Certified ScrumMaster&#8221; Робина Даймонда, 5-6 марта 2012г</title>
		<link>http://agilerussia.ru/events/training-robin-dymond-spb_march_2012/</link>
		<comments>http://agilerussia.ru/events/training-robin-dymond-spb_march_2012/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 06:52:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[События]]></category>
		<category><![CDATA[Тренинги]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://agilerussia.ru/?p=886</guid>
		<description><![CDATA[5-6 марта в Санкт-Петербурге впервые состоится официальный тренинг  «Certified ScrumMaster» Робина Даймонда. Certified ScrumMaster тренинг помогает освоить приниципы процесса Scrum и дает возможность участникам приобрести навыки, необходимые для работы в Scrum проектах. По окончании тренинга участники  получают сертификат Certified ScrumMaster от Scrum Alliance. Благодаря сочетанию интерактивного командного обучения, игр, упражнений и рассмотрению примеров из жизни, посетив тренинг, вы узнаете,…]]></description>
			<content:encoded><![CDATA[<p><a href="http://agilerussia.ru/wp-content/uploads/2012/02/RobinPhoto.png"><img class="alignleft size-full wp-image-888" style="margin-left: 20px; margin-right: 20px;" title="RobinPhoto" src="http://agilerussia.ru/wp-content/uploads/2012/02/RobinPhoto.png" alt="" width="135" height="180" /></a>5-6 марта в Санкт-Петербурге впервые состоится официальный тренинг  «Certified ScrumMaster» Робина Даймонда. Certified ScrumMaster тренинг помогает освоить приниципы процесса Scrum и дает возможность участникам приобрести навыки, необходимые для работы в Scrum проектах.</p>
<p>По окончании тренинга участники  получают сертификат <strong>Certified</strong><strong> </strong><strong>ScrumMaster</strong><strong> </strong>от<strong> </strong><strong>Scrum</strong><strong> </strong><strong>Alliance</strong><strong>.</strong></p>
<p>Благодаря сочетанию интерактивного командного обучения, игр, упражнений и рассмотрению примеров из жизни, посетив тренинг, вы узнаете, как:</p>
<p>• Инициировать Scrum проекты и управлять ими<br />
• Создавать общее видение для всей команды<br />
• Планировать релизы с помощью User Stories и оценивать их используя Story Points<br />
• Направлять свою Scrum команду посредством анализа спринтов и проведения ретроспектив<br />
• Создавать окружение, в которой команды будут самоорганизовываться и добиваться больших успехов</p>
<p>Тренер: <strong>Robin Dymond</strong>  (ссылка на <a href="http://www.scrumalliance.org/profiles/5066-robin-dymond">http://www.scrumalliance.org/profiles/5066-robin-dymond</a>) – Тренер и консультант Scrum, Agile и Lean методов из США. Робин 21 год в разработке программного обеспечения. Он прошел весь путь, начиная от Software Research Engineer, далее Project Manager, VP и CEO собственной компании. На данный момент Робин вляется управляющим партнером компании Innovel LLC (ссылка на <a href="http://www.innovel.net/">http://www.innovel.net/</a>), США, занимающейся Lean Agile обучением и консалтингом с клиентами в Европе, Украине и США.</p>
<p><strong>Стоимость: </strong>Специальная стоимость действует  для тренинга в Санкт-Петербурге: <strong>$950 </strong><strong>USD</strong> (обычная цена составляет $1250). При регистрации до 13 февраля стоимость составит <strong>$875 </strong><strong>USD</strong><strong>.</strong>  В стоимость включены: <strong>2 года членства в </strong><strong>Scrum</strong><strong> </strong><strong>Alliance</strong><strong>, </strong>распечатанные материалы курса, цифровая копия учебных материалов, а также обеды и кофе-паузы.</p>
<p>Подробное описание тренинга здесь:</p>
<p><a href="http://www.scrumalliance.org/courses/20113616-certified-scrummaster">http://www.scrumalliance.org/courses/20113616-certified-scrummaster</a></p>
<p>Зарегистрироваться на тренинг можно здесь:</p>
<p><a href="http://www.scrumtraining.com/upcoming-events/">http://www.scrumtraining.com/upcoming-events/</a></p>
<p>По всем вопросам обращайтесь <a href="mailto:volha.ikhelis@gmail.com">volha.ikhelis@gmail.com</a> или <a href="mailto:tanuha.vasilyeva@gmail.com">tanuha.vasilyeva@gmail.com</a>, а также звоните по телефону +79213475361.</p>
]]></content:encoded>
			<wfw:commentRss>http://agilerussia.ru/events/training-robin-dymond-spb_march_2012/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Бесплатная электронная книга по гибким методологиям разработки</title>
		<link>http://agilerussia.ru/methodologies/borisvolfson_ebook/</link>
		<comments>http://agilerussia.ru/methodologies/borisvolfson_ebook/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 10:17:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Методологии]]></category>
		<category><![CDATA[Статьи]]></category>

		<guid isPermaLink="false">http://agilerussia.ru/?p=876</guid>
		<description><![CDATA[Представляем вашему вниманию электронную книгу Бориса Вольфсона по гибким методологиям разработки. Электронная книга доступна бесплатно для скачивания со следующих сервисов в PDF: Скачать с Яндекса Скачать с Dropbox Кроме классического Scrum, в книге также описываются и разнообразные лучшие практики, которые отлично интегрируются в данный управленческий фреймворк для управления продуктом, командой, для организации аналитики и тестирования. Содержание…]]></description>
			<content:encoded><![CDATA[<p><a href="http://agilerussia.ru/wp-content/uploads/2012/02/borisvolfson_book.png"><img class="alignright size-full wp-image-879" title="borisvolfson_book" src="http://agilerussia.ru/wp-content/uploads/2012/02/borisvolfson_book.png" alt="" width="200" height="258" /></a><strong><span style="color: #000000;">Представляем вашему вниманию электронную книгу Бориса Вольфсона по гибким методологиям разработки.</span></strong></p>
<p>Электронная книга доступна бесплатно для скачивания со следующих сервисов в PDF:</p>
<ul>
<li><a href="http://narod.ru/disk/39530693001/%D0%93%D0%B8%D0%B1%D0%BA%D0%B8%D0%B5%20%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8%20%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8.pdf.html">Скачать с Яндекса</a></li>
<li><a href="http://goo.gl/v89VI">Скачать с Dropbox</a></li>
</ul>
<p>Кроме классического Scrum, в книге также описываются и разнообразные лучшие практики, которые отлично интегрируются в данный управленческий фреймворк для управления продуктом, командой, для организации аналитики и тестирования.<a name="habracut"></a></p>
<h4>Содержание</h4>
<ul>
<li>Предисловие</li>
<li>Agile-методологии</li>
<li>Scrum – гибкий управленческий фреймворк</li>
<li>Управление продуктом</li>
<li>Управление командой</li>
<li>Управление контрактами</li>
<li>Управление рисками</li>
<li>Инженерные практики</li>
<li>Контроль и обеспечение качества</li>
<li>Анализ требований</li>
<li>Масштабирование Agile</li>
<li>Бережливое производство</li>
<li>Как внедрить Agile за 14 недель</li>
<li>Гибкие компании-аутсорсеры</li>
<li>Консалтинг-компании и независимые тренеры</li>
</ul>
<p>&nbsp;</p>
<h4>Благодарности</h4>
<p>Спасибо всем, кто помогал в работе над данными материалами, в том числе по плану внедрению Agile: Евграшин Тимофей, Гармаш Максим, Ковязин Егор, Козлов Илья, Колосова Ксения, Лукьянчикова Наталья, Паньшин Дмитрий, Подурец Михаил, Рогачев Сергей, Свердлов Андрей, Сорокин Евгений, Сурикова Ирина, Тарасенко Анна, Уразбаев Асхат, Шабакаева Лия.<br />
Особую благодарность также выражаю многочисленным рок и хард-рок группам, без которых создание этой книги было бы невозможно.,</p>
<h4>На всякий случай</h4>
<p>Эта книга не претендует на звание «единого и непогрешимого» источника знаний по гибким методологиям, потому что они постоянно развиваются: появляются новые подходы, дорабатываются старые и расширяются сферы применения.<br />
Также на этих страницах отражено исключительно моё мнение и понимание гибких методологий, не связанное с моими нынешними или будущими работодателями или сообществами, в которых я состою. Тем не менее, не отрицаю их сильного влияния на меня.<br />
Если у вас есть конструктивные замечания/предложения по данной книге с удовольствием приму их к сведению. Если замечания еще и грамотно оформлены, готов включить их в виде цитат.<br />
Мои контакты указаны в книге, ну а троллить предлагаю в комментариях <img src='http://agilerussia.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4>Рецензии</h4>
<ul>
<li><a href="http://blog.byndyu.ru/2012/02/blog-post_04.html">Рецензия от Александра Бындю</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://agilerussia.ru/methodologies/borisvolfson_ebook/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>QA Automation, часть 2: Автотестирование &#8211; Начало.</title>
		<link>http://agilerussia.ru/articles/qa-automation-part-2-autotesting1/</link>
		<comments>http://agilerussia.ru/articles/qa-automation-part-2-autotesting1/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 10:10:25 +0000</pubDate>
		<dc:creator>Andrey Rebrov</dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[qa]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://agilerussia.ru/?p=859</guid>
		<description><![CDATA[Часть вторая Продолжаю серию постов, про автоматизацию QA процессов. Уже готов пост про связку Selenium 2 + TestNG, но прежде мне бы хотелось немного поговорить о самом процессе автотестирования и его внедрении. Предыдущие статьи на эту тему: Вводная часть Часть первая Те, кто смотрели фильм &#8220;Начало&#8221; (Inception), помнят, что до того, как мы начинаем действовать,…]]></description>
			<content:encoded><![CDATA[<p><a href="http://agilerussia.ru/practices/qa-automation-%d1%87%d0%b0%d1%81%d1%82%d1%8c-%d0%b2%d0%b2%d0%be%d0%b4%d0%bd%d0%b0%d1%8f/"><img class="alignright" src="http://media.kino-govno.com/movies/i/inception/posters/inception_21.jpg" alt="" width="154" height="225" /></a></p>
<p><strong>Часть вторая</strong></p>
<p><em>Продолжаю серию постов, про автоматизацию QA процессов. Уже готов пост про связку Selenium 2 + TestNG, но прежде мне бы хотелось немного поговорить о самом процессе автотестирования и его внедрении.</em></p>
<p style="padding-left: 30px"><em>Предыдущие статьи на эту тему:</em></p>
<p style="padding-left: 30px"><a href="http://agilerussia.ru/practices/qa-automation-%d1%87%d0%b0%d1%81%d1%82%d1%8c-%d0%b2%d0%b2%d0%be%d0%b4%d0%bd%d0%b0%d1%8f/">Вводная часть</a></p>
<p style="padding-left: 30px"><a href="http://agilerussia.ru/practices/qa-automation-%d1%87%d0%b0%d1%81%d1%82%d1%8c-1-ci-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80-%d0%bd%d0%b0%d1%88%d0%b5-%d0%b2%d1%81%d0%b5/">Часть первая</a></p>
<p>Те, кто смотрели фильм &#8220;Начало&#8221; (Inception), помнят, что до того, как мы начинаем действовать, у нас появляется идея. А до того, как у нас появляется идея, должна возникнуть мысль, которая все и породит. Так что же побуждает нас перейти к автотестам, какие страхи нам приходится побеждать? Обо всем этом я и хотел бы поговорить в этом посте.<br />
<span id="more-859"></span><br />
На определенном этапе своего развития команда подходит к этапу, когда уже члены команды притерлись друг к другу, мы пишем хорошие продукты и все у нас хорошо, но надо двигаться дальше. И здесь настает время Lean, бережливого производства. Команда начинает улучшать имеющиеся у нее процессы, уменьшать или вообще избавляться от потерь времени, ресурсов и так далее. И именно отсюда появляются задачи на автоматизацию процессов, чтобы экономить время высококвалифицированной команды QA и DEV на более сложные задачи, требующие непосредственного человеческого участия. Это отдельная большая тема, сегодня я хочу поговорить только о небольшом кусочке &#8211; автоматизации тестирования.<br />
Итак, почему же мы начинаем заниматься автоматизацией тестирования:</p>
<ul>
<li><span style="line-height: 18px">ручное выполнение тестов занимает слишком много времени;</span></li>
<li><span style="line-height: 18px">во время ручного тестирования, человек можно совершить ошибку;</span></li>
<li><span style="line-height: 18px">автоматизация позволяет освободить время для команды для решения сложных задач;</span></li>
<li><span style="line-height: 18px">автоматические регрессионные тесты первыми распознают возможные ошибки в приложении;</span></li>
<li><span style="line-height: 18px">автотесты позволяют получить информацию о приложении быстро;</span></li>
<li><span style="line-height: 18px">тесты являются хорошим видом документации;</span></li>
<li><span style="line-height: 18px">тесты позволяют нам писать код сразу на хорошем уровне (TDD).</span></li>
</ul>
<div>Все вышеперечисленное также позволяет говорить о ROI (return of investment) автоматизированных тестов. Они позволяют поддерживать приложение в стабильном состоянии от сборки к сборке, освобождают время команды для концентрации над теми задачами, которые позволят улучшить продукт, а значит сделать его более выгодным для рынка.</div>
<div>Но, к сожалению, как бы хорошо все вышеперечисленное не выглядело, мы часто сталкиваемся с проблемами при внедрении автоматических тестов. Эти проблемы были еще в 2001 году <a href="http://www.testpoint.com.au/attachments/093_Seven%20Steps%20to%20Test%20Automation%20Success.pdf">сформулированы</a> <a href="http://pettichord.com/">Bret Pettichord</a>, экспертом в области тестирования и разработчиком такого продукта как <a href="http://watir.com/">Watir</a>. Итак, вот список этих проблем:</div>
<div>
<ul>
<li><span style="line-height: normal">нельзя автоматизировать тесты, используя только свободное время, этим нужно заниматься полноценно;</span></li>
<li><span style="line-height: normal">отсутствуют или не поставлены четкие цели;</span></li>
<li><span style="line-height: normal">недостаток опыта;</span></li>
<li><span style="line-height: normal">если кто-либо начинается заниматься автотестами, он теряет опыт в основной профессии (в 2001 еще не было роли тестировщик-автоматизатор);</span></li>
<li><span style="line-height: normal">нужна высокая мотивация, чтобы заниматься автотестами, так как их сложно закончить, и приходится писать и переписывать;</span></li>
<li><span style="line-height: normal">многие начинают заниматься автоматизацией ради автоматизации, а не ради улучшения качества продукта;</span></li>
<li><span style="line-height: normal">уход в технологические проблемы автоматизации так же приводит к потери цели, а зачем же автотесты пишутся.</span></li>
</ul>
</div>
<div>Я полностью согласен с этим списком, но сегодняшний день он немного устарел, так что мне бы хотелось привести список проблем, сформулированных Лизой Криспин в книге <a href="http://www.amazon.com/Agile-Testing-Practical-Addison-Wesley-Signature/dp/0321534468/ref=pd_ts_b_2?ie=UTF8&amp;s=books">Agile Testing: A Practical Guide for Testers and Agile Teams.</a> Вот они:</div>
<div>
<ul>
<li><span style="line-height: normal">отношение программистов &#8211; многие не понимают зачем нужны автотесты, если уже есть тестировщики, и уж тем более не хотят помогать писать подобные тесты, так как &#8220;мы тут сами зашиваемся, а тестируете вы и так нормально&#8221;;</span></li>
<li><span style="line-height: normal">очень долгий период, когда нужно много вкладываться в автоматизацию &#8211; многие могут не довести до конца и сдаться;</span></li>
<li><span style="line-height: normal">первоначальный вклад &#8211; прежде чем начать заниматься автотестами, нужно провести долгий анализ средств, стратегии и прочего, а как этим займешься, когда одна задача ASAPее другой;</span></li>
<li><span style="line-height: normal">тесты приходится поддерживать и переписывать &#8211; &#8220;это понятно, непонятно только зачем команда разработки постоянно меняет UI приложения&#8221; мог бы сказать какой-нибудь тестировщик и начать тестировать как раньше;</span></li>
<li><span style="line-height: normal">legacy code &#8211; одно из самых страшных проклятий команды разработки, очень часто руки опускаются и никто не занимается улучшением это кода, написанием тестов и так далее;</span></li>
<li><span style="line-height: normal">страх &#8211; многие боятся, что ничего не получится, время уйдет, а продукт сдавать надо;</span></li>
<li><span style="line-height: normal">старые привычки &#8211; вытекают непосредственно из предыдущего пункта: &#8220;раньше автотестов не было, но мы же как-то сдавали продукты&#8221;.</span></li>
</ul>
<div>Как бороться с этими проблемами? Вопрос хороший и нужный, но, к сожалению не имеющий четкого ответа. В рамках agile разработки эти проблемы являются проблемами всей команды в целом, соответственно вся команда и должна идти вперед и вместе. Но при этом, обязательно должен быть лидер, который поведет за собой. Возможно, тому, кто хочет внедрить автоматизацию тестирования, придется поначалу заниматься этим в свое личное время, но успех непременно окупит все эти затраты.</div>
<p>В своем следующем посте я хотел бы рассказать о стратегиях автоматизации, при этом частично я расскажу, как бороться с выше озвученными проблемами.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://agilerussia.ru/articles/qa-automation-part-2-autotesting1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Тренинг &#8220;Agile Testing&#8221;, 17–18 февраля 2012 года, Москва</title>
		<link>http://agilerussia.ru/events/training-agile-tst_feb_2012/</link>
		<comments>http://agilerussia.ru/events/training-agile-tst_feb_2012/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 06:54:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[События]]></category>
		<category><![CDATA[Тренинги]]></category>

		<guid isPermaLink="false">http://agilerussia.ru/?p=854</guid>
		<description><![CDATA[17–18 февраля 2012 года в Москве пройдет тренинг ScrumTrek  “Agile Testing”, тренер Илья Гаврилов. Тренинг позволяет тестировщикам эффективно строить свою работу в Agile-проектах. Он построен в виде учебного проекта, где теория перемежается с практикой. Особенно большое внимание уделяется сложным вопросам взаимодействия программистов и тестировщиков, планирования тестирования, автоматизации тестирования и построения эффективной архитектуры тестов, а также поддержания актуального состояния автоматизированных…]]></description>
			<content:encoded><![CDATA[<p><a href="http://agilerussia.ru/wp-content/uploads/2012/01/ScrumTrek_Logo2.jpg"><img class="alignleft size-full wp-image-771" style="margin: 30px;" title="ScrumTrek_Logo" src="http://agilerussia.ru/wp-content/uploads/2012/01/ScrumTrek_Logo2.jpg" alt="" width="80" height="80" /></a>17–18 февраля 2012 года в Москве пройдет тренинг <a href="http://scrumtrek.ru/">ScrumTrek</a>  <a href="http://scrumtrek.ru/TST-Agile-Testing/">“Agile Testing”</a>, тренер Илья Гаврилов.</p>
<p>Тренинг позволяет тестировщикам эффективно строить свою работу в Agile-проектах. Он построен в виде учебного проекта, где теория перемежается с практикой. Особенно большое внимание уделяется сложным вопросам взаимодействия программистов и тестировщиков, планирования тестирования, автоматизации тестирования и построения эффективной архитектуры тестов, а также поддержания актуального состояния автоматизированных тестов при постоянном изменении требований.</p>
<p>Содержание</p>
<p>1. Цель тестирования в Agile</p>
<p>2. Планирование задач по тестированию на итерацию (спринт)</p>
<ul>
<li>Работа с документацией часть 1 – стори тесты</li>
<li>Работа с документацией часть 2 – акцептанс тест кейсы</li>
<li>Анализ требований</li>
<li>Декомпозиция задач</li>
<li>Практика по оценке задач, имитация.</li>
</ul>
<p>3.Ежедневный стендап митинг</p>
<ul>
<li>Практика проведения стендап митингов</li>
<li>Введение в историю перед разработкой и тестированием</li>
</ul>
<p>4.Написание тест кейсов в Agile</p>
<ul>
<li>Подход к разработке тест кейсов</li>
<li>Практика по написанию тест кейсов</li>
</ul>
<p>5.Передача истории из разработки в тестирование</p>
<ul>
<li>Практика проведения передачи истории в тестирование</li>
</ul>
<p>6.Тестирование готовой истории</p>
<ul>
<li>Практика тестирования, написания дефектов, работа с тестами</li>
<li>Взаимодействие с разработчиками</li>
</ul>
<p>7.Автоматизация тестирования в Agile</p>
<ul>
<li>Подход к автоматизации в Agile</li>
<li>Примеры применения автоматизации с использованием TestComplete и Selenium</li>
<li>Практика</li>
</ul>
<p>8.Работа с частыми изменениями в Agile</p>
<ul>
<li>Оценка изменений</li>
<li>Обновление тест кейсов</li>
<li>Перепроверка</li>
<li>Обновление автоматизации</li>
<li>Ревью и ретроспектива</li>
</ul>
<p>9.Советы и рекомендации</p>
]]></content:encoded>
			<wfw:commentRss>http://agilerussia.ru/events/training-agile-tst_feb_2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Тренинг &#8220;Kanban для управления проектами&#8221;, 16 февраля 2012г, Москва</title>
		<link>http://agilerussia.ru/events/training-kanban-mng_feb_2012/</link>
		<comments>http://agilerussia.ru/events/training-kanban-mng_feb_2012/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 06:54:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[События]]></category>
		<category><![CDATA[Тренинги]]></category>

		<guid isPermaLink="false">http://agilerussia.ru/?p=849</guid>
		<description><![CDATA[16 февраля 2012г в Москве пройдет тренинг ScrumTrek  “Kanban для управления проектами”, тренер Дмитрий Лобасев. Целевая аудитория Разработчики, тестировщики, менеджеры проектов, лидеры команд. Описание тренинга Kanban &#8211; современная гибкая (agile) методика управления проектами. Она произошла из философии Lean и TPS (Toyota Production System).  Термин Канбан имеет дословный перевод: “Кан” значит видимый, визуальный, и “бан” значит карточка. Kanban успешно…]]></description>
			<content:encoded><![CDATA[<p><a href="http://agilerussia.ru/wp-content/uploads/2012/01/ScrumTrek_Logo2.jpg"><img class="alignleft size-full wp-image-771" style="margin: 30px;" title="ScrumTrek_Logo" src="http://agilerussia.ru/wp-content/uploads/2012/01/ScrumTrek_Logo2.jpg" alt="" width="80" height="80" /></a>16 февраля 2012г в Москве пройдет тренинг <a href="http://scrumtrek.ru/">ScrumTrek</a>  <a href="http://scrumtrek.ru/trainings/kanban_dlya_upravleniya_proektami/">“Kanban для управления проектами”</a>, тренер Дмитрий Лобасев.</p>
<h3>Целевая аудитория</h3>
<p>Разработчики, тестировщики, менеджеры проектов, лидеры команд.</p>
<h3>Описание тренинга</h3>
<p>Kanban &#8211; современная гибкая (agile) методика управления проектами. Она произошла из философии Lean и TPS (Toyota Production System).  Термин Канбан имеет дословный перевод: “Кан” значит видимый, визуальный, и “бан” значит карточка. Kanban успешно используется для проектов в стадии поддержки продукта, для команд &#8211; разработчиков продуктов, для внутренних отделов компаний, проектов с высокой степенью специализации членов команды и во многих других ситуациях. Переход на Kanban для многих команд помогает быстро идентифицировать проблемы и эффективно бороться с ними.</p>
<p>Цель тренинга – подготовить участников к практическому применению Kanban в реальных проектах.</p>
<p>Поток работ</p>
<p>- Управление и визуализация потока работ</p>
<p>- Упражнение «Поток работ»</p>
<p>- Ограничение одновременно выполняющейся работы в Канбан</p>
<p>- Картирование потока ценности (Value Stream Mapping)</p>
<p>Методология Канбан</p>
<p>- Работа с багами, управление приоритетными работами, декомпозиция на технические задачи</p>
<p>- Канбан-карточка</p>
<p>- Ограничение одновременно выполняющейся работы в Канбан</p>
<p>&nbsp;</p>
<p>Каденции</p>
<p>- Понятие каденции</p>
<p>- Проведение демо</p>
<p>- Планирование работ</p>
<p>- Проведение ежедневного стендапа</p>
<p>&nbsp;</p>
<p>Командная работа и улучшение процессов</p>
<p>- Самоорганизация проектной команды</p>
<p>- Постоянное улучшение процесса</p>
<p>- Проведение ретроспектив</p>
<p>- Применение методики «5 почему»</p>
<p>- Системный подход к оптимизации процессов</p>
<p>&nbsp;</p>
<p>Кайдзен</p>
<p>- Метрики эффективности процесса</p>
<p>- Упражнение «Оптимизация процесса»</p>
<p>- Устранение узких мест</p>
<p>- Устранение потерь</p>
<p>- Уменьшение вариативности</p>
<p>&nbsp;</p>
<p>Внедрение ЛИН</p>
<p>- Стратегия и тактика внедрения ЛИН</p>
<p>- Применение ЛИН в вашем проекте</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://agilerussia.ru/events/training-kanban-mng_feb_2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Архитектурные взаимодействия в Agile проектах</title>
		<link>http://agilerussia.ru/practices/agile-architecture-interactions/</link>
		<comments>http://agilerussia.ru/practices/agile-architecture-interactions/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 06:53:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Практики]]></category>
		<category><![CDATA[Статьи]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[backlog]]></category>

		<guid isPermaLink="false">http://agilerussia.ru/?p=825</guid>
		<description><![CDATA[Автор: James Madison http://www.infoq.com/articles/agile-architecture &#160; Agile разработка начинается еще до того, как достигнуто полное понимание результата. Планы и дизайн уточняются по мере получения новых знаний. Agile разработка нацелена на то, чтобы доверять мнению тех, кто стоит ближе к проблеме. Поддерживается постоянное взаимодействие с заказчиками.Архитектура задает технологии, создает шаблоны проектирования, улучшает качество, и взаимодействует со всеми…]]></description>
			<content:encoded><![CDATA[<p><span style="color: #0000ff;"><strong>Автор:</strong></span> James Madison</p>
<p><a href="http://www.infoq.com/articles/agile-architecture">http://www.infoq.com/articles/agile-architecture</a></p>
<p>&nbsp;</p>
<p><a href="http://agilerussia.ru/wp-content/uploads/2012/01/arch-int_1software-logo.jpg"><img class="alignleft size-full wp-image-827" title="arch-int_1software logo" src="http://agilerussia.ru/wp-content/uploads/2012/01/arch-int_1software-logo.jpg" alt="" width="73" height="90" /></a>Agile разработка начинается еще до того, как достигнуто полное понимание результата. Планы и дизайн уточняются по мере получения новых знаний. Agile разработка нацелена на то, чтобы доверять мнению тех, кто стоит ближе к проблеме. Поддерживается постоянное взаимодействие с заказчиками.Архитектура задает технологии, создает шаблоны проектирования, улучшает качество, и взаимодействует со всеми заинтересованными сторонами.Комбинация этих двух областей – это Agile архитектура, подход, который использует Agile методы для продвижения в сторону хорошей архитектуры. Для успешной Agile архитектуры требуется архитектор, который понимает суть Agile разработки, взаимодействует с командой в хорошо определенных точках, влияет на нее, используя навыки полученные из опыта работы архитектором в проектах с другими методологиями, и выполняет функции архитектора, независимые от проектной методологии.</p>
<p><strong>Точки архитектурного взаимодействия</strong></p>
<p>На Рисунке 1 показан гибрид scrum-а<a name="t1" href="#r1">[1]</a>, экстремального программирования (Extreme Programming)<a name="t2" href="#r2">[2]</a> и последовательного управления проектом (sequential project management) – то, что я нашел эффективным для проведения работ по архитектуре в 14 Agile проектах, на протяжении последних восьми лет.</p>
<p><a href="http://agilerussia.ru/wp-content/uploads/2012/01/arch-int_figure-1.jpg"><img class="alignnone size-full wp-image-828" title="arch-int_figure 1" src="http://agilerussia.ru/wp-content/uploads/2012/01/arch-int_figure-1.jpg" alt="" width="481" height="436" /></a></p>
<p>&nbsp;</p>
<p><strong>Рисунок 1. Гибридная схема для работ по Agile архитектуре. Вовлеченность архитектора в ход проекта помогает достигать проектных целей. Таблица 1, ниже, объясняет элементы схемы: точки взаимодействия (зеленым), критически важные навыки (золотым) и функции архитектора (красным). </strong></p>
<p>Таблица 1 кратко описывает элементы Рисунка 1. Архитектурные функции – это те, которые обычно выполняет архитектор в проекте, хотя список не исчерпывающий.</p>
<p><a href="http://agilerussia.ru/wp-content/uploads/2012/01/arch-int_table-1.jpg"><img class="alignnone size-full wp-image-831" title="arch-int_table 1 small" src="http://agilerussia.ru/wp-content/uploads/2012/01/arch-int_table-1-small.jpg" alt="" width="500" height="243" /></a></p>
<p>Таблица 2 показывает, как архитектурные функции пересекаются с точками взаимодействия, и показывает основные проблемы архитектора на этом пересечении.Взятые вместе, три категории и четыре их пункта, составляют схему, полезную для понимания и выполнения Agile архитектуры. Эта схема может быть расширена за счет добавления большего числа категорий или пунктов, базируясь на других приоритетах и предпочтениях.</p>
<p><a href="http://agilerussia.ru/wp-content/uploads/2012/01/arch-int_table-2.jpg"><img class="alignnone size-full wp-image-832" title="arch-int_table 2 small" src="http://agilerussia.ru/wp-content/uploads/2012/01/arch-int_table-2-small.jpg" alt="" width="500" height="323" /></a></p>
<p><strong>Предварительное планирование</strong></p>
<p>В Agile проекте каждая функция архитектора начинается с предварительного планирования, как это в основном происходит и в других проектах, не зависимо от методологии. Архитектор:</p>
<ul>
<li>принимает основные решения по аппаратному и программному обеспечению (hardware and software), в основном используя существующие корпоративные стандарты, и возможно приводит &#8220;доказательства правильности концепции&#8221; (proofs-of-concept) при необходимости использования новых продуктов;</li>
<li>определяет важные шаблоны проектирования на высоком<a name="t3" href="#r3">[3]</a> на детальном<a name="t4" href="#r4">[4]</a> уровне;</li>
<li>определяет основные возможности для повторного использования компонентов и сервисов;</li>
<li>создает высокоуровневые диаграммы;</li>
<li>описывает атрибуты качества<a name="t5" href="#r5">[5]</a>, технические и бизнес, и определяет их допустимый уровень<a name="t6" href="#r6">[6]</a>; и</li>
<li>определяет каналы взаимодействия встречаясь с заинтересованными лицами (stakeholders), чтобы понять их проблемы и показать им основное техническое направление.</li>
</ul>
<p>Хотя большинство из этих пунктов не отличается от работ в не-Agile подходах, предварительные работы по архитектуре для Agile разработки содержат небольшое, но важное отличие.Архитектура скорее должна включать набор опций, чем специфическое решение.Такой подход основывается на Agile допущении, что эмпирические знания, собранные всеми участниками при построении системы, сделают лучшие опции более очевидными<a name="t7" href="#r7">[7]</a>.Результат будет успешным, если архитектор не ограничивается одним решением слишком рано, и особенно это важно при Agile разработке. Использование итераций, создание работающей системы после каждой итерации, поощрение взаимодействия, имеет обратный эффект, который дает всем участникам значительные возможности, чтобы найти лучшие решения позже, если они не смогли понять их раньше<a name="t8" href="#r8">[8]</a>.</p>
<p>Например, в проекте хранилища данных возник вопрос: поставлять данные непосредственно в другое место или строить промежуточное хранилище. Прямая передача данных (direct feed) оказалась более сложной, что приводило к снижению надежности и эффективности работы. Однако промежуточное хранилище использовало больше места, что приводило к росту стоимости жизни системы.Архитекторы отметили следующее: 1) любой из этих вариантов отвечает целям бизнеса, 2) мы не может определить, какой дизайн лучше, 3) мы уверены, что команда сможет принять правильное решение в пределах архитектурных границ.По мере развития проекта ответ стал очевиден, команда его легко определила и архитекторы подписались под ним.Определение диапазонов и границ более соответствует Agile подходу, чем определение специфических решений, но архитекторы должны все же определить эти диапазоны и границы заранее.</p>
<p><strong>Доска задач и баклог</strong></p>
<p>Предварительное планирование быстро переходит в определение задач на доске (storyboard­ing) и в построение баклогов продукта и отдельного спринта, причем архитектор является основным заинтересованным лицом (stakeholder).Архитектор должен посещать ранние сессии по определению задач на доске (storyboarding) и добавлять архитектурные user story, которые задают фундамент или определяют архитектурное направление.Он или она должны также посещать последующие сессии по определению задач на доске между спринтами, чтобы вносить архитектурные user story, которые &#8220;настраивают&#8221; архитектуру или корректируют нежелательные отклонения. Архитектор должен работать с product owner-ом, чтобы приоритезировать эти истории и построить их в соответствии с бизнес функциональностью в спринтах.</p>
<p>Архитектор часто становится движущей силой на сессиях по определению задач на доске, поскольку у него или нее есть всеобъемлющие знания о бизнесе и технологиях.Я обнаружил, что хороший архитектор может определить требования на доске задач, исходя из бизнеса, объяснить технические ограничения людям из бизнеса, объяснить потребности бизнеса в технических терминах команде.Когда архитектор делает это, он или она может помочь всем сторонам достичь успеха, плавно интегрируя архитектурные user story в доску задач и в баклог.</p>
<p>Например, программа хранилища данных стремилась достичь высокого уровня интеграции корпоративных данных.Архитекторы выступали за использование размерного моделирования (dimensional modeling) как основного подхода [прим. переводчиков: см. <a href="http://www.interface.ru/public/wh/wh_.htm">http://www.interface.ru/public/wh/wh_.htm</a> ]. Они также выступали за использование bus matrix [прим. перевод: см. <a href="http://en.wikipedia.org/wiki/Enterprise_bus_matrix">http://en.wikipedia.org/wiki/Enterprise_bus_matrix</a>] как основного инструмента для организации работы с данными, потому что bus matrix поддерживает декомпозицию и итеративность<a name="t9" href="#r9">[9]</a>.Бизнес (и большинство технических специалистов) никогда не использовали bus matrix, поэтому архитекторы должны были проявить содействие на первой сессии по определению задач на доске.На третью сессию product owner-ы распечатали свои user story в формах bus matrix.К пятой сессии команда выразила обеспокоенность, что успех оценивается только по компонентам bus matrix. Поэтому, мы должны были немного отступить и отметить менее заметную работу, такую как повторно используемые компоненты, решение вопросов качества данных и внедрение новых инструментов. Подход получил свой собственный толчок, но стартовал он благодаря содействию со стороны архитекторов.</p>
<p><strong>Участие в спринте</strong></p>
<p>Написание кода &#8211; это мощный способ убедиться в том, что архитектор полностью понимает создаваемую архитектуру<a name="t10" href="#r10">[10]</a>. Но мы будем допускать, что организация получает большую ценность от того, что использует архитекторов сразу на нескольких проектах, хотя при этом снижается их способность вникнуть во все детали одного проекта.К счастью, agile предлагает решение—доверяй команде. Для этого нужно,чтобы архитектор взаимодействовал с командой во время спринта, понимая цели и помогая решить возникающие проблемы дизайна<a name="t11" href="#r11">[11]</a>.Чтобы справиться одновременно с несколькими проектами, архитектор должен оставить специфику команде. Пока ревью архитектуры работающей системы показывает высокое качество архитектуры, архитектор может оставлять детали членам проектной команды, будучи уверенным, что их общие знания и глубокое знание задачи будут направлять работу над системой в нужное русло. Поэтому, реальное участие в реализации оправданно, если спринт сошел с верного пути в архитектурном или другом смысле.В такое время архитектор становится полноправным членом команды, размещается вместе с ней, и полностью подчиняется задачам команды.</p>
<p>Например, существует давний вопрос по архитектуре хранилищ данных: использовать нормализованное или размерное моделирование, и до какой степени<a name="t12" href="#r12">[12]</a>. В одном из agile проектов хранилища данных архитекторы решили этот вопрос так: для максимальной функциональности нужна реализация обеих моделей в их полной форме. После нескольких спринтов скорость проекта не соответствовала требуемым срокам &#8211; общая проблема, независимо от методологии.Чтобы посмотреть, помогут ли архитектурные изменения увеличить скорость проекта, в начале четвертого спринта я поучаствовал в проекте как полноправный член команды.На основе этого полноправного участия в проекте, а также вдохновенных замечаний от семи экспертов их двух команд, стало очевидно, что протаскивание всех данных через нормализованную модель, с тем чтобы положить их в размерную модель, не нужно для удовлетворения бизнес целям (для этого конкретного проекта, а не в общем). Мы планировали нормализованный уровень целый год, а потом, на базе нового понимания, мы убрали его в течение 30 дней. Для этого были нужны обсуждения с менеджментом и архитектурным руководством, но изменение было сделано в следующем спринте и дало проекту значительное увеличение скорости.</p>
<p><strong>Работающая система</strong></p>
<p>После каждого спринта команда и product owner должны представить работающую систему на ревью спринта, чтобы все заинтересованные лица, одним из которых является архитектор, могли увидеть общий прогресс и дать свои комментарии.Ревью спринта обычно длится всего несколько часов, с множеством стейкхолдеров, соперничающих за время разговора, поэтому архитектору стоит начать ревью работающей системы за несколько дней до официального ревью.Некоторые аспекты все еще могут быть в работе, но при обычных подходах к окончанию спринта система должна быть достаточно стабильной для того, чтобы сделать ревью, которое имеет смысл. Хорошо управляемые Agile проекты требуют итеративную поставку документации вместе с работающей системой, включая архитектурную документацию. Незадокументированный код и системная функциональность не должны рассматриваться как рабочая система. Ревью этой документации, когда она появляется в каждом спринте &#8211; это полезная форма архитектурного ревью.Что более важно, архитектор должен делать ревью работающей системы, заглядывая глубоко в код и в системную функциональность.</p>
<p>Например, за последние десять лет я накопил 700 скриптов, которые автоматизируют архитектурный анализ платформы хранилища данных или системы обработки данных. Когда мои команды выпускают работающую систему, я запускаю свои скрипты.За минуты я получаю отчеты, которые подробно описывают здоровье платформы, схему, модель данных, качество данных и другие аспекты архитектуры. Выявленные проблемы могут быть решены в текущем спринте или поставлены в очередь в баклог. Для ускорения процесса я предлагаю командам свои скрипты, чтобы они сами смогли сделать автоматизированный анализ архитектуры без меня.Безусловно, у них есть и свои ценные скрипты, которыми они проверяют что-то важное, что пропустил я. Вместе мы повышаем архитектурное качество системы, когда мы стараемся обойти друг друга в автоматизации проверки архитектуры.</p>
<p><strong>Навыки Agile архитектора</strong></p>
<p>Участие в этом взаимодействии в качестве архитектора &#8211; это бурный опыт.Все заняты, разработчики могут смотреть на архитектора со скептицизмом, и кажется что всегда есть приоритет бизнес целей, который оправдывает отход от хорошей архитектуры. Для уменьшения волнений нужно много тонких навыков, которые приходят только с опытом, но следующие четыре возглавляют список.</p>
<p><strong>Декомпозиция в форме спринтов</strong></p>
<p>Agile разработка требует, чтобы product owner сделал декомпозицию user story до такого уровня, когда они достаточно малы, чтобы их можно было сделать за спринт, но вместе с тем достаточно значительны, чтобы можно было показать ценность для бизнеса. Подобно этому техническая команда разделяет user story так, чтобы их можно было эффективно собрать во время билда. Вклад архитектора в декомпозицию заключается в том. чтобы определить границы архитектурной значимости и работать вместе с product owner-ом и технической командой, чтобы убедиться, что общая декомпозиция работы соответствует этим границам. Архитектурно значимая граница существует между любыми двумя наборами бизнес или технической функциональности, чьи аппаратное обеспечение и ПО, шаблоны дизайна или атрибуты качества нетривиально разные.Рассмотрим два примера на Рисунке 2.</p>
<p><a href="http://agilerussia.ru/wp-content/uploads/2012/01/arch-int_figure-2.jpg"><img class="alignnone size-full wp-image-833" title="arch-int_figure 2small" src="http://agilerussia.ru/wp-content/uploads/2012/01/arch-int_figure-2small.jpg" alt="" width="500" height="245" /></a></p>
<p><strong>Рисунок 2. Все участвуют в декомпозиции user story к форме, которую можно сделать за спринт. Архитектор участвует, используя границы архитектурной значимости, как показано в этих примерах. Числа соответствуют спринтам или частям спринтов, в зависимости от объема работы.</strong></p>
<p>В первом примере нам нужно построить корпоративный веб сервис для данных третьей стороны, используя сервис ориентированную архитектуру (service-oriented architecture, SOA). Проектная команда использовала подход с девятью спринтами, структурированный вокруг трех основных областей технической функциональности: интерфейс сервиса, уровень сохраняемости (persis­tence layer) и получение внешних данных.В первых двух спринтах команда опубликовала интерфейс сервиса.Вызов сервиса возвращал только одну жестко прописанную запись, но транзакция была через абсолютно функциональный вызов сервиса с хорошо определенным контрактом.Архитектурно это задействовало Java, стандарты веб сервисов, XML, шаблоны вызова, и дало клиентской системе результат для построения экранов, которые можно было показать бизнесу. Во второй группе спринтов команда сделала так, что сервис мог возвращать около 100 записей из локальной базы, но пока не от внешнего поставщика.Это определило базу данных, модель данных и объектно-ориентированный слой для работы базой, и дало больше кейсов, которые можно было показать на бизнес ревью. В третьей группе спринтов команда сделала запросы сервера к внешнему поставщику данных.Это включило в себя решение вопросов межсетевой защиты, формата данных внешнего поставщика данных, и требований к времени задержки. С самого начала растущая функциональность сервиса показывала меру прогресса основываясь на работающей системе, позволяя команде сфокусироваться на более узком наборе технических вопросов, и в то же время давая бизнесу видимый результат.</p>
<p>Во втором примере мы должны были поставить большое хранилище данных. С точки зрения бизнеса поставляемые компоненты можно было бы легко декомпозировать на уровне субъектов данных, которые красиво отображались в структуру таблиц. Но с технической точки зрения атрибуты внутри таблицы могут иметь значительные архитектурные различия.Например, премии и потери &#8211; это основная страховая информация, которую получают прямо из систем-источников, но пересчитанные премии и обнаруженные потери требуют сложных вычислений, которые сами по себе представляют собой системы<a name="t13" href="#r13">[13]</a>.С точки зрения бизнеса, премии &#8211; это одна категория, а потери &#8211; это другая. С точки зрения архитектуры, основные атрибуты данных &#8211; это одна категория, а атрибуты определяемые по сложным вычислениям &#8211; это другая категория.Чтобы сбалансировать эти различия, команда разделила работы по сложности, что позволило быстро поставить основные атрибуты и постепенно добавлять более сложные атрибуты.</p>
<p>В каждом из этих примеров, и в общем<a name="t14" href="#r14">[14]</a>, команде нужно уделять как можно больше внимания тому, чтобы сделать декомпозицию в соответствии с требованиями бизнеса. Но для эффективной поставки проекта архитектурные границы должны иногда преобладать, потому что перепрыгивание через архитектурные границы может принести слишком много одновременных проблем, вызывая риск для проекта.Если бы мы попытались декомпозировать задачу по данным в примере с SOA, так как мы это сделали с хранилищем данных, команде пришлось бы обратиться ко многим новым технологиям сразу. Это бы привело к большим проблемам, даже если бы для бизнеса было предпочтительней увидеть живые данные намного раньше, чем он их увидел.</p>
<p>Аналогично, если бы в примере с хранилищем данных мы сделали декомпозицию по технологическим уровням, это бы замедлило поставку основных атрибутов до скорости сложных.Это бы привело к серьезной недопоставке, даже если бы бизнес предпочел увидеть сложные атрибуты так быстро, как это возможно. То, что нельзя использовать декомпозицию из одного примера в другом примере, говорит о том, что характер декомпозиции должен соответствовать природе поставляемой системы.</p>
<p><strong>Взаимодействие с Product Owner-ом</strong></p>
<p>Путь от декомпозированной проблемы к работающей системе лежит через product owner-а, и архитектору необходимо показать ценность архитектурных работ product owner-у. Наиболее критические аспекты этого относятся к созданию и рефакторингу дизайна системы, и к определению ценности атрибутов качества в терминах бизнеса.Каждая из этих задач требует времени команды, которой еще надо закончить с бизнес функциональностью.Если product owner не понимает ценность архитектурных работ, то эта работа будет постоянно получать низкий приоритет в баклоге, что в результате выльется в плохую архитектуру.</p>
<p>К счастью почти все работы по дизайну имеют непосредственное отношение к атрибутам качества, и почти все улучшения атрибутов качества переводятся в ценность для бизнеса.Сопровождаемость (maintainability) системы позволяет делать бизнес функциональность на более поздних спринтах быстрее, быстрее внедрять в жизнь желаемые улучшения, что в свою очередь дает более высокую скорость выхода на рынок.Масштабируемость позволяет поддерживать высокую производительность, даже когда система проходит через пик активности во время маркетинговой компании, что предотвращает потерю бизнеса в критические моменты.И так далее. Естественно связь хорошей архитектуры с ценностью для бизнеса не уникальна для Agile разработки.Но власть, которую Agile разработка дает product owner-у, делает особенно важной необходимость объяснять значение хорошей архитектуры часто. Особенно важна эта пропаганда на первых нескольких спринтах, когда нужно построить базовые для архитектуры компоненты, которые сложно изменить впоследсвтии<a name="t15" href="#r15">[15]</a>, и эта работа невидима для пользователей.</p>
<p>Например, мы делали интранет приложение, в котором предполагалось иметь около 300 экранов ввода. Мы могли бы сделать столько экранов, сколько возможно на первых нескольких спринтах, чтобы показать быстрый прогресс и вселить уверенность в заинтересованных лиц. Тем не менее мы убедили product owner-а позволить команде построить гибкий дизайн ввода полей, который бы можно было широко использовать на всех экранах.Это привело к тому, что на первых спринтах было мало экранов, но зато повысилась сопровождаемость системы. Ближе к концу проекта это позволило значительно повысить скорость создания экранов, что было бы невозможно, если бы мы не объяснили product owner-у важность ранних архитектурных работ, и не получили бы согласие на эти работы.</p>
<p><strong>Архитектурный баклог</strong></p>
<p>Как все заинтересованные лица, архитектор хочет добавить в систему функциональность намного быстрее, чем это позволяет скорость разработки. поэтому часть функциональности (в этом случае &#8211; архитектурной) должна быть помещена в баклог. Как это обычно делается, работы размещаются в порядке приоритетов, и если недостаточно денег или времени для работы, она может не быть выполнена. Вы можете возразить. что это приведет к нарушению архитектуры. Конечно, если архитектурные работы получают настолько низкий приоритет, что они никогда не будут сделаны, то архитектура деградирует. Но правильное использование принципов баклога и правильное отстаивание интересов при общении с product owner-ом приводит к тому, что значимые работы по архитектуре будут сделаны, а менее значимые потенциально могут и не быть выполнены до конца проекта.</p>
<p>Чтобы иметь четкое представление об архитектуре и чтобы определять приоритет работ, нужен отдельный архитектурный баклог для отслеживания архитектурных работ.Согласно большинству литературы, есть только один баклог.На практике, мне показалось полезным поддерживать несколько физических баклогов, каждый из которых сфокусирован на своей цели, но все они вместе составляют один логический баклог.Баклог того, что выходит за рамки проекта (out-of-scope backlog) определяет то, что не является целью проекта, баклог пожеланий (wish list backlog) перечисляет работы, которые вероятно никогда не будут сделаны. и т.д.Такая модульность помогает оставлять понятным основной баклог, и не терять при этом перспективу. То же самое с архитектурным баклогом. Он поддерживается архитектором, сообщается product owner-у и команде в подходящее время и в подходящем месте. Пункты из этого лога передвигаются в основной баклог в зависимости от решения product owner-а, под влиянием архитектора. Я считаю, что очень полезно дать пунктам вес и оценку, которая показывает степень архитектурного качества проекта. Такая оценка дает понятный механизм для подталкивания product owner-а, чтобы можно было передвигать истории из архитектурного в основной баклог, и сделать их.</p>
<p><strong>Инкрементальная архитектура предприятия</strong></p>
<p>Подход к архитектуре, который я пропагандирую, базируется на инкрементном подходе к построению ПО. В основном этот подход касается проектных бизнес целей, но максимальную ценность для крупной организации можно получить поддерживая этот подход для всей архитектуры предприятия.</p>
<p>Использование четырех функций, которыми мы себя здесь ограничили, я определяю архитектуру предприятия как процесс, который обеспечивает то, что архитекторы:</p>
<ul>
<li>используют стандартные средства аппаратного и программного обеспечения,</li>
<li>используют одни шаблоны проектирования и язык,</li>
<li>делают оценку по одним и тем же атрибутам качества, используя те же определения и одну и ту же шкалу,</li>
<li>делают все это внутри систем и на межсиситемной основе,</li>
<li>взаимодействуют друг с другом и со своими prod­uct owner-ами.</li>
</ul>
<p>Межсистемное требование базируется на наблюдении, что системное взаимодействие потенциально вводит новый уровень шаблонов дизайна<a name="t16" href="#r16">[16]</a> и может сместить все атрибуты качества. Например, две системы могут масштабироваться индивидуально,но не масштабироваться, когда они взаимодействуют. В основном это определение архитектуры предприятия не зависит от agile, но с точки зрения agile, основные аспекты &#8211; это взаимодействие и сотрудничество между архитекторами, архитекторами и технической командой и product owner-ами.</p>
<p>Взаимодействие между архитекторами лучше всего достигается, когда есть централизованные практики и формальные процессы архитектуры предприятия. Высшее руководство должно создавать эти практики, убедится, что они помогают и измеряют взаимодействия между архитекторами. Руководство должно финансировать их в той мере, в какой оно заинтересовано в достижении хорошей архитектуры предприятия. Однажды сформировавшись, эти практики должны устанавливать формальные процессы и инструменты, такие как архитектурный руководящий комитет (steering committee), который публикует формальные архитектурные оценки, процесс совместного ревью (peer review) который проверяет наличие проблем и внедряет действенные улучшения, и управление растущим набором стандартов, которые появляются во время работ над проектами.Но во все времена, должны доминировать следующие два ключевые agile соображения. Во-первых, это сообщество взаимодействующих лиц, а не просто процесс или коллекция артефактов.Во-вторых, сила этого процесса не в его формальной власти, а в законах, которые он порождает из архитектурной экспертизы и прямого участия в проектной работе.</p>
<p>Взаимодействие с agile командой и product owner-ами лучше всего достигается за счет физической децентрализации архитекторов и за счет того, что они обсуждают проблемы архитектуры предприятия в моменты взаимодействия.Централизованные активности, которые я предлагаю, являются важными, но не основными в работе архитектора. Архитектор должен проводить столько времени, сколько это целесообразно, вместе с командой и product owner-ом, чтобы максимизировать возможности для прямого общения.Когда архитектор защищает аспекты архитектуры для проектной работы, он или она должны использовать доводы архитектуры предприятия. Например, когда архитектор защищает определенный набор ПО и аппаратного обеспечения, нужно основывать это не только на нуждах проекта, но также на направленности архитектуры предприятия &#8211; подобно шаблонам дизайна и атрибутам качества.Это особенно важно для вопросов межсистемного взаимодействия. Архитектор может понять динамику межсистемного взаимодействия, в отличие от команды и product owner-а, поэтому архитектор ответственен за то, чтобы сделать видимыми скрытые проблемы или определить более широкие возможности, которых не увидят другие. Основной целью для всех, включая архитектора,остается бизнес функциональность, для которой проект был профинансирован, и краткосрочные проблемы, которые возникают во время проекта.Но хорошее видение целей архитектуры предприятия и эффективное включение хорошей архитектуры на каждом спринте на каждом проекте, ведут к постоянному совершенствованию архитектуры предприятия.</p>
<p>Например, в 2009 году моя компания получила промышленную награду за “Создание Agile бизнес интеллектуальной инфраструктуры.”<a name="t17" href="#r17">[17]</a> Компания профинансировала проект по бизнес причинам в 2008 году, тогда как архитектура была задумана в 2006 &#8211; за два года до любой возможности реализовать ее. Проблема была в том, что исследователи, работавшие над архитектурой, использовали платформу, изолированную от основного хранилища данных, что привело к высокой избыточности данных и неправильным процедурам. В то же время, основное хранилище данных использовало технологии, которые не отвечали нуждам исследователей, и имело слишком большие ограничения для исследовательских работ.</p>
<p>На основе многолетней работы с двумя отделами и понимания их уникальной культуры и окружения, архитекторы предложили золотую середину: слой, который использовал технологии исследовательской платформы вместе с процедурами и централизованными данными хранилища данных, которые были адаптированы, чтобы сбалансировать исследовательские гибкость, сопровождаемость и эффективность. Архитектурное решение лежало на полке два года. Когда проекту предоставилась возможность продвинуть архитектурное решение, архитекторы использовали это. Успех был признан организацией и индустрией, а повторное использование сделало архитектуру привлекательной для будущих проектов.</p>
<p>Agile и архитектура не противостоят друг другу. Agile разработка дает архитектору повторяющуюся возможность работать вместе с бизнес и технической командой, чтобы непрерывно вести системы к хорошей архитектуре. Это создает проблемы, некоторые из которых связаны с трудностью достижения хорошей архитектуры, независимо от методологии, некоторые возникают из-за необходимости двигаться к далеко идущим результатам, используя серию краткосрочных мероприятий. Упрощая agile методы подобно тому, как это было описано здесь и имея влияние в критических точках взаимодействия, квалифицированный архитектор сможет адаптироваться к agile разработке, оставаясь при этом сфокусированным на архитектурных работах. Это будет гарантировать, что поведение большинства отдельных систем и общей архитектуры предприятия соответствует сегодняшним нуждам бизнеса, и технически устойчиво на годы &#8211; это архитектурная ценность, независимо от методологии поставки.</p>
<p><strong>Об авторе</strong></p>
<p><a href="http://agilerussia.ru/wp-content/uploads/2012/01/arch-int_madison.jpg"><img class="alignleft size-full wp-image-834" title="arch-int_madison" src="http://agilerussia.ru/wp-content/uploads/2012/01/arch-int_madison.jpg" alt="" width="82" height="100" /></a>James Madison &#8211; старший архитектор в крупной страховой компании и основной инструктор на agile тренингах в отделе архитектуры предприятия. Его agile проекты включают Web, клиент-ориентированную, сервис ориентированную архитектуру, хранилища данных, и не традиционные для agile проекты, такие как построение инфраструктуры и миграция платформы. Madison имеет степень магистра по computer science, Rensselaer Polytechnic Institute. Контакты: <a href="mailto:madjim@bigfoot.com">madjim@bigfoot.com</a>.</p>
<div>
<hr align="left" noshade="noshade" size="1" width="33%" />
</div>
<p><a name="r1" href="#t1">[1]</a> K. Schwaber, <em>Agile Project Management with Scrum</em>, Microsoft, 2004</p>
<p><a name="r2" href="#t2">[2]</a> K. Beck and C. Andres, <em>Extreme Programming Explained: Embrace Change, </em>2nd ed., Addison-Wesley Professional, 2004</p>
<p><a name="r3" href="#t3">[3]</a> M. Fowler, <em>Patterns of Enterprise Application Architecture</em>, Addison-Wesley Professional, 2002</p>
<p><a name="r4" href="#t4">[4]</a> E. Gamma et al., <em>Design Patterns: Elements of Reusable Object-Oriented Software</em>, Addison-Wesley Professional, 1995.</p>
<p><a name="r5" href="#t5">[5]</a> L. Bass, P. Clements, and R. Kazman, <em>Software Architecture in Practice, </em>2nd ed., Addison-Wesley Professional, 2003, pp. 71–98</p>
<p><a name="r6" href="#t6">[6]</a> R. Kazman, M. Klein, and P. Clements, <em>ATAM: Method for Architecture Evaluation, </em>tech. report CMU/SEI- 2000-TR-004, ESC-TR-2000-004, Software Eng. Inst., Carnegie Mellon Univ., 2000.</p>
<p><a name="r7" href="#t7">[7]</a> M. Poppendieck and T. Poppendieck, <em>Lean Software Development: An Agile Toolkit for Software Development Managers, </em>Addison-Wesley Professional, 2003, pp. 38–45, 103–111.</p>
<p><a name="r8" href="#t8">[8]</a> K. Schwaber and M. Beedle, <em>Agile Software Development with Scrum, </em>Prentice Hall, 2002, pp. 23–30</p>
<p><a name="r9" href="#t9">[9]</a> R. Kimball and M. Ross, <em>The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling,” </em>John Wiley &amp; Sons, 2002, pp. 78–88</p>
<p><a name="r10" href="#t10">[10]</a> V. Subramaniam and A. Hunt, <em>Practices of an Agile Developer: Working in the Real World, </em>Pragmatic Bookshelf, 2006, pp. 155–157</p>
<p><a name="r11" href="#t11">[11]</a> M. Fowler, “Who Needs an Architect?” <em>IEEE Software</em>, vol. 20, no. 5, 2003, pp. 11:13</p>
<p><a name="r12" href="#t12">[12]</a> M. Ross and R. Kimball, “Differences of Opinion,” <em>Intelligent Enterprise</em>, 6 Mar. 2004</p>
<p><a name="r13" href="#t13">[13]</a> J. Madison, <em>Very Large Calculation Systems</em>, Casualty Actuarial Soc., 2009</p>
<p><a name="r14" href="#t14">[14]</a> J. Shore and S. Warden, <em>The Art of Agile Development</em>, O’Reilly, 2008, pp. 214.</p>
<p><a name="r15" href="#t15">[15]</a> M. Fowler, “Who Needs an Architect?” <em>IEEE Software</em>, vol. 20, no. 5, 2003, pp. 11:13</p>
<p><a name="r16" href="#t16">[16]</a> G. Hohpe and B. Woolf, <em>Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions</em>, Addison-Wesley Professional, 2003</p>
<p><a name="r17" href="#t17">[17]</a> “Best Practices in Business Intelligence: Creating an Agile BI Infrastructure,” <a href="http://www.biperspectives.com/awards.aspx"><em>Computerworld</em></a>, 2009;</p>
<p><a href="http://www.computer.org/portal/web/computingnow/software">http://www.computer.org/portal/web/computingnow/software</a><em>This article first appeared in </em><a href="http://www.computer.org/portal/web/computingnow/software"><em>IEEE Software</em></a><strong><em> </em></strong><em>magazine. </em><a href="http://www.computer.org/portal/web/computingnow/software"><em>IEEE Software</em></a><em>&#8216;s</em> <em>mission is to build the community of leading and future software practitioners. The magazine delivers reliable, useful, leading-edge software development information to keep engineers and managers abreast of rapid technology change.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://agilerussia.ru/practices/agile-architecture-interactions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Упорядочиваем виды тестирования &#8211; Agile Testing Quadrants</title>
		<link>http://agilerussia.ru/articles/agile-testing-quadrants/</link>
		<comments>http://agilerussia.ru/articles/agile-testing-quadrants/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 08:43:25 +0000</pubDate>
		<dc:creator>Andrey Rebrov</dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agile testing quadrants]]></category>
		<category><![CDATA[qa]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://agilerussia.ru/?p=818</guid>
		<description><![CDATA[Пока готовлю следующий пост из серии про автоматизацию, захотелось поделиться интересным, на мой взгляд, материалом из книги Agile Testing: A Practical Guide for Testers and Agile Teams. Так вот, видов тестирования очень и очень многое: нагрузочное, ad hoc, sanity, black box, white box и так далее. И долгое время я не встречал хорошей и понятной,…]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://vinipuhovo.ru/published/publicdata/U197319VINI/attachments/SC/products_pictures/%D0%AF%D1%89%D0%B8%D0%BA_%D1%81_%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8_%D0%94%D0%B5%D0%BB%D1%8E%D0%BA%D1%81_Black%26Decker_90356_cdi_enl.jpg" alt="" width="154" height="154" />Пока готовлю следующий пост из <a href="http://agilerussia.ru/practices/qa-automation-%d1%87%d0%b0%d1%81%d1%82%d1%8c-%d0%b2%d0%b2%d0%be%d0%b4%d0%bd%d0%b0%d1%8f/">серии про автоматизацию</a>, захотелось поделиться интересным, на мой взгляд, материалом из книги <a href="http://www.amazon.com/Agile-Testing-Practical-Addison-Wesley-Signature/dp/0321534468/ref=pd_ts_b_2?ie=UTF8&amp;s=books">Agile Testing: A Practical Guide for Testers and Agile Teams. </a></p>
<p>Так вот, видов тестирования очень и очень многое: нагрузочное, ad hoc, sanity, black box, white box и так далее. И долгое время я не встречал хорошей и понятной, по моему мнению, системы, которая бы содержала нормальную группировку всех этих видов, а так же давала объяснение, когда и зачем какие нужно их использовать. И буквально на днях прочитал про Agile Testing Quadrants (ATQ), про которые и хочу рассказать.</p>
<p><span id="more-818"></span></p>
<p>Идея данной систематизации изначально принадлежит <a href="http://www.exampler.com/old-blog/2003/08/21/#agile-testing-project-1">Brian Marick</a>, а затем была доработана <a href="http://lisacrispin.com/wordpress/2011/11/08/using-the-agile-testing-quadrants/">Lisa Crispin</a>, которая является одним из авторов упомянутой книги. По ссылкам можно найти их записи про ATQ.</p>
<p>Собственно сама система выглядит вот так:</p>
<p><a href="http://andrebrov.net/blog/wp-content/uploads/2012/01/testing-quadrant.png"><img class="aligncenter size-full wp-image-305" src="http://andrebrov.net/blog/wp-content/uploads/2012/01/testing-quadrant.png" alt="" width="511" height="333" /></a></p>
<p>Как видно, классическая диаграмма 2*2. Итак, по одной из осей тесты делятся на бизнес-ориентированные и технологически-ориентированные, по другой оси &#8211; на тесты для поддержки команды и для &#8220;критики продукта&#8221;. Сразу хочу отметить, что нумерация ничего не говорит о том, когда нужно проводить эти тесты.</p>
<p>Пройдем по каждому из секторов.</p>
<p>Сектор <strong>Q1</strong> представляет собой такую известную практику, как TDD. Все просто: сначала тесты, потом код. И эти тесты в первую очередь ответственность команды разработки. Все эти тесты обязательно должны запускаться через CI, для постоянной проверки качества кода. Все это расписано во многих источниках, для тех, кто еще не практиковал TDD, хочу посоветовать вот эту <a href="http://www.agiledata.org/essays/tdd.html">ссылку</a>.</p>
<p>Сектор <strong>Q2 </strong>содержит в себе более высокоуровневые тесты, которые уже имеют отношение к бизнесу. Успешное прохождение этих тестов является обязательным, чтобы говорить о завершенности какого-либо функционала. Потому что мы можем говорить, что тот или иной функционал сделан, когда он решает одну из поставленных бизнес-пользователями задач. На этом уровне в основном тестируется внешняя оболочка приложения: интерфейс, API, веб-сервисы и так далее. С другой стороны, этот сектор включает в себя тестирование прототипов, мокапов, дизайна и так далее. Часто для обозначения тестов, входящих используют термин <em>приемочное тестирование</em>, хотя это не совсем верно, так как тесты из секторов Q3 и Q4 так же стоит отнести к приемочному тестированию.</p>
<p>Тесты из сектора <strong>Q3</strong> подразумевают обязательное участие экспертов в доменной области, экспертов по usability, пользователей и так далее. Так уж часто бывает, что реализованный функционал на самом деле не решает проблемы заказчика, или же что-то было понято неправильно командой разработкой. Опять же, могли возникнуть новые аспекты работы с доменными объектами или выяснилось, что спроектированный интерфейс не удобен пользователям. Как раз тут и вступают в дело тесты, предназначенные для &#8220;критики&#8221; продукта. Сразу оговорюсь, что слово &#8220;критика&#8221; здесь имеет положительный оттенок. Само собой, что данное тестирование может быть только ручным, потому что ни один скрипт не может выявить обозначенных проблем, хотя мы, конечно, можем использовать вспомогательные средства, например, для загрузки данных.</p>
<p>И, наконец, последний сектор <strong>Q4</strong>, который говорит о тех тестах, которые не проверяют решение задач бизнеса, а говорят о том, насколько же хорошо написано наше приложение, используя такие термины как безопасность, производительность, устойчивость, масштабируемость и так далее. Данные тесты помогут, как проверить соблюдение нефункциональных требований, если они есть, так и понять, насколько успешно спроектировано приложение уже на ранних этапах. Эти тесты сильно помогают избежать проблем в будущем. Понятно, что для проведения подобных проверок, нужно использовать специальные инструменты, которых представлено на данный момент очень много.</p>
<p>Таким образом, Agile Testing Quadrants являются неким чек-листом, показывающим, что мы идем в верном направлении, что наши процессы в достаточной степени автоматизированы и можем заниматься ручными исследовательскими тестами. И самое главное, Agile Testing Quadrants покажут, насколько успешен наш продукт, с точки зрения бизнеса.</p>
]]></content:encoded>
			<wfw:commentRss>http://agilerussia.ru/articles/agile-testing-quadrants/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

