Записи с метками внедрение agile
AgileCamp’11 в Самаре: как это было глазами гостей из Украины
21 Июнь
На этих выходных нам удалось принять участие в совершенно новом и очень увлекательном мероприятии – конференции AgileCamp’11 в Самаре. Причем мы не просто принимали участие, а отвечали за всю секцию инженерных практик. Конференция отличалась от привычных мероприятий своим форматом – большая часть материала преподносилась через игры, демонстрации, симуляции и групповые задания. Благодаря этому формату все проходило очень живо и весело. В первый день все участники разделились на 2 потока: продуктовая разработка и инженерные практики. В первом потоке их учили работать с требованиями, разрабатывать видение продукта, учитывать риски, создавать и использовать прототипы. На втором потоке рассматривался практически полный набор инженерных практик, которые необходимы для разработки действительно качественного продукта. На конференцию собралось более 150 человек, причем из разных городов и областей России. Некоторые проехали больше суток, чтобы попасть на конференцию.
Инженерный поток был построен из небольших секций (продолжительностью около часа), в каждой из которых детально рассматривалась одна инженерная практика. Порядок практик был выбран так, чтобы соответствовать реальному пути внедрения в команде. К нам на поток зарегистрировалось около 45 человек из направлений .NET, PHP и Java. Поэтому все практические демонстрации дублировались для своей целевой аудитории помогающими нам опытными разработчиками Дмитрием Паншиным (.NET) и Андреем Степановым (PHP). Благодаря этому разделению участники смогли узнать тонкости и специфику применения и внедрения той или иной практики для своего направления разработки. Ребята, спасибо вам за помощь!
Мы очень хотели дать возможность участникам что-то сделать на практике, для чего попросили иметь при себе ноутбуки. Но уже после первых секций стало понятно, что времени на это совершенно не хватает, поэтому пришлось ограничиться живыми демонстрациями. Демонстрации были действительно живыми, ничего не записывалось на видео, все работы с кодом и инструментами происходили прямо на глазах всех присутствующих. Приятно порадовало то, что состав участников практически не изменился за весь день. Для нас это означало, что мы действительно рассказываем про полезные вещи. Мы практически нигде не выбились из графика работы, что тоже сильно порадовало. Ведь в подобном формате мы работали первый раз и было непонятно насколько успешно получится все организовать.
Второй день прошел на открытом воздухе. Организаторы сняли кораблик, который отвез нас на один из островов на Волге. На острове под пиво и закуски участники общались в течении всего дня. Все разбивались на небольшие группы, обсуждали разнообразные темы, как из Agile мира, так и отвлеченные. Все это проходило в непринужденной атмосфере, поэтому было весело и интересно. Кто-то даже провел пару мини-докладов около флипчартов. Множество новых знакомств, возможность ответить на вопросы и пообсуждать интересные темы – все это отлично дополняло красивый пейзаж вокруг и отдых на природе. На кораблике собралось человек 40-50, может даже немного больше. Особенно порадовало, что после острова почти никто не разбежался по домам и мы поужинали в большой компании. Тут еще больше раззнакомились, было много юмора и дружеских споров на разнообразные темы. Вечером Никита Филиппов нам устроил небольшую экскурсию по городу. Мы погуляли по набережной, посетили пару местных достопримечательностей, а также отведали того самого «Жигулевского» пива. День был супер насыщенным.
В воскресенье нам предстояло провести тренинги по Continuous Integration и QA в Agile. Очень порадовал технический уровень и опыт участников тренинга по CI – многие уже использовали данную практику у себя в команде, большая часть была не на уровне начинающих. Это сделало тренинг еще продуктивнее, потому что больше времени осталось на продвинутые практики и живые демонстрации. На тренинге по QA в Agile тоже была «продвинутая» аудитория – многие были из мира разработки или менеджмента. Благодаря этому вопросы были разнообразные и интересные. Надеемся, все остались довольны и получили массу новых знаний, которые помогут на практике.
В целом мероприятие очень понравилось. Спасибо компании ScrumTrek, с которой у нас длительные партнерские отношения, за приглашение и проделанную работу. Это было круто! А следующий раз будет еще круче, ведь мы учимся на своих ошибках. Также большое спасибо всем тем, с кем мы общались на протяжении этих трех дней. Именно благодаря вам время пролетело так быстро и классно.
Наш небольшой фотоотчет с места событий:
Точки бифуркации в применении к Agile подходам
26 Май
Увидев у Тимофея Евграшина в блоге статью про зону комфорта и точки бифуркации, я решил написать пару слов о моем видении данной темы. В одной из философских теорий, изучаемых в курсе философии в университете, было утверждение о том, что никакая наука либо учение не может перейти на новый этап развития, не пройдя точку бифуркации. В этой точке система знаний и навыков находится в критическом состоянии и дальнейшее развитие является непредсказуемым. Одним из результатов может стать полный хаос. Противоположенным результатом является переход системы на новый, более высокий, качественный уровень.
Примеров из реальной жизни можно привести несчетное множество, особенно в развитии науки и техники. Когда-то люди думали, что земля стоит на трех слонах и является плоской. За отклонения от данной модели в восприятии окружающего мира человек мог погибнуть. Похожая история была с солнцем и планетами солнечной системы. Они таки не вращаются вокруг Земли. Языческие божества, развитие технического прогресса, квантовая физика, геометрия Лобачевского, теория относительности Эйнштейна – несколько примеров результатов успешного прохождения точек бифуркации. В той же философской теории утверждалось, что придти к точке бифуркации можно только сознательно отказавшись от правил и ограничений текущей системы, начав мыслить по-другому. При этом любое «инакомыслие» изначально не принимается обществом, что не раз доказывала история. Очень интересную иллюстрацию зоны комфорта можно найти на сайте Тимофея.
Точно такой же процесс породил Agile подходы в разработке программного обеспечения. Несколько людей изменили парадигму ценностей и создали Agile манифест. Долгое время проходил процесс становления Agile подходов, их не принимали всерьез. На некоторое время даже было своего рода состояние хаоса, когда начал происходить массовый отказ от старых ценностей и замена их на новые Agile ценности и принципы. На текущий момент можно смело говорить о том, что процесс перехода на новый, более высокий, качественный уровень завершен. Нам остается только оттачивать мастерство и получать опыт работы в новой среде. Из «старого мира» нужно взять с собой только самое необходимое, что может прижиться в «новом мире».
Но дальнейшее развитие Agile подходов также зайдет в тупик. Этот процесс уже начинается – все больше и больше людей говорят об одном и том же, все меньше свежих и интересных подходов и практик. И через некоторое время мы подойдем к очередной точке бифуркации. Но для этого необходимо будет вновь отбросить старые идеалы и взглянуть на систему ценностей беспристрастным взглядом. Только так может родиться что-то новое и революционное. Надеюсь, что мы будем частью этого!
Первый открытый тренинг по Agile разработке от Асхата Уразбаева 3 июля в Киеве
10 Июнь
Мы рады сообщить о том, что наши возможности по проведению тренингов и состав доступных тренеров расширились благодаря сотрудничеству с российским тренинг-центром ScrumTrek. Многие отлично знают по выступлениям на различных конференциях Асхата Уразбаева и Никиту Филлипова. На последней конференции Agile Base Camp в Киеве Асхат выступил с докладом «Применение Lean в Offshore разработке», а Никита – с мастер-классом «Формируем и Приоритезируем бэклог используя StoryMapping». Мы слышали очень много положительных отзывов от участников и решили организовать первый открытый тренинг Асхата Уразбаева в Киеве. Состоится мероприятие 3 июля и посвящено будет разработке с использованием Scrum («Agile Development with Scrum»).
Данный тренинг будет интересен для тех, кто планирует внедрять Scrum в своем проекте или организации, а также для тех, кто хочет сравнить свои способы работы с лучшими практиками индустрии. На тренинге будут рассматриваться следующие темы:
Принципы Agile
- Причины, по которым Agile приносит деньги компаниям.
- Итеративность и инкрементальность разработки.
- Легковесность процесса или отсутствие документации?
- Самоорганизующаяся команда—ключ к успеху продукт.
- Границы применимости Agile.
Командные практики Agile
- Методы построения эффективной команды.
- Методологии Scrum и Extreme Programming. Какие практики вам нужны?
- Роли и обязанности в Scrum.
- Как сформировать самоорганизующуюся команду? Практики. Типичные ошибки.
- Как планировать в Agile?
- Ежедневный scrum, использование Task Board и другие практики работы в итерации.
- Закрытие итерации. Демонстрация и ретроспектива.
Инженерные практики Agile
- Как обеспечить высочайшее качество?
- Обзор инженерных практик Agile.
- Что такое совместное владение кодом и как его добиться?
- Парное программирование: как ускорить разработку.
Внедрение Agile
- Подходы к внедрению Agile.
- Как внедрять практики Agile? Примеры внедрений.
- Примеры Agile в распределенной разработке.
- Примеры Agile в офшорной разработке.
- Примеры Agile в больших проектах.
Тренинг будет насыщен примерами, дискуссиями, играми, иллюстрирующими основные принципы и практики гибкой разработки. Он направлен не только на формирование базовых представлений о гибких методологиях разработки, но и на упорядочивание имеющихся знаний и навыков. После прохождения тренинга участники смогут аргументированно пытаться внедрить у себя на проекте различные Agile практики и подходы, а также получат толчок к дальнейшему развитию в мире современной разработки, где Agile методологии давно вышли на первый план.
Регистрация на тренинг уже открыта и продлится продлится до 28 июня. Стоимость участия: при регистрации до 20 июня – 1000 гривен, после 20 июня – 1200 гривен. Торопитесь, количество мест ограничено! Если у вас есть вопросы по организации тренинга, то мы с радостью ответим на них. Для этого отправьте свой вопрос на support@xpinjection.com.
Agile в больших командах
18 Март
Очень часто поднимается вопрос о применении Agile в больших командах размером более 30 человек. Как известно, Agile методологии рекомендуют работать небольшой командой, желательно расположенной в одном месте. Это очень сильно упрощает коммуникации и позволяет успешно применять большую часть Agile практик. Но при разработке действительно большой системы не всегда можно справиться маленькой командой. Есть проекты с командами более 100 человек. Можно провести аналогию с программированием больших систем. Если у нас есть небольшая по функциональности система, к которой нет жестких требований по расширяемости и отказоустойчивости, то логично реализовать ее единым модулем. При этом возможно разделение на слои для облегчения тестирования и разделения логики. Архитектуры подобных систем очень простые и похожи друг на друга. Это очень напоминает работу небольшой команды. Когда же нам нужно разработать систему с серьезной бизнес логикой, работающую с внешними сервисами, имеющую высокие требования к расширяемости и отказоустойчивости, интегрирующуюся с различными устройствами и обрабатывающую огромные потоки информации, то все значительно усложняется. Тут на помощь приходит компонентная архитектура, асинхронное общение между компонентами, сервисно-ориентированный подход и т.д. Архитектура такого рода систем достаточно непроста и требует тщательного анализа, чтобы не только удовлетворять текущим требованиям, но быть достаточно гибкой и расширяемой. Именно из такого рода архитектур можно позаимствовать приемы организации работы больших команд.
Первый прием для построения компонентной архитектуры – это выделение полноценных компонентов. В случае большой команды такими компонентами являются маленькие подкоманды. Каждая подкоманда имеет все необходимое для независимого существования. У нее есть все нужные ресурсы, как человеческие, так и технические. В такой подкоманде можно сравнительно легко использовать любой понравившийся Agile процесс разработки. Для того, чтобы компонентная архитектура работала, у каждой компоненты должна быть четко очерченная зона ответственности. В случае подкоманды речь идет о части разрабатываемой системы. Для правильного выделения подкоманде ее зоны ответственности необходимо учесть, что компоненты должны быть максимально независимыми.
Это сразу делает проигрышным разделение по слоям (база данных, уровень доступа к данным, сервисная логика, пользовательский интерфейс). В этом случае зависимости слишком сильные, что влияет на коммуникации, планирование и остальные части процесса разработки. Разделение по слоям работает в проектах среднего размера, когда из-за специализации членов команд и их распределения тяжело выделить полнофункциональные подкоманды. В этом случае команды в каждой итерации анализируют точки соприкосновения и выделяют интерфейсы взаимодействия. В процессе разработки функционала используются техники заглушек и простых реализаций для обеспечения ранней интеграции. Второй вариант – это разделение по архитектурным компонентам системы. Этот вариант возможен при хорошей архитектуре самой системы, но таит в себе скрытые опасности. К таким опасностям относятся локализация архитектурных знаний, узкая специализация команд, распределенное планирование и т.д.
Второй прием – это обеспечение коммуникации между компонентами. Компоненты в архитектуре должны общаться только со своими ближайшими соседями, причем протокол может быть синхронный или асинхронный. В случае с синхронным протоколом (когда компоненты достаточно сильно зависят друг от друга) может применяться совместное планирование итерации, ежедневная синхронизация посредством проведения собрания представителей команд (Scrum of Scrum в методологии Scrum). В случае асинхронного протокола можно использовать Kanban подход. Если одной подкоманде необходимо, чтобы определенный функционал был реализован другой подкомандой, она помещает запрос на эту функциональность в очередь ожидания. Эта очередь может позволять управление приоритетами. Статус заявки можно отслеживать на Kanban доске по мере прохождения всех стадий разработки. Замеряя время цикла от постановки задачи в очередь до ее выполнения, можно добиться более точного планирования для зависимых задач.
Кардинально другой способ взаимодействия компонентов применяется в событийной архитектуре. Каждый компонент, в том числе и заказчик, может генерировать события определенных типов (задачи на реализацию определенного функционала). Все задачи поступают на общую шину. Это может быть система управления задачами или же физический инструмент визуализации (в отсутствии проблем с распределенной командой). Каждый компонент способен обрабатывать определенные типы задач, что зависит от его роли в системе. Таким образом, подкоманда всегда берет из шины задачи с максимальным приоритетом, которые она способна делать. Как только задача закончена, ее результаты публикуются в общедоступном месте либо же попадают обратно в шину в качестве задачи другого типа.
Анализируя возможности и ограничения работы в конкретном проекте, с помощью аналогий из мира архитектуры можно придти к стройному и продуктивному Agile процессу в большой команде. Ниже приведен пример такого рода процесса:

