среда, 13 октября 2010 г.

Побочные эффекты популяризации Agile. Проблемы восприятия.

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

Во-первых я начал замечать тенденцию в том, что все думают Agile = Scrum. Безусловно это не так. Не буду разводить демагогию на тему "а как же принцыпы Agile..." просто давайте зафиксируем: есть Scrum, Есть XP, Lean, FDD, DSDM, Crystall etc... самыми популярными стали XP и Scrum ибо с них все начинают.
Но не одна компания с которой мы работали не решила свои проблемы только Scrum'ом.
А ведь еще есть правила хорошей работы с кодом, практики создания эволюционной архитектуры: GoF, SOLID, Refactoring тот же самый DDD, CI, Test Automation, TDD...



Во-вторых, Фраза "Agile = Отстой или Большего бардака я в жизни не видел". На этот счет
мне очень нравится слайд Хенрика Книберга, где два товарища пытаются срубить дерево - один из них пытается срубить бензопилой, но ничего не получается потому, что пользуется бензопилой как топором. Другой пытается срубить дерево с помощью молотка. В первом случае правильный инструмент,но не правильное использование, во втором просто не правильный инструмент. Кто в этом виноват?

Мораль проста, Scrum, Kanban, RUP - все инструменты.
Если у вас не получается ими пользоваться, это не вина инструментов. Молоток и бензопила не виноваты в том, что вы не можете или не знаете, как срубить дерево. Поэтому, если у вас что-то не получается используйте Root Cause Analysis и 5 why техники, чтобы понять, что и почему у вас не работает и принимайте контрмеры в место того, чтобы ругать инструменты.

В-третьих. Agile это методология, которая учит нас работать итеративно и инкрементально. Бывали случаи, когда у команд/компаний получалось выстроить "Agile-разработку": стабильные билды, результат в конце итерации, минимум багов - все отлично, но на выходе всеравно недовольный заказчик или пользователь. Как так получается?
Многие начали воспринимать Agile=Делать итерации.
Но сама суть Agile заключается не в том, чтобы делать итерации, а в том чтобы быть готовым к изменениям.

