Словом аджайл на территории бывшего союза среди айтишников уже никого не удивишь. Потихоньку разгораются священные войны типа “мой канбан твой скрам укопает” или наоборот. Но, к сожалению, похвастаться реально сногсшибательными результатами от внедрения аджайл не может почти никто. Это как эффект кетчупа, все бутылкой трясут-трясут, а оттуда практически ничего не вылезает.
Хочу поделится с вами своими наблюдениями, сделанными в странах бывшего союза, по-поводу наиболее типичных “узких горлышек”, которые по-прежнему держат кетчуп в бутылке и не дают вам тех преимуществ, которые должно давать внедрение аджайл. Ну, и заодно хочу напомнить о “розовых” трактовках, то есть о том, как должно быть в идеальном мире.
Очень проблемная область. Плохих вариантов тут великое множество:
Как должно быть: само собой, PO должен обладать нужными знаниями и навыками выполнения своей работы, иметь полномочия для принятия любых решений (с него и спрос потом, за результаты работы команды) и быть доступным команде, по крайней мере, 3 часа каждый день.
Типичные болезни вокруг этой роли заключатся в скрам мастерах:
Как должно быть: Скрам мастер не имеет никакой власти над членами команды, работает с одной командой и работает со скрам мастерством больше, чем с прочими вещами. Скорее, бывший HR, нежели бывший разработчик.
Именно с большой буквы “К”. Типично, ее просто нет. “А что есть?” – спросите вы. Кучка индивидов, в лучшем случае, сидящих в одной комнате. Каждый работает над “своими” задачами и отношением: “Я свое сделал, что дальше – меня не касается” (количество задач в “In progress” больше количества членов команды). Никакой командной ответственности и никаких командных обязательств. Никто не делится знаниями, все тянут одеяло на себя. Никто не может ответить на вопрос, почему он часть этой команды. Что он в нее привносит? Чего ожидает получить взамен?
Как должно быть: наоборот от всего, что описано выше.
Помимо скрам ролей (команда, PO, скрам мастер) у вас есть PM-ы, проектные координаторы и прочие роли “из прошлой жизни”. Ну, не выгонять же столько хороших людей? А учить их делать что-то другое долго, да и не все они хотят этого. Поэтому оставляем их, пусть придумают, чем им заняться. Пусть PO работает с направлением “наружу” к клиентам, а PM с направлением “внутрь” к команде. Ну, или еще чего-нибудь. Они же умные, найдут, чем заняться.
Как должно быть: зачем телеге 5-ое колесо?
Как вам: “Я не тестер, я разработчик, не боги горшки обжигают”. Или может быть вам знакомо: “Разработчики должны сидеть в, закрытой на ключ, серверной. В щель под дверью, им надо регулярно закидывать пиццу. А периодечески “оттуда” будут вылетать прекрасные продукты в красивых праздничных упаковках. Ни в коем случае разработчики не должны встречаться с клиентами, и уж тем более с пользователями.”
Как должно быть: наоборот.
Вы по-прежнему удовлетворяете требования вместо того, чтобы поставлять business value?
Я вам расскажу, как типично умирают ретроспективы. Мы делаем одночасовую ретроспективу в формате: “Что было хорошо? Что было плохо? Что можем улучшить?” один раз. Второй раз. Третий раз. После третьего раза в wiki уже собрался довольно длинный список наших проблем и он продолжает расти. После 20-ого раза, список уже не растет, и в wiki снизу под списком уже появилась прокрутка страниц, чтобы его прочитать до конца. На 21-й раз кто-то подкидывает умную мысль: “К чему нам тратить час на ретро? У нас же в wiki все проблемы уже описаны. Кому надо пусть идет в вики и почитает. Давайте сделаем 30 минут. Потом 15 минут, потом 5. И в конце-концов мы от ретроспектив отказываемся. Можно делать ее раз в полгода, в формате: “Ну что? Все, как в вики?” – Дааа, все, как в вики, расходимся”.
Как должно быть: в топку списки. И вики в топку. Закончите свою ретро, согласившись всей командой пофиксить одну единственную проблему, которая вам (как команде) подконтрольна и которая для вас больше всего наболела. Запишите ее одну единственную себе на флип-чарт, унесите с собой в следующий спринт и сделайте так, чтобы к следующей ретроспективе эта проблема исчезла. Да, это так просто! И, кстати, купите уже библию ретроспектив: Agile retrospectives. Making good teams great , сделайте свои ретроспективы разнообразными и интересными. И еще одно (после того, как книжку прочитаете): сделайте свои ретро длиннее, пусть они будут 4 часа, вместо часа.
А у нас релиз в прод – раз в году. Слава богу, у вас спринты не по одному году, спасибо и на этом. Мы быстро-быстро работаем короткими спринтами по две недели. А толку что, если пользователи смогут это увидеть через год? И связь обратную вы получите не раньше. И переделывать придется снова за целый год. И в чем, собственно, преимущества вашего аджайл?
Как должно быть: частые релизы в прод, ключ к успеху. Чем чаще, тем лучше. Сможете релизиться в прод в конце каждого спринта – просто супер.
Аджайл внедрили, только баги покоя не дают. Планировать невозможно, никогда не знаешь, когда баг размером с пол-спринта на голову упадет. Ну, а тогда и о командных обязательствах говорить не приходится. Как можно обещать хоть что-то в такой обстановке?
Как должно быть: в 2011 году начинать надо с качества. А это значит с солидных современных инженерных практик. К чему ваш аджайл, если вы код нормально писать не умеете? А если вы не умеете, это не значит, что надо продолжать в том же духе. У нас есть достойные эксперты, которые придут и научат вас, как это делается. Расскажут вам, как делать code review, парное программирование, наладят continious integration, научат TDD, BDD, DDD и заразят желанием заниматься прочими DD. Если вы ждали команды сверху, то вот она: “Просто сделайте это! Уже пора.”
Дааа, давайте взглянем на ваши контракты. Уже страшно? Мне да. Я знаю, там scope зафиксировали (а как же иначе, у нас же гос заказ, там инструкции какие-то за номер 40 чего-то там) и дату и стоимость. И попробуй тут не сделать. Поэтому мы все делаем по старинке. Прикинули по зафиксированному объему работ наши оценки, умножили на греческое число “пи” (самые смелые умножили на “е” вместо “пи”) и вперед, делать скрам. Не надо, простите, уже поздно.
Как должно быть: идите и продайте заказчику фиксированную дату, фиксированный бюджет и нефиксированный объем работ. Я знаю, что сложно, я знаю, что никто до вас не продал. Да, это требует доверия между вами и заказчиком. А никто и не говорил, что будет легко. Но кто-то же должен быть первым.
Максимальная продолжительность Спринта — один календарный месяц. При большем сроке планирования возможны изменения целей, увеличение сложности и рост рисков.Руководство по Скраму Когда Команда редко поставляет готовый Инкремент, то редко получает обратную связь от стейкхолдеров и клиентов. В результате:
Лучше в ответ "иди учись", чем умри :)
Так я и не сдаюсь. На своих проектах так все и стараюсь делать. Просто в жизни разные ситуации бывают. Так можно придти к бедному человеку и говорить: "Живи богато! Старайся!". А он тебе: "Так нет образования, нет работы нормальной...". А ты ему в ответ: "Ну тогда умри и поделом тебе!". Это неконструктивно. Надо всегда искать выход и подстраивать процесс под ситуацию, когда не можешь изменить саму ситуацию. :)
[...] Кетчуп по прежнему в бутылке – как должен выглядеть идеальный Agile [...]
Ну да, не боги горшки обжигают.
Гораздо дешевле, чтобы баги фиксили в Индии, а что из кода получится говнокод, бог с ним, это же никто не увидит :)
Мой вопрос все равно будет: А зачем у нас работают такие люди?
По-моему, отличное для них будет наказание. И это заставит менять контракты.
Рано сдаешься, Николай. Наша жизнь - это наш выбор. Я этот мир строю, ты, надеюсь, тоже и я хочу, чтобы таких людей, как я и ты, было больше.
Давно хотел написать, но руки не доходили. Я больше склоняюсь к мнению Макса. Все слишком идеализировано в твоем представлении, да и во многих публикуемых материалах по поводу Scrum и Agile в целом.
Приведу тебе пару примеров. Ты спрашиваешь почему разрабатывала одна команда, а поддерживает другая. Да очень просто. Та команда, что разрабатывала, разбежалась потихоньку по мере того, как продукт выходил на поддержку. Далеко не всем в кайф заниматься поддержкой. И набирали новых людей. Или вообще заказчик решил, что дорого платить этой высококлассной команде за поддержку.
На пункт про "увязку поставок подрядчикам" ты ответил "команда". Это самый распространенный ответ. Но он предполагает, что у нас очень ответственная и самоорганизующаяся команда. Но в жизни очень много людей, которые не хотят этой ответственности. Они просто любят разрабатывать, тестировать, дизайнить и т.д. Ты, понятное дело, ответишь: "стройте такую команду". На самом деле это не всегда возможно.
Да и по поводу контрактов. Я думаю многие понимают, что контракты неправильные. Но существует множество бюрократических организаций, которые ни за какие коврижки с тобой другой контракт не будут подписывать. И с ними кому-то надо работать тоже. :) Иначе они останутся без софта. Ты может быть с такими не сталкивался, но их очень много, особенно в России.
Вообщем этот идеальный мир не всегда физически можно построить. Поэтому стремиться надо не к нему, а к адаптированному под реалии проекта процессу. Очень понравилась вот эта статья на обсуждаемую тему: http://www.agileadvice.com/2011/10/25/scrumxplean/what-is-scrum-good-for/.
Привет, Максим. Начнем с того "что одно из двух :)", поскольку я на таких идеальных заказчиков к счастью попадал.
аналитик на нашей стороне не повредит, даже когда есть нормально доступный продакт оунер, ведь ему нужна помощь в проработке деталей, и наивно полагать что PO с этим со сам всем справится, если продукт более менее большой.- для этого проводятся демо и там присутствует заказчик (PO).
- PO - у нас команда фиксированная, чего тут еще распределять?
- команда
- ага, я и говорю, что контракты у нас неправильные, но это не значит, что надо продолжать их подписывать :).
а почему у тебя пишет одна команда, а суппортит другая?
Сережа, привет!
Правда, как-то все идеально получается. Либо в этом мире есть идеальные заказчики и проекты и я на них не попал, либо одно из двух:)
По продакт-овнеру понятно: супер, если он есть , и он умный, и он доступен. В реальности - сам понимаешь. Выход - аналитик на нашей стороне. Причем чем больше проект, тем важнее его у себя иметь. Как-то вот заметил, что доступность овнера в больших проектах обратнопропорциональна размеру проекта.
Команды с "К" и "все мы за тебя и даже затебее, чем остальные" - этот фактор важен для любого проекта, какую бы методологию он не юзал.
ПМы. Ну тут совсем сложно. Мне как-то не уложиться в голове скрам-оф-скрам в больших проектах. Кто-то должен мониторить общий проект, работать с бюджетом, распределением ресурсов, увязывать поставки подрядчиков.
ТЗ против бизнес-вэлью: в коммерции - да, в госсекторе зачастую нет. ТЗ - часть тендера и даже если в некоторых требованиях нет этого самого вэлью, то акты хрен подпишут, если не сделаешь. Так что вэлью для команды тут прямое и простое, как угол дома:)
Ретро и релизы - 100% согласен:). Главное, чтобы релизы не релизились чаще, чем нужно;)
Суппорт - ну кагбэ да. Но если у тебя пишет одна команда, суппортит другая, и это разыне депаратменты, то только тдд не поможет.
Фикседсроки и фикседденьги с нефиксед скоупом... Если дедикейтед команда - да. Если заказчик не госсектор - да. Иначе - тендерные условия изволь выполнить, и если недооценил - сам себе буратино:)
Как-то так вот:).