Agile-сообщество Беларуси

  • Home
  • О сайте
  • Departments
    • Agile-тестирование
    • Product Owner
    • Smoke Test
    • TDD
    • Авторам
    • Бесплатные семинары
    • Встречи
    • Жизнь
    • Инструменты
    • Как продавать Agile
    • Менеджерам проектов
    • Новости
    • Практики Agile
    • Психология Agile
    • Шаблоны
  • RSS on FeedBurner

8 “must have” распределенного Agile

июля 7, 2008  |  Published in Менеджерам проектов, Практики Agile  |  5 Comments

  • Это паровоз. Здесь у него котел. Пар толкает поршень. Он двигает шатун. Шатун вращает колесо. За счет этого система и работает. Вопросы есть?
  • Есть! И все-таки я не пойму – вот скажем у меня лошадь, куда ж мне ее запрягать?

Вот как-то так исторически сложилось, что последний год вокруг один сплошной agile – и проекты лезут agile, и среди Заказчиков один сплошной agile, семинары по agile заказывают иной раз по две штуки в неделю, плюс мы еще agile-сообщество сделали. В общем, насмотрелся на то, и как нормальные люди делают agile, и что иной раз мега-специалисты вытворяют под маркой «agile». Особенно кровавыми выдались некоторые драмы, произошедшие с людьми, которые пытались делать agile в (территориально-)распределенной среде. То есть в абсолютно распределенной – Заказчик в городе Х, разработчик в городе Y, другой разработчик в Z, тестер живет через океан в противофазе (то есть когда у нас день – у него ночь). В связи с этим я задумал было написать статью «8 «никогда» распределенного Agile». Но передумал. Потому что это будет запретительная статья – мол, дети, вот так делать не надо! Дети, понятное дело, сделают именно так – из принципа. Поэтому вместо этой статьи я написал другую – «8 “must have” распределенного Agile». Потому что чужим чеклистом на халяву – ктож не воспользуется? Итак, поехали.

  • Постарайтесь избежать распределенного agile!

Помните, в чем основное преимущество agile? Правильно, экономим на документации за счет того, что Заказчик под боком, и мы в любой момент можем задавать ему вопросы, и он, честно глядя нам в глаза, отвечает прямо и разъясняет подробно. То есть мы работаем бок о бок, совместно – и за счет этого уменьшается потребность в документации и выстраивается доверие. Когда мы работаем посредством коммуникаторов, видео- и телеконференций – это ощущение пропадает. Даже лог чата с его собственными словами не является для Заказчика доказательством: «Да, это я писал! Но вы все не так поняли!». Тогда мы начинаем писать подробные user stories и заставлять Заказчика присылать письмо «approved»… Появляется первый документ… Ну дальше думаю знакомо, да? Распределенный agile лишается своей основной опорной точки – общения с Заказчиком глаза в глаза. Отсюда теряются и прочие преимущества – возможность экономить на документации, короткая обратная связь и т.д. Распределенный agile безболезненно работает только когда и команда, и Заказчик чувствуют себя в мире электронных коммуникаций как дома.

  • Надо иметь отточенное умение делать agile обычным способом.

То есть надо отлично уметь делать agile «по старинке» - всей командой в одной комнате, с Заказчиком под боком, с прямым доступом в среду разработки и на сервера с приложением. Пока вы этому не научились на «отлично» – не пытайтесь запустить распределенную agile-разработку. Это так же фатально, как пытаться научиться пилотировать самолет «вслепую», не научившись предварительно пилотировать вообще. Никогда не начинайте распределенный agile-проект не умея на «отлично» делать обычный agile.

  • Надо иметь Заказчика, умеющего работать agile.

Заказчик – это отправная точка agile-процесса. Научить Заказчика написанию «хотелок», подготовке тестовых примеров и «торговле» вокруг них – невероятно сложно. Представьте себе кондовую тетку-бухгалтера, сидящую на «Инфе» последние десять лет. А ну как вы ее будете учить писать юзерсториз? Содрогнулись? А теперь представьте себе – это надо сделать удаленно. Как перспектива? Но даже при абсолютно благостно настроенных и старательных кастомерах будьте готовы к тому, что обсуждения, которые раньше занимали 3 минуты – теперь будут занимать 15. Никогда не предполагайте, что Заказчик по умолчанию умеет и согласен работать по agile. Тем более удаленно, когда сил на коммуникации требуется тратить в 3> раза больше времени и сил.

  • Убедитесь, что agile в данном случае не инструмент для провала проекта!

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

  • Готовьтесь к командировкам

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

  • Надо иметь быструю и надежную связь.

Быстрый интернет – это от мегабита и выше. Но в идеале – лучше иметь 10 мбит. Надежная – это когда в любой момент вы можете набрать номер Заказчика и быть уверенными что вас соединят и что качество связи будет хорошим. Иначе усложненная и затрудненная коммуникация не состоится – кому охота долбаться с нестандартной звонилкой провайдера IP-телефонии, которого вы выбрали из-за стоимости звонков $0,01. А нет коммуникации – нет agile. Я рекомендую выбрать единого провайдера для всей команды в каждой физической локации – это снижает риски на порядок. Никогда не экономьте на инструментах коммуникации. Лэптоп + 2 мбита интернета – обязательное условие.

  • Стандартизируйте инструменты!

