Хабрахабр

[Из песочницы] Как отличить хороший SCRUM от плохого, используя подход основоположника квантовых вычислений

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

Меня зовут Дима Мурзин. Привет.

Третий год живу с семьёй в Нью-Йорке. По профессии я бизнес аналитик в сфере финансов, работаю с бизнес-стейкхолдерами и с командой разработки, в которой исполняю роль Product Owner.

Во многом, это произошло благодаря тому, что продакт менеджер со стороны заказчика очень глубоко понимал принципы Agile, а также знал, как должен быть устроен SCRUM с точки зрения всех практик и церемоний. Когда я жил в Петербурге, мне посчастливилось поработать в команде, в которой был очень хорошо поставлен SCRUM процесс. Также, я должен отметить мой непосредственный менеджмент со стороны компании подрядчика. В Одном Большом Европейском Банке (на который я работал) это было большой редкостью. Кроме того, они занимались хайрингом и подбирали людей, которым подходила работа в условиях постоянных изменений.
После того как я переехал в США, ближе к заказчику (и попал в совершенно другую команду, в которой никаким Agile и не пахло), я пытался анализировать, почему моя предыдущая команда была настолько эффективной и продуктивной и почему, вообще, я знал, что команда настолько хороша? Они наняли хорошего коуча, который посвятил нас в процесс и следил за нами еще несколько недель, дали нам полную свободу дуйствий и ответственность за продукт, а после этого вмешивались лишь если возникали серьезные проблемы, что случалось редко. Продукт, который мы делали, был инфраструктурный (т.е. С точки зрения бизнес-результата, это было вовсе не очевидно. сам по себе он прибыль не приносил), а Один Большой Европейский банк за время, пока я в нем работал, потерял в цене акции чуть ли не вдвое, поэтому оценить пользу для бизнеса было сложно.

Однако, у меня было учтойчивое ощущение, что это не так, и я пытался разобраться, откуда оно взялось. Может быть, я просто обманывал себя, команда была обычной, а никакой супер-продуктивности не было? В это время я прочитал книгу Дэвида Дойча “Начало Бесконечности” и в ней нашел теоретическую основу, объясняющую, почему команда была продуктивной (в дальнейшей своей деятельности, я попытался определить верна ли эта теория с помощью эксперимента).

Ниже по тексту я использую Заглавные Буквы для обозначения Важных Понятий.

Я постараюсь описать его ниже, но т.к. Для себя я коротко называю этот теоретический подход Теорией Разумных Объяснений Дэвида Дойча (ТРОДД). я не теоретик, а практик, то всех желающих более точного академического изложения призываю ознакомиться с первоисточником (Дэвид Дойч — Начало Бесконечности).

Теория Разумных Объяснений Дэвида Дойча

Основное положение ТРОДД — Принцип Поиска Наилучшего Разумного Объяснения (ППНРО).

Чтобы до конца понять ППНРО, нужно вначале понять несколько определений из теории научного познания Карла Поппера.

Больше всего он не уважал такие теории, которые невозможно было фальсифицировать, например, такие теории, которые можно очень легко варьировать и объяснять ими что угодно. Карл Поппер полагал, что одни теории лучше, чем другие. способ отличить научное знание от ненаучного. Для того чтобы отделить такие теории и вообще о них не думать, Поппер предложил способ демаркации, т.е. допускать возможность того, что случится нечто (эксперимент), и станет понятно, что теория неверна. Научная теория должна быть принципиально фальсифицируемой, т.е. Так, например, теория “Все происходит по воле судьбы” не является научной, потому что не существует вообще никакого события, которое могло бы его опровергнуть.

Большинство научных теорий можно было легко фальсифицировать каким-нибудь простым экспериментом и отбросить как неверные. После того, как Поппер отделил ненаучные теории от научных, он начал разбираться с научными. Такие теории были гораздо лучше, чем неверные. Однако, оказалось что существуют некоторые теории, которые было не так-то легко фальсифицировать. В истории науки было огромное количество примеров, когда казалось что теория верна, но потом новые наблюдения доказывали, что она неверна (канонический пример — частная и общая теории относительности заменили классическую физику Ньютона). Но были ли они правильными теориями?

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

