3. Этап «Встреча трёх» - VadimMustyatsa/three_trips GitHub Wiki
Несмотря на то, что представленная на предыдущем этапе версия «Рассказа» действительно пригодна для начала её реализации, в BDD процессе, как и в гибкой разработке в целом, в отличие от других подходов, практически исключена ситуация, когда реализация такой «функции» начнётся без предварительного обсуждения с командой. Ведь то, что зафиксировано «заказчиком», содержит большое число его предположений, которые необходимо провалидировать. Кроме того, если что-то берётся в разработку, в курсе этого (включая понимание основных деталей) должна быть абсолютно вся команда, поскольку ответственность за поставку «функции» коллективная. Наиболее эффективные команды проводят несколько таких предварительных встреч, первой из которых может быть так называемая Встреча трёх или встреча «Три амиго» (Three Amigos). Обычно такие встречи проходят за две-три недели до итерации, в которой предполагается реализовывать «Рассказ».
Представим, что команда из рассматриваемого примера тоже практикует такие встречи. Это означает, что после того, как создана карточка «Рассказа» и, возможно, кем-то даже добавлен основной сценарий, несколько человек собираются, чтобы совместно рассмотреть и обсудить этот «Рассказ». Количество человек, на самом деле, может и превышать число три. Это число лишь отражает то число ролей, которые необходимы на подобной встрече: знаток предметной области, знаток технологической составляющей продукта и знаток функциональной составляющей продукта, включая способы её тестирования. В реальной разработке это могут быть руководитель продукта (Product Owner), опытный разработчик и опытный тестировщик. В рассматриваемом примере это сам «заказчик», один из редакторов, один из писатель и издатель, который будет заниматься проверкой эффекта «Рассказа» с тестовыми группами читателей.
Встреча начинается с того, что «заказчик» презентует подготовленный им «Рассказ». Затем начинается обсуждение. Его цель – критически оценить «Рассказ» с разных точек зрения, понять его реализуемость и возможные риски, выявить дополнительные сценарии его развития и перспективы их реализации. И в результате, на основе всего этого, принять решение: брать ли «Рассказ» в дальнейшую разработку и, если брать, то в каком виде и составе.
Первое же, что становится темой обсуждения – это выполнимость цели «Рассказа», изложенная в его нарративе. Иногда на этой стадии используется специальная техника под названием «Адвокат дьявола». Однако не будем на ней останавливаться. Так или иначе, при обсуждении цели «Рассказа» у большинства собравшихся возникают сомнения в её достижимости. Редактор не уверен, что всего один дополнительный эпизод действительно может оказать на читателей такое сильное влияние. Издатель соглашается, что такого объёма и в таком виде будет недостаточно. При этом писатель видит представленный сценарий вполне пригодным для реализации и даже не предлагает никаких изменений. Тогда редактор вспоминает, что в сборнике былин осталась неиспользованной довольно перспективная идея с «камнем-указателем», предполагающая вариативность продолжения повествования. Он предлагает её использовать для расширения текущего «Рассказа». Писатель соглашается и высказывает предположение о том, что вместо одного сценария в течение одной итерации можно успеть реализовать сразу три. Издатель с «заказчиком» приходят в восторг от идеи трёх заключительных эпизодов в рамках одного «Рассказа». Это кажется им верным путём к успеху. И тогда они добавляют в репозиторий следующий коммит. И новая версия «Рассказа» становится такой.
Первое, что стоит отметить, это добавление блока «Предыстория». В соответствии с тем компонентом, который решено было добавить, каждый сценарий «Рассказа» начинается с того, что Илья приезжает на распутье и видит камень с надписями про три дороги. Чтобы не дублировать эти шаги в каждом сценарии, Gherkin предусматривает возможность использования конструкции «Предыстории», которая, при запуске сценариев будет предварять каждый из них, то есть сначала будут исполняться все шаги «Предыстории», а затем шаги каждого из сценариев по порядку их следования или принудительного запуска. При этом, для придачи языку «Рассказа» естественности и логичности, шаги «Предыстории» необходимо писать в прошедшем времени, в то время как шаги сценариев пишутся в настоящем времени, за исключением первого шага, который становится связкой между предысторией и конкретным сценарием. Шаг-связка тоже пишется в прошедшем времени. Всё это является отличительными особенностями «Рассказов» на русском языке, поскольку в рассказах на английском все шаги, в том числе и шаги «Предыстории», пишутся в настоящем времени (первый шаг – Present Perfect, последующие – Present Simple).
Сценарий про разбойников, изначально добавленный «заказчиком», практически не изменился, за исключением первого шага-связки, который заменил собой общий шаг «ехал по чисту полю».
Второй и третий сценарий добавлены лишь на уровне названий и шагов-связок. Поскольку для их дальнейшего обсуждения необходимо присутствие всей команды. На встречах «Три амиго» очень редко обсуждаются конкретные детали. Её цель в более высокоуровневом обзоре и обсуждении «Рассказов».
Наконец, были также изменены центральная часть нарратива и название «Рассказа». Поскольку подвигов стало три, один «финальный яркий подвиг» заменён на «ряд финальных ярких подвигов». И название из «Илья Муромец и разбойники» переделано в «Три поездки Ильи Муромца» (что соответствует оригинальному названию былины-примера).