Глава 17. Истории – это нечто вроде астероидов
Если вы примерно одного возраста со мной, то, может быть, вспомните (с ностальгией), как играли в одну из первых видеоигр под названием «Астероиды». Давайте на минутку предадимся воспоминаниям: обещаю, это вполне в рамках темы.
В игре «Астероиды» вы играли за небольшой космический корабль, летящий где-то далеко в космическом пространстве. Но дорогу вам преграждал пояс огромных астероидов, и нужно было расстреливать их, чтобы расчистить себе путь и остаться в живых! Если вы стреляли в большой астероид, он распадался на несколько маленьких. Еще интереснее игру делало то, что эти маленькие астероиды двигались быстрее и в разных направлениях, что значительно усложняло вашу задачу уклониться от столкновений с ними. Если вы стреляли в один из этих меньших астероидов, он распадался на еще меньшие, которые двигались еще быстрее в разных направлениях. Очень скоро экран был весь в астероидах разных размеров, двигавшихся во всевозможных направлениях. К счастью, если вы стреляли в самые маленькие астероиды, они просто взрывались, что помогало немного расчистить путь.
Самой худшей стратегией в этой игре было стрелять по большим камням и разбивать их на маленькие. Экран очень скоро заполнялся маленькими камнями, летящими во все стороны, после чего вас настигала быстрая, но мучительная смерть.
Очень плохая стратегия управления бэклогом – разбить все большие истории на части так, чтобы все они входили в ближайший цикл разработки. Ваш бэклог заполнится множеством маленьких, хаотично летящих историй, которые очень быстро вас укокошат. Конечно, на самом деле вы не умрете, но окажетесь погребены заживо под тяжестью абсолютно ненужной сложности. Вы, как и все остальные, будете жаловаться на то, что перестали видеть общую картину, скрытую всеми этими мелкими деталями.
Разбивайте истории на части постепенно и лишь тогда, когда это необходимо.
Во всех обсуждениях историй, на всех стадиях разбиения работайте, помня следующее.
1. Обсуждая возможности, рассмотрите, для кого они предназначены, какие проблемы решают и хорошо ли сочетаются с вашей бизнес-стратегией. Есть смысл на этом этапе разделить слишком объемные возможности.
2. Во время исследования обсуждайте более конкретно, кто, зачем и как использует продукт. Цель вашей команды – представить продукт ценный, полезный и реализуемый. Большая часть дробления камней происходит здесь. Лучше всего, если вы передвинете в релизный бэклог лишь небольшую часть историй, которая позволит вам выпустить минимально жизнеспособный продукт.
3. Планируя стратегию разработки, обязательно обсуждайте риски, вызванные предположениями о том, что понравится пользователям и закрепится в их работе, а также риски, связанные с технической реализацией. Разбивайте камни, нацеливаясь на изучение, создавайте то, что вам нужно в первую очередь, чтобы узнать как можно больше.
4. Планируя следующий цикл разработки, проведите финальные, самые качественные обсуждения, чтобы точно решить, что вы создаете, и прийти к соглашениям, как будете проверять готовность программного продукта. Каждое из этих соглашений позволяет разбить историю на еще более мелкие истории так, чтобы каждый из них соответствовал хотя бы одному соглашению.
Очевидно, что если вы попытаетесь провести все четыре обсуждения за одну встречу, это займет очень много времени и будет слишком утомительно. Для того чтобы рассмотреть все необходимые аспекты, потребуется очень много людей. А из моих предыдущих предупреждений и из собственного опыта вы наверняка знаете, что большая группа людей не может работать эффективно, по крайней мере не все присутствующие в одной комнате одновременно. Именно поэтому мы разбиваем истории постепенно, проводя довольно много отдельных обсуждений.