Как видно из приведенных примеров, архитектуры современных систем таят в себе очень много интересных идей, которые можно использовать для организации процесса разработки в большой Agile команде. Ведь многие из существующих больших систем действительно работают! Я готовлю детальный доклад на эту тему, с которым планирую выступить на ближайшей конференции. Надеюсь с помощью идеи поиска аналогий в архитектуре вы сможете улучшить свой процесс разработки.
Конференция Agile Base Camp 23 января в Киеве
24 Декабрь
23 января в Киеве состоится конференция Agile Base Camp, которая соберет профессионалов в сфере разработки программного обеспечения, интересующихся гибкими подходами. На конференции будут организованы параллельные разделы для специалистов с разным уровнем опыта и знаний, разной направленностью интересов. Любой, от новичка в Agile до эксперта, найдет для себя что-то интересное:
- Доклады экспертов гибкой разработки
- Обзор гибких подходов и советы по внедрению для начинающих
- Воркшопы для Java-разработчиков с применением инженерных практик Agile
- Воркшопы по эффективным коммуникациям, взаимодействию с заказчиками, командности, мотивации
- Отчеты и рассказы об опыте внедрения гибкой разработки
- Открытые дискуссии по наиболее актуальным проблемам
Программа конференции очень насыщенная и содержит множество докладов и мастер-классов от экспертов из Украины и ближнего зарубежья. Конференция ориентирована на предоставление практического опыта, что делает ее еще более интересной. Спешите зарегистрироваться! Не пропустите это событие!
На конференции вы сможете посетить 3-часовой воркшоп от Николая Алименкова и Алексея Солнцева, посвященный инженерным практикам. Инженерные практики являются очень важной частью каждого проекта. Но не все понимают тех преимуществ, которые дает использование инженерных практик, а также проблем, которые могут быть решены с их помощью. Для того чтобы наглядно это продемонстрировать воркшоп будет состоять из командных игр. Игры будут командные для того, чтобы приблизить условия к реальным, когда инженерные практики нужно внедрять в команде из специалистов разного уровня и разной направленности. В этих играх будут принимать участие все желающие. В результате посещения воркшопа участники:
- Лучше познакомятся с основными инженерными практиками
- На игровых ситуациях рассмотрят примеры проблем и их решений
- Проверят свои навыки и смекалку для достижения командного результата
- Получат отличный шанс пообщаться с коллегами и обсудить волнующие их вопросы, связанные с инженерными практиками
- Выслушают мнение экспертов по поводу вопросов внедрения инженерных практик
- Повеселятся и получат заряд положительных эмоций
Интересно? Еще не зарегистрировались? Торопитесь, количество мест ограничено.
Видео с Agileee 2009 уже доступно
18 Декабрь
Видео презентация «People factor as failure reason of Agile adoption» от Алименкова Николая с конференции Agileee 2009 доступна в видео секции.