В одной из глав он даже говорит о том, что с удовольствием использовал бы термин “Заблуждение” вместо этих двух терминов, чтобы подчеркнуть, что любая наша теория в чем-то неверна. В книге Дойча термин “Теория” заменен термином “Разумное Объяснение”.

Эта стратегия изложена в ТРОДД и коротко описана в Принципе Поиска Наилучшего Разумного Объяснения. Дойч использовал шкалу Карла Поппера, чтобы предложить метод или стратегию действий, которой нужно следовать, чтобы получить ответ на вопрос или решение какой-то проблемы.

Он гласит примерно о следующем:

  • Когда люди ищут ответ на вопрос или решение проблемы, правильной стратегией будет Поиск Наилучшего Разумного Объяснения.
  • Нужно использовать творческие способности или “Креативность” чтобы придумывать разные Разумные Объяснения (1-ый ингредиент).
  • Далее, нужно пытаться опровергнуть эти Объяснения с помощью экспериментов (в том числе мысленных), это называется “Традиция критики” (2-й ингредиент).
  • Если не получается опровергнуть, то Объяснение считается рабочим и используется.
  • Но попытки найти другие, более хорошие Разумные Объяснения не прекращаются, т.к. согласно принципу фаллибилизма, ни одно Объяснение не может быть признано окончательно правильным.

Т.е. найти Наилучшее Разумное Объяснение невозможно, но пытаться надо, т.к. в процессе поиска можно найти лучшее Объяснение, чем рабочее. Тогда рабочее Объяснение признается ложным, и лучшее Объяснение становится рабочим.

Сфера применимости — это множество наблюдаемых фактов, которые пытается объяснить теория. Также, Дойч вводит понятия сферы применимости и объяснительной силы. Объяснительная сила — это мера множества фактов, которые объясняются или исключаются Разумным Объяснением. Сферы применимости разных теорий могут вообще не пересекаться или пересекаться частично.

Философия является несостоятельной, когда она не позволяет реализовать стратегию, описанную в ППНРО, т.е. Дойч пишет о том, что в большинстве случаев не получается достичь свободной конкуренции между разными Разумными Объяснениями, а происходит это из-за того, что существует много всякой разной Несостоятельной Философии. либо препятствует свободной генерации идей, либо препятствует традиции критики и экспериментального опровержения.

Первый пример — это ссылка на авторитет вместо Объяснения (“Я тут менеджер, я лучше знаю!”). Дойч описывает много направлений Несостоятельной Философии, но два примера я хочу привести в статье, потому что мне приходится очень часто сталкиваться с ними в рабочей практике. Второй пример — Постмодернизм, или идея о том, что т.к. Такая философская позиция блокирует любые попытки критики, а также негативно влияет на креативность — процесс создания новых Объяснений. Постмодернизм придает определенную легитимность даже самым вредным и неразумным Объяснениям. не существует самого правильного Объяснения (принцип фаллибилизма), то все Объяснения одинаково разумны (отказ от принципа фальсифицируемости). Процесс креативности при этом расцветает, но каждая из заинтересованных сторон считает свое Объяснение наиболее разумным, в результате чего критика не приводит к тому, что ложное Объяснение отбрасывается.

Примерно в таком виде я усвоил для себя Теорию Разумных Объяснений Дэвида Дойча.

Причем же тут SCRUM?

Я понял что SCRUM — это очень удобный фрэймворк для организации процессов согласно ППНРО. И ключевые процессы в нашей команде были устроены именно таким образом. Мы решали проблему “Как максимизировать пользу для бизнеса?”. Более частные проблемы, которые вытекали из основной проблемы, были:

Что делать следующее? — Основной вопрос приоритизации бэклога.
Как нужно делать? — Т.е. Что нужно делать? Каким должен быть процесс? каким должно быть решение, какая у решения должна быть архитектура?
Как нужно работать?

Далее происходило обсуждение, в ходе которых одна из версий принималась как рабочая и проверялась с помощью эксперимента. Для ответа на каждый из этих вопросов был устроен процесс, в котором несколько человек выдвигали свою версию Разумного Объяснения, почему делать нужно именно это.

