Долго ли, коротко ли, за тренингами, обновлением сайта и другими заботами, я чуть не забыл опубликовать свой рассказ с прошедшей Agile Eastern Europe 2013 🙂

Организаторы не раз подчеркивали, что опыт участников растет год от года вместе с самой конференцией. Поэтому, как постоянный докладчик, я решил не размениваться на простые доклады об оценках и других практиках, о которых я рассказывал раньше, а копнуть глубже в область «почему Agile работает» и как нам быть еще более гибкими.

Тема моего рассказа «“WTF is LRM, YAGNI, JIT?“ или вы не знаете основные Agile-принципы» была своего рода тестом и пришли те, кому эти аббревиатуры что-то говорили, ну или те, кто очень хотел узнать :-). Если же вы не попали на мой рассказ, то вот слайдкаст — можно посмотреть и послушать.

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

Определенно, нужно что-то поменять в мышлении (перефразируя «Консерваторию» Жванецкого). На мой взгляд, для этого нужно использовать несколько вспомогательных принципов, которые помогут лучше применять те, которые изначально закладывались основателями Agile-движения.

В первую очередь, стоит разделять «Решения» (decisions) и «Обещания» (commitment). Первые мы можем менять по мере того, как нам открываются новые возможности, а вторые требуют от нас исполнения обещаний или определенные потери, если мы решим их отменить.

Тот самый Commitment (обещание), которого мы так хотим добиться от команд во время Спринта, может оказаться губительным, если вы даете его заранее. Тем самым, можно лишить себя гибкости и возможности поменять приоритеты, потерять возможность выбирать оптимальные технические решения, не суметь достигнуть максимума ценности за отведенный срок и вообще утратить возможность оперативно адаптироваться под нужды пользователей.

Финальные решения и обещания нужно откладывать на как можно более поздний срок, чтобы в ходе проекта у вас оставалось больше возможностей для маневра. Для этого Мэри и Том Поппендики даже придумали замечательный термин Last Responsible Moment (LRM). А другие источники добавили YAGNI, JIT — все это, по сути, синонимы одного и того же принципа.

Но вот беда, рациональные критики подняли вопрос: «как пользоваться принципом LRM на практике«. Часто его применяют как LAST MOMENT, т.е. делают в последний момент и, как результат, все задерживается, сроки плывут, и прощайте выгоды от применения Agile подходов. В докладе я приводил много примеров правильного откладывания решений — обязательно послушайте.

Если вкратце, то очевидно, что принцип говорит не о едином моменте времени, а о выполнении набора неких условий (в том числе и временных), когда уже пора принимать окончательное решение и давать обещание-коммитмент. Тот же Алистер Коуберн, развивал тему несостоятельности термина LRM и в итоге предложил говорить о трех периодах: Sleep Easy, Queasy и Nightmares 🙂

Во-вторых, я говорил о концепции Real Options («Реальные Варианты» в моем переводе) — технике принятия решений, основанной на финансовой математике.

Практика подхода «Реальных Вариантов» (Real Options) подразумевает три простых принципа:

  • Каждый вариант имеет свою Выгоду. Разумеется, каждый Вариант имеет свою Цену, но как раз о Выгоде часто забывают.
  • Срок доступности Варианта ограничен. Если вы не решите его применить, то его Выгода уменьшится полностью или частично.
  • Никогда не Обещайте заранее (если только вы четко не уверены в выгодах)

Вы можете обсуждать возможные Решения, но не давать Обещания. А практикуя размышления о Реальных Вариантах, вы можете научится прогнозировать момент, когда пора принимать финальные решения и делать «коммитмент» на один из вариантов.

В целом, тема достаточно обширная и я думаю буду к ней еще не раз возвращаться. Слушайте рассказ, смотрите слайды — там много примеров из жизни, которые помогут лучше понять идею.

И помните, Гибкость — это состояние ума, а не набор техник и принципов! 🙂

Оставайтесь с нами.

"Вы не знаете основные Agile принципы" или о чем я рассказывал на AgileEE 2013
Tagged on:                 

2 thoughts on “"Вы не знаете основные Agile принципы" или о чем я рассказывал на AgileEE 2013

    1. Максим, на здоровье!
      Меня самого эта тема увлекла, и когда начал разбираться, стал по-другому глядеть на саму идею «гибкости». Поэтому решил поделиться на конференции, хотя тема и не для всех.

      Рад, что вас заставило задуматься. Готов обсуждать эту тему еще, если есть интерес.

Comments are closed.