12 коммент.:

  1. С идеями поста полностью согласен, всегда на тренингах спрашиваю участников о том, что по их мнению является Agile. И результаты неутешительные. Я также писал на эту болезненную тему: http://xpinjection.com/2010/09/24/shu-ha-ri-for-scrumoholics. Еще хотел бы внести маленькую поправку - DDD и Pomodoro лучше убрать из списка методологий разработки. ;)

    ОтветитьУдалить
  2. Очень многие заканчивают фразой - agile bullshit, даже тольком не разобравшись в фундаментальных принципах).. мне жаль таких людей)

    ОтветитьУдалить
  3. Всё правда! и чем дальше, тем сложнее убедить или научить людей правильно использовать инструменты. Думаю в этом и есть минусы популяризации Agile - все вроде знают, что это такое, но как и с чем это едят мало кто.

    Спасибо, за формулировку "сути"! :)

    ОтветитьУдалить
  4. 2Николай тут речь не про методологии , а про подходы к разработке...

    ОтветитьУдалить
  5. 2Никита вот я и говорю, что Pomodoro - не подход к разработке, а подход к управлению временем (time management). DDD - это подход, но не того уровня ("Domain-driven design is not a technology or a methodology. DDD provides a structure of practices and terminology for making design decisions that focus and accelerate software projects dealing with complicated domains"). :) Это как в детской игре "Выбери лишнее": Scrum, XP, Lean, DDD, FDD, DSDM, Crystall, Pamodoro. Так вот тут 2 лишних.

    ОтветитьУдалить
  6. in relation to 3 argument that scrum is not only an iterative approach, please refer to this thread here - http://groups.google.com/group/scrumalliance/browse_thread/thread/1c31c72115402754/b01cdd414dbde4b1?lnk=gst&q=scrum+is+only+iterative+approach#

    Quote from there "The beauty of Scrum lies in the autonomy (self
    organization ) ,
    ownership ( commitment )"

    ОтветитьУдалить
  7. 2Николай, Ну давай по холиварим, если Pamodoro способ организации времени разработчика. То Scrum это способ организации времени команды команды :)

    DDD - согласен больше о том, как проектировать и разрабатывать.

    Но чтобы не мозолило уберу :)

    2Andrej Ruckij
    Thank you dude, but my talk was not about Scrum is... it's about how people understands it. So there are some people just geeking about "doing scrum", so scrum is ≠ being agile Agile. Scrum it's just a simple framework helping to do iteration and organize you development team with product team. It is not telling you how to build your product right way.

    ОтветитьУдалить
  8. Я бы по холиварил, по поводу первого пункта, судя по статистике "Scrum = Agile" ^_^
    Второй пункт бы обобщил, народ пробует "Scrum" и он ему не нравится, пример из жизни: "Scrum в принципе хорошо, но мой менеджер даёт слишком низкие оценки, которые мне назначает". Кстати, почитай http://softwarepeople.ru/blog/2010/10/19/scrum-in-trackstudio/ , на хабре было...
    По-третьему пункту больше всего вопросов: итеративность (инкрементальность не беру - это больше к product development относится) с точки зрения организации бизнес-процесс - основа основ, фактически это вариант мелкосерийного производства для софтверной области (и что-то типа "Our highest priority is to satisfy the customer through early and continuous delivery of valuable software" вспоминается :) )

    По поводу побочных эффектов, имхо, главный побочный эффект популярности Scrum - это то, что его стали считать серебряной пулей. У вас команда из слабых разработчиков, нет проблем, используйте Scrum. У вас заказчик/представитель заказчика/менеджер не разбирается в продукте - назовите его продукт оунером и используйте Scrum! Могу список продолжать до бесконечности...

    ОтветитьУдалить
  9. 2Борис
    Ха-ха, ну ты загнул...существует и другая крайность
    Scrum = Agile и это 100 процентов. Это не так уж и страшно с одной стороны, пока все не превратилось в догму из серии "Мы делаем Scrum". Тут в другую сторону качели уходят: Как ты не делаешь Daily Scrum утром, как написано в книжке?
    Как у тебя Продукт оунер не на одну команду? Это не скрам.
    У меня вопрос такой, сколько из вас реально превращает ScrumMaster'а в человека, который "должен защищать команду" от внешних изменений. Или как в статье - "Мастер запускает итерацию"
    Защищает от чего? кого? Как запускает итерацию?

    А ведь в книгах именно так и ScrumAlliance из которого недавно сбежал Tobias Mayer, так же завещают ScrumMaster - Отец , PO - мать.

    Все это крайне относительно. Наша цель, такая же как и раньше. Сделать Стабильный софт, который любят наши пользователи или заказчики. И да согласен если вспомнить Shu, Ha, Ri ... то на первом этапе нужно делать по книжке, но как-то надо поймать когда переходить на уровень "Ha"

    С другой стороны...
    Кого интересует, как в книгах,- Agile / Lean появился, как способ решения проблем. Как образ мышления. Но обществу свойственно превращать это в Карго Культ.

    Вообщем :)
    Тут у нас холивара не получиться ибо я с тобой согласен. От того, что ты PM'a в PO переименуешь с продуктом лучше не станет. От кучки людей работающих в одной комнате до инженеров создающих продукт , стремясь увеличить свою производительность - пропасть.

    ОтветитьУдалить
  10. Подскажите, пожалуйста, какие книги (на русском) можно почитать об этой методологии?
    Меня интересует как общая позиция, так и углубленное понимание со стороны аналитика. Работаю аналитиком в софтверной компании.

    ОтветитьУдалить
  11. А можно поподробнее про Root Cause Analysis и 5 why техники

    ОтветитьУдалить
  12. 2Dalek, http://www.crisp.se/henrik.kniberg/cause-effect-diagrams.pdf

    ОтветитьУдалить