Блог:Стас Фомин/SECR-2011: сводки с полей/Open-Space по Agile
После доклада Асхата и панельной Agile-дискуссии, несколько десятков совсем упертых, кому было еще мало аджайла, собрались в первой резервной аудитории, для самого простого Agile-формата:
- Все желающие предлагали тему для обсуждения
- Все темы записывались на карточки
- Потом все голосовали расстановкой точек на карточках
- Визуально выбраны темы-победители, и в одной комнате на трех досках пошло обсуждение этих тем.
Важный момент — в одной комнате, т.е. можно было легко переходить от доски к доске, менять тему.
Я ненадолго присоединился к теме «Кроссфункциональность в Agile». Мнения там были разные, от защитников узкой специализации, до только что прослушавших самого Сазерленда («Чувак! Я только что слушал Сазерленда, если ты не в курсах — это он придумал SCRUM, и он сказал…» → бггг, спс), и жестко стоящих на позиции абсолютной кроссфункциональности и взаимозаменяемости членов команды.
Хотя на самом деле, Сазерленд всегда говорил о максимальной автономности команды, а не о унификации юнитов. Т.е. в команде да, должны быть все самые необходимые специальности, и чтобы не было никаких блокирующих зависимостей от «отделов» (блокирующий «ад отделов тестирования и документирования»).
Я изложил свое понимание разумной кроссфункциональности, которой имеет смысл добиваться:
- Кроссфункциональность по коду и предметной области — если задачи у команды более-менее однородные:
- какой-то фреймворк работы с данными
- серверная энтерпрайз логика
- лес каких-то бизнес-форм
→ то да, надо добиваться совместного владения кодом и взаимозаменяемости, чтобы никто не сидел на «своих» классах-пакетах-формах.
Что же касается желания иметь команду из абсолютно «универсальных солдат», крутых во всем — в юзабилити, аналитике, кодинге, архитектуре, тестировании — желание безусловно похвальное. Но невозможное. Ну, или, по крайней мере, ну очень дорогое. Хотя я склоняюсь к мысли, что скорее невозможное — приходится сочетать в себе разные, конфликтующие навыки, и даже психотипы (см. «6 шляп мышления»). Вот я давно двигаюсь к универсальности, но чем ближе я к универсальности, тем слабей мои навыки во всех этих областях.
Вот только что кривонабросанная картинка, аналог того, что я нарисовал тогда на доске (если вы не видите трех треугольников — уменьшите контрастность вашего монитора):
Смысл ее
- есть, да, выделенные специализации.
- бессмысленно ждать чувака одинаково крутого во всем.
- однако любого крутого (горы-треугольники) можно хоть сильно менее круто, научить смежным специальностям.
- тогда возникнет зона кроссфункциональности («пересечение треугольников»).
Хоть я и не люблю злоупотреблять военными метафорами, но тогда привел принцип ВМС США —
Every marine is a rifleman.
Т.е. вне зависимости от специализации, летчик, подводник, или военный юрист, все в ВМС получают базовую стрелковую подготовку, и в случае чего, конечно, «рожденный плавать» подводник (программист серверной части) не полетит (не станет крутым дизайнером), но сможет, в случае дедлайна, сражатся как простой морпех (тестировщик).
Вот пример такой кроссфункциональности для капитана Элрода. Когда в декабре 1941 на острове Уэйк случился дедлайн против превосходящих японских сил, капитан Элрод (летчик-истребитель), сумел:
- Сбить два истребителя;
- Утопить точным броском малой бомбы японский эсминец (летчик-бомбадировщик);
- Будучи сбит, приземлившись, собрал обслуживающий персонал (повара и т.п.), и организовал пехотную контратаку.
- Выложился полностью, получил медаль Почета посмертно.
Именно в этом я вижу главное — страховка от блокировок и бутылочных горлышек, которые возникают от парадигм «фиксированный план» и «специализация по отделам». Не ждать отдела тестирования — а навалится всем, кто может держать оружие. Мочь нарисовать иконку, сверстать макет-протип, пока дизайнер болен. Написать небольшую автоматизацию, не выдергивая затраханного программиста. Кроссфункциональность — это сделать так, что даже менеджер на что-то может сгодится.
Т.е. да, конечно, надо по возможности пытаться развивать смежные области, разрешать брать специализированные задачи, учится в смежных областях, но люди — это не клетки, винтики и болты. Абсолютного двуполого суперспециалиста не получить.
Но не должно быть, добровольной или навязанной самоизоляции:
- «мы программисты, тестировать код не барское дело»
- «вы программисты, даже не пытайтесь нарисовать дизайн или иконки, тут нужны специалисты
-китоведы ©». - «вы тестеры, а не программисты, даже не пытайтесь написать автоматизированные тесты»
- «я —
Д'Артаньяндизайнер, а вы…»
…
(«санитары-стрелки»)
[ List view ]Comments
Please login to comment.