Что нужно делать? Что делать следующее?

Процесс приоритизации бэклога был устроен предельно просто, по каноническому SCRUM, в котором участвовали: продакт менеджер, бизнес аналитик со стороны заказчика, 4 бизнес-аналитика со стороны подрядчика, проджект-менеджер со стороны подрядчика и архитектор. Все участники (кроме проджект-менеджера, который там был чтобы быть в курсе событий) реально влияли на результаты приоритизации. Роль продакта была в том, чтобы принимать окончательные решения, но большинство решений все равно принималось консенсусом. Наиболее приоритетные Истории шли в работу в следующем спринте и демонстрировались на Демо. Приоритизация происходила каждые две недели, поэтому возникал цикл обратной связи, когда результаты реализации каких-то Историй влияли на дальнейшую приоритизацию.

попытки объяснить, что делать сейчас нужно что-то другое). Таким образом, происходили оба необходимых, согласно принципу Поиска Наилучшего Объяснения, процесса: креативное создание новых Объяснений (почему сейчас нужно делать именно это) и традиция критики с целью фальсификации объяснения (т.е.

Как нужно делать? Какая должна быть архитектура?

Процесс принятия решений, касающихся реализации решения, был устроен довольно хитро. В нашей команде он был в виде регулярного митинга (3 раза за двухнедельный спринт), который назывался Product Backlog Refinement. В SCRUM guide нет никакой особенной спецификации того, как должен быть устроен Product Backlog Refinement (он описан вообще не как митинг, а как процесс непрерывного груминга бэклога). Видимо, устроить митинг именно таким образом нас надоумил коуч. Цель была в том чтобы успеть обсудить 3 среднего размера Истории за митинг, каждую за 20 минут. За 10 минут я давал презентацию про бизнес-ценность и необходимые технические детали. Дальше 5 минут шло быстрое обсуждение, дальше попытка оценки в Story Points с помощью техники Planning Poker. Последние 5 минут были зарезервированы на обсуждение, если оценка не сошлась. Дальше предпринималась попытка оценить Историю повторно, а если опять не получалось, то обсуждение Истории переносилось на следующий митинг. Для повторного обсуждения заводились экшн-поинты: подготовить дополнительную информацию или провести эксперимент. Таким образом, и тут опять выполнялось оба ключевых процесса согласно ТРОДД: команда предлагала различные варианты решений (а такой вариант всегда основан на Объяснении, почему именно так нужно делать), критиковала их и пыталась опровергнуть, в том числе, с помощью прототипирования.

Как нужно работать?

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

Но, т.к. Проблем было огромное множество и решались они не сразу. Происходит он, во многом, с помощью автоматизации рутинных задач, благодаря чему команда фокусируется на ключевых задачах. практика Retrospective не была пустой формальностью, а реально работала, в итоге, в команде получился так называемый (мной) бесконечно улучшающийся процесс. Одна из машин начинает постепенно улучшаться, а в другой ничего не меняется. Я представляю этот процесс так: есть две машины (команды разработки), которые исходно движутся примерно с одной и той же скоростью. И так происходит каждые две недели, первая машина как будто бы едет с ускорением относительно второй. И вот прошло две недели, а первая машина поехала на 1 км/ч быстрее другой за счет того, что были решены какие-то проблемы. И на дистанции в два года оказывается что первая машина не просто проехала больше.

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

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

я всегда занимался только корпоративной заказной разработкой, причем, преимущественно, для банковских продуктов. Мой опыт, конечно, крайне ограничен, т.к. Agile в области разработки ПО, Lean Startup в области Product Discovery, а также такой подход как Design Thinking в области дизайна, все они повторяют те же два основных положения из ППНРО: необходимость творческого мышления (креативности) и традиции критики (фальсификации). Однако, мне кажется, что ТРОДД — это универсальная теория, которая может иметь множество областей приложения.

Это захватывающее чтение. Я надеюсь, что люди, практикующие данные подходы, услышат достаточно “звоночков” в процессе чтения этой статьи, чтобы появилось желание обратиться к первоисточнику.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»