Блог:Стас Фомин/SECR-2011: сводки с полей/Open-Space по Agile

From Wiki4Intranet
< Блог:Стас Фомин‎ | SECR-2011: сводки с полей
Revision as of 18:48, 6 November 2011 by StasFomin (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Open-Space по Agile на SECR2011.jpg

После доклада Асхата и панельной Agile-дискуссии, несколько десятков совсем упертых, кому было еще мало аджайла, собрались в первой резервной аудитории, для самого простого Agile-формата:

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

Важный момент — в одной комнате, т.е. можно было легко переходить от доски к доске, менять тему.

Я ненадолго присоединился к теме «Кроссфункциональность в Agile». Мнения там были разные, от защитников узкой специализации, до только что прослушавших самого Сазерленда («Чувак! Я только что слушал Сазерленда, если ты не в курсах — это он придумал SCRUM, и он сказал…» → бггг, спс), и жестко стоящих на позиции абсолютной кроссфункциональности и взаимозаменяемости членов команды.

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

Я изложил свое понимание разумной кроссфункциональности, которой имеет смысл добиваться:

  • Кроссфункциональность по коду и предметной области — если задачи у команды более-менее однородные:
    • какой-то фреймворк работы с данными
    • серверная энтерпрайз логика
    • лес каких-то бизнес-форм

→ то да, надо добиваться совместного владения кодом и взаимозаменяемости, чтобы никто не сидел на «своих» классах-пакетах-формах.

Что же касается желания иметь команду из абсолютно «универсальных солдат», крутых во всем — в юзабилити, аналитике, кодинге, архитектуре, тестировании — желание безусловно похвальное. Но невозможное. Ну, или, по крайней мере, ну очень дорогое. Хотя я склоняюсь к мысли, что скорее невозможное — приходится сочетать в себе разные, конфликтующие навыки, и даже психотипы (см. «6 шляп мышления»). Вот я давно двигаюсь к универсальности, но чем ближе я к универсальности, тем слабей мои навыки во всех этих областях.

Вот только что кривонабросанная картинка, аналог того, что я нарисовал тогда на доске (если вы не видите трех треугольников — уменьшите контрастность вашего монитора):

Разумная кроссфункциональность (версия Стаса Фомина).svg

Смысл ее

  • есть, да, выделенные специализации.
  • бессмысленно ждать чувака одинаково крутого во всем.
  • однако любого крутого (горы-треугольники) можно хоть сильно менее круто, научить смежным специальностям.
  • тогда возникнет зона кроссфункциональности («пересечение треугольников»).

Хоть я и не люблю злоупотреблять военными метафорами, но тогда привел принцип ВМС США —

Every marine is a rifleman.

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

Вот пример такой кроссфункциональности для капитана Элрода. Когда в декабре 1941 на острове Уэйк случился дедлайн против превосходящих японских сил, капитан Элрод (летчик-истребитель), сумел:

  • Сбить два истребителя;
  • Утопить точным броском малой бомбы японский эсминец (летчик-бомбадировщик);
  • Будучи сбит, приземлившись, собрал обслуживающий персонал (повара и т.п.), и организовал пехотную контратаку.
  • Выложился полностью, получил медаль Почета посмертно.

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

Т.е. да, конечно, надо по возможности пытаться развивать смежные области, разрешать брать специализированные задачи, учится в смежных областях, но люди — это не клетки, винтики и болты. Абсолютного двуполого суперспециалиста не получить.

Но не должно быть, добровольной или навязанной самоизоляции:

  • «мы программисты, тестировать код не барское дело»
  • «вы программисты, даже не пытайтесь нарисовать дизайн или иконки, тут нужны специалисты-китоведы ©».
  • «вы тестеры, а не программисты, даже не пытайтесь написать автоматизированные тесты»
  • «я — Д'Артаньян дизайнер, а вы…»



(«санитары-стрелки»)

[ List view ]Comments

(no items)

Please login to comment.