Вася пользуется SomeSCCClient 1.3 и без проблем коннектится к репозитарию. Федя поставил себе 1.4 Beta и не может соединится, а версию для Mac OS X, который стоит у Маши, еще и не планируется выпускать. В довершение праздника Коля не может участвовать в голосовых конференциях Skype, потому что он использует альтернативный скайп-клиент, а метафора, которую вы дописали этой ночью, не читается после пересохранения ее в формате docx. Я думаю, вы уже поняли о чем я. Никогда не разводите зоопарк на проекте – у всех стоят одни и те же инструменты, настроенные одинаковым образом. Даже если кто-то клянется, что «я все настрою сам!» - набор инструментов для проекта должен быть стандартизирован и по их использованию должны быть написаны гайдлайны.

  • Надо иметь отличный VPN + доступность сервисов.

Все системы, необходимые для работы, должны быть доступны в режиме 24х7. Иначе нечего пенять девелоперу в Новосибе, что он не коммитнул код, когда ваш сервер лежал, а вы его не включали так как у вас видите ли ночь. С доступностью вопрос решается просто, даже если у вас небольшой бюджет – используйте системы, работающие через HTTP, и hosted services типа Beanstalk если не можете себе позволить свою серверную ферму. Другое дело – доступ к серверам в локальной сети, своей или Заказчика. В отсутствие личного присутствия единственный способ отладить криво вставший билд – влезть в него ручками. Отсутствие доступа терминалом в таком случае понятно чем чревато. Никогда не экономьте на инструментах, которые используются 10 раз на дню – раздражение встанет дороже.

 

Надеюсь, у меня получилось отсоветовать вам устраивать распределенные agile-проекты. Но даже если нет – пройдите по чеклисту, добейтесь его выполнения с самого начала проекта.

Я вам обещаю – вы скажете мне «спасибо» в течение первой же недели, причем не один раз.

Responses

Feed Trackback Address
  1. Dmitry Lobasev says:

    июля 8, 2008 at 3:22 (#)

    Хорошая статья, но хочется немного дополнить.

    Я бы добавил нулевым пунктом: Имейте команду, готовую и хотящую работать по Agile. Без этого пункта вообще ничего не получится. И команда все-таки гораздо важнее Заказчика.

    При этом команда может и не иметь навыков работы в “обычном” Agile на “отлично”, главное, чтобы было достаточно желания научиться, сознательности и отвественности. Ну и наличие опытного в Agile члена команды/консультанта здесь резко повысит шансы на успех проекта.

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

    И еще дополнение к Стандартизируйте инструменты! - одинаковый клиент Skype это безусловно важно, но самое главное, на мой взгляд, иметь единую Систему Управления Распределенным проектом, доступную через web всей команде 24×7 и содержащую все данные о проекте (команда, истории пользователей, дефекты, релизы и итерации, митинг минутс и т.п.). Мало того, что этот инструмент позволит в одном месте иметь все самое актуальное по проекту, он еще и обеспечит то самое visibility хода проекта, которого так не хватает удаленному заказчику (и конечно, самой команде).

  2. Денис Петелин says:

    июля 8, 2008 at 3:34 (#)

    Насчет нулевого пункта - однозначно подписываюсь.
    Просто в голову не пришло, что может быть иначе :)

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

    Ну и про пм-систему - да, именно про это я и пишу. Без такой системы все станет колом, однозначно.

  3. Yuri Shilyaev says:

    июля 8, 2008 at 6:47 (#)

    Вообще ряд положений абсолютно справедливы и для классического ведения agile.

  4. lumii says:

    июля 11, 2008 at 10:51 (#)

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

  5. Денис Петелин says:

    июля 11, 2008 at 11:04 (#)

    Насчет поучаствовать - это разве что в качестве продакт овнера :)

Leave a Response

You must be logged in to post a comment.

Рубрики

  • Agile-тестирование
  • Product Owner
  • Smoke Test
  • TDD
  • Авторам
  • Бесплатные семинары
  • Встречи
  • Жизнь
  • Инструменты
  • Как продавать Agile
  • Менеджерам проектов
  • Новости
  • Практики Agile
  • Психология Agile
  • Шаблоны

Последние комментарии

  • Александр Орлов на Презентация с 4й встречи Agile
  • tch на Презентация с 4й встречи Agile
  • Yuri Shilyaev на Презентация с 4й встречи Agile
  • tch на Презентация с 4й встречи Agile
  • Nickolay Lagonenko на Презентация с 4й встречи Agile

Архивы

  • Декабрь 2008
  • Ноябрь 2008
  • Октябрь 2008
  • Сентябрь 2008
  • Август 2008
  • Июль 2008
  • Май 2008
  • Март 2008
  • Февраль 2008

Управление

  • Регистрация
  • Войти
  • RSS Записей
  • RSS Комментариев
  • WordPress.org

Метки

выбор инструментов инструменты опросы встречи презентации прибыль применимость ценности принципы шаблоны экономика проекта

Последние записи

  • Неправильное понимание Scrum
  • Презентация с 4й встречи Agile
  • Как продать Agile? Часть 2 - Как продать тем, кто знает что есть Agile
  • Проблемы и ошибки при внедрении Scrum
  • 4-я встреча сообщества Agile.BY (итоги первой части)

Ссылки

  • ScienceSoft
  • Сайт сообщества

©2009 Agile-сообщество Беларуси
Powered by WordPress using the Gridline Lite theme by Graph Paper Press.