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

From Wiki4Intranet
Jump to: navigation, search
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
[[File:Open-Space по Agile на SECR2011.jpg|480px|right]]
 
[[File:Open-Space по Agile на SECR2011.jpg|480px|right]]
 +
 +
После доклада Асхата и панельной Agile-дискуссии, несколько десятков совсем упертых, кому было еще мало аджайла, собрались в первой резервной аудитории, для самого простого Agile-формата:
 +
* Все желающие предлагали тему для обсуждения
 +
* Все темы записывались на карточки
 +
* Потом все голосовали расстановкой точек на карточках
 +
* Визуально выбраны темы-победители, и в одной комнате на трех досках пошло обсуждение этих тем.
 +
 +
Важный момент — в одной комнате, т.е. можно было легко переходить от доски к доске, менять тему.
 +
 +
Я ненадолго присоединился к теме «Кроссфункциональность в Agile».
 +
Мнения там были разные, от защитников узкой специализации, до только что прослушавших самого Сазерленда («Чувак! Я только что слушал Сазерленда, если ты не в курсах — это он придумал SCRUM, и он сказал…» → бггг, спс), и жестко стоящих на позиции абсолютной кроссфункциональности и взаимозаменяемости членов команды.
 +
 +
Хотя на самом деле, Сазерленд всегда говорил о максимальной '''автономности команды''', а не о унификации юнитов.
 +
Т.е. в команде да, должны быть все самые необходимые специальности, и чтобы не было никаких блокирующих зависимостей от «отделов» (блокирующий «ад отделов тестирования и документирования»).
 +
 +
Я изложил свое понимание разумной кроссфункциональности, которой имеет смысл добиваться:
 +
* Кроссфункциональность по коду и предметной области — если задачи у команды более-менее однородные:
 +
** какой-то фреймворк работы с данными
 +
** серверная энтерпрайз логика
 +
** лес каких-то бизнес-форм
 +
→ то да, надо добиваться совместного владения кодом и взаимозаменяемости, чтобы никто не сидел на «своих» классах-пакетах-формах.
 +
 +
Что же касается желания иметь команду из абсолютно «универсальных солдат», крутых во всем — в юзабилити, аналитике, кодинге, архитектуре, тестировании — желание безусловно похвальное.
 +
Но невозможное.
 +
Ну, или, по крайней мере, ну очень дорогое.
 +
Хотя я склоняюсь к мысли, что скорее невозможное — приходится сочетать в себе разные, конфликтующие навыки, и даже психотипы (см. «6 шляп мышления»). Вот я давно двигаюсь к универсальности, но чем ближе я к универсальности, тем слабей мои навыки во всех этих областях.
 +
 +
Вот только что кривонабросанная картинка, аналог того, что я нарисовал тогда на доске (если вы не видите трех треугольников — уменьшите контрастность вашего монитора):
 +
 +
[[File:Разумная кроссфункциональность (версия Стаса Фомина).svg|640px|center]]
 +
 +
Смысл ее
 +
* есть, да, выделенные специализации.
 +
* бессмысленно ждать чувака одинаково крутого во всем.
 +
* однако любого крутого (горы-треугольники) можно хоть сильно менее круто, научить смежным специальностям.
 +
* тогда возникнет зона кроссфункциональности («пересечение треугольников»).
 +
 +
Хоть я и не люблю злоупотреблять военными метафорами, но тогда привел принцип ВМС США —
 +
<blockquote>
 +
Every marine is a rifleman.
 +
</blockquote>
 +
 +
Т.е. вне зависимости от специализации, летчик, подводник, или военный юрист, все в ВМС получают базовую стрелковую подготовку, и в случае чего, конечно, «рожденный плавать» подводник (программист серверной части) не полетит (не станет крутым дизайнером), но сможет, в случае дедлайна, сражатся как простой морпех (тестировщик).
 +
 +
Вот пример такой кроссфункциональности для [http://en.wikipedia.org/wiki/Henry_T._Elrod капитана Элрода].
 +
Когда в декабре 1941 на острове Уэйк случился дедлайн против превосходящих японских сил, капитан Элрод (летчик-истребитель), сумел:
 +
* Сбить два истребителя;
 +
* Утопить точным броском малой бомбы японский эсминец (летчик-бомбадировщик);
 +
* Будучи сбит, приземлившись, собрал обслуживающий персонал (повара и т.п.), и организовал пехотную контратаку.
 +
* Выложился полностью, получил медаль Почета посмертно.
 +
 +
Именно в этом я вижу главное — страховка от блокировок и бутылочных горлышек, которые возникают от парадигм «фиксированный план» и «специализация по отделам». Не ждать отдела тестирования — а навалится всем, кто может держать оружие.
 +
Мочь нарисовать иконку, сверстать макет-протип, пока дизайнер болен.
 +
Написать небольшую автоматизацию, не выдергивая затраханного программиста.
 +
Кроссфункциональность — это сделать так, что даже менеджер на что-то может сгодится.
 +
 +
Т.е. да, конечно, надо по возможности пытаться развивать смежные области, разрешать брать специализированные задачи, учится в смежных областях, но люди — это не клетки, винтики и болты. Абсолютного двуполого суперспециалиста не получить.
 +
 +
Но не должно быть, добровольной или навязанной самоизоляции:
 +
* «мы программисты, тестировать код не барское дело»
 +
* «вы программисты, даже не пытайтесь нарисовать дизайн или иконки, тут нужны специалисты<s>-китоведы ©</s>».
 +
* «вы тестеры, а не программисты, даже не пытайтесь написать автоматизированные тесты»
 +
* «я — <s>Д'Артаньян</s> дизайнер, а вы…»
 +
 +
 +
 +
 +
 +
 +
(«санитары-стрелки»)

Latest revision as of 18:48, 6 November 2011

Open-Space по Agile на SECR2011.jpg

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

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

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

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

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

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

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

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

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

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

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

Смысл ее

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

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

Every marine is a rifleman.

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

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

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

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

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

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

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



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