Вы говорите, что ваша команда Agile… но это слово может означать не то, что вы думаете.

vy govorite chto vasha komanda agile… no eto slovo mozhet

от Марка Шеда

Многие вещи называют Agile – особенно люди, которые что-то продают. Но Agile Manifesto ясно объясняет, что это не методология. Это не конкретный способ разработки программного обеспечения. Это не структура или процесс. Фактически, большинство вещей, которые продаются как Agile, как правило, упускают суть того, чем Agile на самом деле.

Agile – это набор ценностей и принципов.

Значительная часть дискуссий вокруг Agile касается соблюдения разных практик, использования разных методологий и даже разработки с помощью специальных инструментов. Например, хотя команда может обнаружить, что ежедневный стендап полезен, стендап является «гибким» лишь в той мере, в какой он является результатом того, что команда придерживается принципов и ценностей Agile.

Если вы это поймете, то легко понять, что Agile — это совокупность убеждений, какие команды могут использовать для принятия решений о том, как выполнять работу по разработке программного обеспечения. Хотя это означает, что термин Agile испытывает большое количество злоупотреблений, когда люди утверждают, что тот или иной способ быть Agile, это также означает, что если вы действительно понимаете, что такое Agile, он удивительно гибок.

Agile не принимает решения за вас. Это создает основу для принятия командами решений, которые приведут к лучшей разработке программного обеспечения.

Agile Манифест

Agile Manifesto состоит из 68 слов, и в нем просто сказано, что подписанты обнаружили, что они могут лучше разрабатывать программное обеспечение, оценивая элементы в левой части списка больше, чем в правой.

Agile Manifesto говорит:

Мы открываем лучшие способы разработки программного обеспечения, делая это и помогая другим. Благодаря этой работе мы оценили:

Личности и взаимодействие процессов и инструментов

Работающее программное обеспечение над полной документацией

Сотрудничество с клиентом по согласованию контракта

Реагирование на изменения вместо соблюдения плана

То есть, хотя элементы справа ценны, мы ценим элементы слева больше.

Гибкие принципы

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

Принципы:

  1. Наш высочайший приоритет – удовлетворить клиента путем своевременной и постоянной доставки ценного программного обеспечения.
  2. Добро пожаловать на изменение требований, даже на поздней стадии разработки. Гибкие процессы используют изменения для конкурентного преимущества клиента.
  3. Доставляйте рабочее программное обеспечение часто, от нескольких недель до нескольких месяцев, предпочитая более короткие временные рамки.
  4. Бизнесмены и разработчики должны работать вместе каждый день на протяжении всего проекта.
  5. Создавайте проекты вокруг мотивированных людей. Обеспечьте им необходимую среду и поддержку и доверьте им работу.
  6. Наиболее эффективным и действенным методом передачи информации команде разработчиков и внутри нее является беседа с глазу на глаз.
  7. Работающее программное обеспечение является основным показателем прогресса.
  8. Гибкие процессы способствуют устойчивому развитию. Спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп до бесконечности.
  9. Постоянное внимание к техническому совершенству и хорошему дизайну повышает маневренность.
  10. Простота – искусство максимизировать количество невыполненной работы – важна.
  11. Лучшие архитектуры, требования и проекты исходят из самоорганизующихся команд.
  12. Через регулярные промежутки времени команда рассуждает о том, как стать более эффективной, а затем соответственно настраивает и корректирует свое поведение.

Гибкие решения

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

Команда, которая следует Agile, сказала бы:

«Хотя это может сработать, разве это не противоречит нашему убеждению, что мы должны ценить сотрудничество с клиентом, а не переговоры по контракту? И не нарушает ли это наш принцип, согласно которому разработчики должны работать с владельцами бизнеса каждый день? Как мы можем принять это решение таким образом, чтобы оно соответствовало нашим ценностям и принципам, которыми мы придерживаемся?»

Или подумайте о разработчике, работающем над внедрением функции для владельца бизнеса. Разработчик понимает, что для работы функции ему нужна база данных. Первая идея, которая приходит в голову, — прекратить работу над функцией и создать надежный уровень базы данных, который будет отвечать потребностям функции и обеспечивать поддержку для других разработок, которые потребуются позже. Если разработчик верит в ценности Agile и пытается следовать принципам Agile, он подумает:

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

Если у вас есть команда, которая следит за Agile, они будут еженедельно принимать сотни решений способом, описанным выше.

Вот что значит быть Agile: принимать каждое решение на основе принципов и ценностей, которые решила придерживаться команда.

Быть Agile

Процесс принятия решений не имеет значения. Вы не можете пытаться запирать вещи, принимая решения, принятые другой командой, и просто слепо делая то, что они решили сделать. Другая команда может принимать решения на основе принципов и ценностей Agile и в конечном счете выбирать определенный способ выполнения своей работы. Простая попытка имитировать действия и практики другой команды не сделает вашу команду ловкой.

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

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

Команда может начать с SCRUM, а позже обнаружить, что Kanban лучше подходит для придания ценности своим клиентам. Команда может начать стоять во время ежедневной встречи, а потом решит, что для всех лучше оставаться сидеть. Другая команда может начать использовать Planning Poker, чтобы оценить размер истории, прежде чем отказаться от сюжетных точек и вместо этого разделить истории где-то в том же диапазоне.

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

Давайте подытожим

Итак, что такое Agile?

Agile – это набор ценностей и принципов.

Как команда становится Agile?

Они принимают решения на основе ценностей и принципов Agile.

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

Спасибо за чтение! Эта статья изначально была опубликована в моем блоге, и вы можете найти больше подобных видео на моем канале Youtube.

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

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