4 заметки с тегом

Agile

Jira. Быстрый фильтр для подзадач

Если у вас используется в вашем проекте Jira структура вида Epic -> Story -> Sub-task, то вам будет полезен следующий быстрый фильтр.

Кейс применения:
Есть доска, на ней дорожки (swimlanes) идут по Story, внутри которых есть Sub-task. При этом у вас есть Epic, которые содержат в себе story (epic_link), но естественно не содержат все под задачи этих историй.

Проблема:
Если мы делаем быстрые фильтры по разным Epic вида «Epic link» = №, то при выборе его у нас буду показываться только дорожки историй, а все подзадачи «исчезнут», так как они напрямую не привязаны к эпику, что логично.

Решение:
Добавляем вызов функции по поиску всех подзадач отобранных задач, получаем то, что нам нужно.

8 ноября   Agile   epic   function   jira   lifehack   quick filter   story   sub-task

Что такое продукт?

Если вы работаете в Scrum команде, то несомненно знаете, что должен быть бэклог продукта и владелец продукта.

Но что же такое продукт?

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

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

Что является продуктом авиакомпании?

Взять к примеру авиакомпанию. Некоторые сотрудники компании утверждают, что авиакомпания осуществляет только одну вещь (или услугу): перемещает людей из одной точки в другую. Эти же сотрудники утверждают, что несмотря на то, что в компании может работать более 40 тыс. человек, у компании только один продукт.

Другие сотрудники утверждают, что у авиакомпании множество продуктов. Например, веб-сайт с информацией о пассажирах, с помощью которого можно делать бронирование, регистрацию на рейс или проверять статус рейса. Также существует система мониторинга и планирования технического обслуживания самолётов. И есть ещё одна система, позволяющая членам экипажа выбрать рейс, на котором они хотели бы поработать согласно своего стажа.

Всё ли перечисленное — продукты?

Определение продукта и примеры

Майк Кон определяет продукт как что-то (физическое или нет) созданное в процессе и предоставляющее ценность рынку.

Исходя из этого определения, стул будет продуктом, Microsoft Office тоже, услуги по Agile консультированию тоже продукт, картина тоже будет продуктом.

Таким образом, продуктом может быть что-то физическое (например, стул) или что-то цифровое (например, Microsoft Office, электронная книга, телевещание), также продуктом может быть услуга (например, Agile консультирование).

Продуктом может быть даже идея (например, запатентованный алгоритм).

Каждый из этих видов продуктов создаётся в процессе или, говоря проще, посредством одного или нескольких действий. Кто-то изготавливает и собирает стулья. Для Microsoft Office был создан дизайн, написан и протестирован код. Процесс, который создаёт продукт не обязательно формальный и определённый. Некоторые создатели могут даже и не знать о существовании процесса. Однако некоторая форма деятельности входит в создание каждого продукта.

Продукты могут быть определены рекурсивно

Продукт может существовать с другим продуктом. Например, у пишущей ручки есть стержень с чернилами. Ручка — продукт, однако и стержень с чернилами — продукт.

Такие подпродукты могут быть и у стула. Например, компания изготавливающая и продающая стулья может закупать ножки для стула у другой компании. В таком случае, ножки для стула тоже будут продуктом.

Продукты могут быть определены рекурсивно. Лесозаготовительная компания срубает деревья для изготовления древесины, древесина — это самостоятельный продукт. Затем, мебельная фабрика изготавливает из данного дерева ножки для стула, а другая компания использует данные ножки для изготовления стульев собственного дизайна. Таким образом продукты могут существовать внутри других продуктов.

Продукты приносят ценность рынку

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

Это применимо и к ножкам для стула и к сменному стержню для ручки. При определении продуктов — и, следовательно, владельцев продуктов и бэклогов продуктов в Scrum — крайне важно чтобы они приносили ценность рынку.

Применим определение продукта к примеру с авиакомпанией

Итак, если продукты создаются в процессе и приносят ценность рынку, является ли программные компоненты продуктами?

Для того, чтобы ответить на этот вопрос возьмем авиакомпанию из предыдущего примера. Как понять, что понятие продукт — это что-то созданное в процессе и предоставляющее ценность рынку — поможет авиакомпании определиться со своими продуктами?

Прежде всего, легко заметить, что перемещение людей из одной точки в другую — это продукт. Эта деятельность приносит ценность рынку и люди охотно платят за возможность перелёта в другую точку.

А что насчет системы мониторинга и планирования технического обслуживания самолётов? И это тоже продукт.
Она создана в процессе и также приносит ценность рынку. Какому рынку?

Конечно же, можно сказать, что пассажиры получают ценность, что летают в технически исправных самолётах. Однако, на самом деле сотрудники авиакомпании получают ценность от данной системы, так как им не надо делать данную работу вручную, она для них компьютеризована.

Тоже самое может быть сказано и о сайте авиакомпании, который позволяет пассажирам бронировать авиабилеты. Для сайта существует рынок.

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

Применение определения продукта к программным компонентам

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

Для примера рассмотрим команду, которая создаёт календарь. Календарь приносит ценность рынку — другим командам, которые будут его использовать. В таком случае, компонента, которая создаётся для нескольких команд, — продукт.

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

Избегание субоптимизирующих продуктов

Согласно профессору Таер Воткинсу из  государственного университета экономики Сан Хосе (San Jose State University Economics) субоптимизация «относится к практике сосредоточения внимания на одном компоненте из всех и внесении изменений для улучшения только в один компонент... игнорируя эффект изменений на другие компоненты»

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

Как было сказано ранее в примере с авиакомпанией, бывает, что продукт настолько велик, что обслуживает несколько рынков, и лучше выделить в нём несколько продуктов, которые обслуживают свои рынки.

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

Word, Excel, PowerPoint и тд. — это отдельные продукты. У каждого из них свой владелец продукта и свой продуктовый бэклог.

С таким большим продуктом как Office, легко представить, что есть и продукты, которые представляют собой общую функциональность для Word, Excel и PowerPoint. Если говорить о проверке грамматики, то да, выделение компоненты как отдельного продукта имеет смысл. Функциональность по проверке грамматики ценна для рынка (другим команда нет необходимости создавать свою отдельную такую же компоненту с нуля).

Тем не менее, функции Excel {=СУММА; =СРЗНАЧ и прочее} нельзя выделять как продукт, так как эта функциональность уникальна для Excel, таким образом функциональность служит только одному клиенту. Слишком рискованно для данной функции выделять отдельного от Excel владельца продукта и отдельный продуктовый бэклог.

В дополнение к тому, что следует избегать продуктов для одного клиента, еще одним способом снижения неоптимального мышления при работе с несколькими продуктами является назначение главного владельца продукта (chief product owner).

Главный владелец продукта (chief product owner) — это стратегическая роль, он отвечает за формирование видения по всем подпродуктам. Например, для продукта Office главный владелец продукта (chief product owner) будет следить за тем, как каждый отдельный продукт влияет на весь пакет.

P.S.

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

Текст адаптирован с оригинальной статьи:
https://www.mountaingoatsoftware.com/blog/what-is-a-product

Самоорганизующиеся команды не собираются случайно

Способность команды самоорганизовываться вокруг поставленной цели является фундаментом для всех Agile-практик, включая Scrum.

В Agile Manifesto самоорганизующиеся команды — это ключевой принцип: «Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд»

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

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

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

Не каждая Agile команда самоорганизуется одинаково

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

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

Можем ли мы ожидать самоорганизации от Agile команд?

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

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

Менеджмент осуществляет искусный контроль над самоорганизацией

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

«Выбор подходящих людей для проектной команды во время мониторинга изменений в групповой динамике и добавление или удаление участников в случае необходимости [является ключевой обязанностью менеджера]. „Мы бы добавили в команду более взрослого и более консервативного участника, если бы баланс слишком сильно сместился в сторону радикализма“, — сказал руководитель Honda. „Мы тщательно отбираем участников проекта после долгих размышлений. Мы анализируем различные личности, чтобы увидеть, будут ли они ладить“»

Поиск подходящих людей в Agile команду

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

1) Включите все необходимые компетенции

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

2) Сочетайте уровень технического мастерства

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

3) Находите баланс среди экспертов в определённой области

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

4) Ищите разнообразия

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

5) Учитывайте постоянство при формировании команды

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

Некоторые возражения по поводу самоорганизации команд

Давайте рассмотрим несколько возражений по поводу того, что команда может самоорганизоваться

Один доминирующий человек будет принимать все решения

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

Если вы замечаете, что такое начинает происходить, поясните данному человеку, что в тех ситуациях, где ему кажется, что он лучше всех знает «как правильно делать», ему следует давать команде право высказать своё мнение.

Спросите у него, как он думает, сможет ли команда принять правильное решение, если он представит свои мысли как мнение, а не как неоспоримое решение.

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

Моя команда ожидает, что Scrum Master возглавит

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

Если такое происходит, убедитесь что участники команды знают, что работа Scrum мастера заключается в помощи команде, а не в принятии решений за них. Если вы совмещаете роль Scrum мастер/ участник команды, вам не нужно постоянно скрывать своё мнение и сохранять молчание, однако, вам следует найти способы вовлечь других, например, задавая им вопросы до того как высказать своё мнение.

Команда слишком «зелёная» для самоорганизации

Третье возражение заключается в том, что команда слишком «зелёная» для самоорганизации

Если участники команды имеют достаточно опыта для создания продукта, у них, вероятно, достаточно опыта, чтобы понять, как самоорганизоваться. Если нет, проведите в команде обучение или коучинг.

К сожалению, часто данные возражения маскируют реальную причину: «Я не верю, что команда самоорганизуется так, как я хочу». Это очень плохо.

Искусно контролируйте то, кого вы объединили в команду и какую поставили цель, а не то как им самоорганизоваться для выполнения своей повседневной работы.

Текст адаптирован с оригинальной статьи:
https://www.mountaingoatsoftware.com/blog/self-organizing-teams-are-not-put-together-randomly

Разоблачение шести мифов о гибкой разработке продукта

Организации применяют agile подход по многим причинам:

~ одни надеются на повышение производительности и сокращение времени выхода на рынок;
~ другие для более успешных продуктов;
~ третьи применяют agile, чтобы расширить сотрудничество между разработчиками и бизнес людьми, улучшить качество или повысить удовлетворенность работой команды.

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

Миф #1: agile только для разработки программного обеспечения

Это интригующий миф, потому что scrum является старейшим agile подходом, истоки scrum лежат в разработке физических продуктов. Некоторыми из оригинальных проектов по scrum были фотокопировальные машины, автомобиль Honda и фото-камеры.

Agile в наши дни используется для всех форм разработки продуктов, от физических продуктов до облачных решений. Помимо продуктовой разработки, agile успешно используют:

~ маркетинговые команды для планирования и проведения кампаний;
~ адвокаты для управления делами и рабочей нагрузкой;
~ команды по организационной трансформации, в частности при переходе на agile;
~ команды руководителей для управления своими организациями;
~ семьи для улучшения времени, которое они проводят вместе;
~ пары при планировании свадьбы.

Любой проект с высокой степенью уникальности (вы не делали это раньше раз так десять) и сложности хорошо подходит для применения agile подходов.

Если вас смущает отсылка к программному обеспечению в опубликованных документах, таких как Agile Manifesto, просто замените на слово «продукты». Замените, например, рабочее программное обеспечение на рабочие продукты и прочитайте еще раз: Рабочие продукты, важнее исчерпывающей документации. Это идеально подходит. Почему? Потому что agile работает со всеми видами продуктов, программное обеспечение является лишь одним из них.

Миф #2: менеджеру нет места в agile

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

Нет: часть работы не была забрана. Такие активности, как назначение задач конкретным людям никогда не должна быть самой важной частью работы менеджера

Менеджеры должны быть сфокусированы на создании среды и культуры, которые необходимы команде для развития. Их время не должно расходоваться на такие мелочи, как кто будет работать над какой задачей.

Питер Друкер — ведущий теоретик 20-го века в менеджменте, наиболее известный идеей управления по целям и созданием аббревиатуры SMART для постановки целей (цель должна быть конкретной, измеримой, достижимой, значимой и привязанной ко времени), сказал, что у менеджеров есть пять видов обязанностей:
1) постановка целей;
2) организация людей и работы;
3) мотивация и коммуникация;
4) измерение;
5) развитие людей

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

За многие годы существования agile ни одна из компаний не принимала решения об увольнении всех менеджеров. Да, некоторые менеджеры стали scrum-мастерами, некоторые Владельцами продуктов, тем не менее в agile есть место для менеджеров.

Миф #3: стэйкхолдеры могут вносить изменения, когда захотят

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

Давайте рассмотрим ситуацию с заказом еды в ресторане

Вы говорите официанту, что хотите курицу. Затем сразу же говорите, «Нет, лучше лосося». В данном случае изменение вам ничего не стоит.

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

Стоимость становится более очевидной, если вы съедите половину курицы до того, как скажите официанту, что хотели бы вместо курицы лосося.

Изменения, которые стэкхолдер вносит в спринт схожи с изменением блюда на ужин. Если изменения внесены в правильное время, то стоимость изменения будет маленькой или её вообще не будет. Однако, если это произошло в неверное время — стоимость будет высокой.

Быть agile не означает убрать всю стоимость изменений, которые вносят стэкхолдеры, однако, хорошие agile команды могут снизить стоимость таких изменений.

Для этого у команд:
~ короткие спринты;
~ маленький продуктовый бэклог;
~ элементы бэклога делаются настолько быстро насколько это возможно, обычно минимизируя количество элементов, над которыми работают одновременно.

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

Миф #4: Каждый участник agile команды должен быть универсальным

Участник agile команды должен быть способен делать всё — самый популярный миф об agile командах.

Этот миф подразумевает, что если вы наняли величайшего в мире администратора баз данных Oracle, вы хотите, чтобы этот администратор баз данных был также замечательным Java разработчиком. И ваш удивительный Java разработчик должен быть полностью опытным в тестировании на случай, если в одном спринте не требуется много Java разработки.

Это абсолютно не так.

Agile командам не надо, чтобы каждый обладал всеми компетенциями, командам нужно, чтобы ценили тех, кто обладает несколькими компетенциями.

Чтобы понять ложность этого мифа, давайте рассмотрим пример с модным рестораном

В ресторане есть Шеф-кондитер, который умеет делать выпечку, десерты, хлеб и другие хлебобулочные изделия. Его роль звучит как высококвалифицированная, но специализированная. Другой специализированной ролью на кухне может быть Соусье́, который отвечает за соусы, за всё, что подается с соусом, также за тушение и обжарку в соусах.
На хорошо организованной кухне было бы неплохо, если бы Шеф-кондитер мог помочь Соусье́, возможно, нарезав немного лука, но ни Шеф-кондитер, ни Соусье́, не способны полностью выполнять работу друг друга.

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

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

Баланс может быть достигнут в большинстве команд, даже если несколько её участников владеют только одной компетенцией.

Миф #5: Agile команды не планируют

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

Любая agile команда планирует на тот горизонт, который необходим для принятия важного решения.

На самом деле, несмотря на этот миф, agile командам проще создавать надежные планы, потому что она знает насколько быстро производит продукт.

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

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

Миф #6: Agile команда не создаёт архитектуру и дизайн своего продукта

Пришло время разоблачить последний миф: миф о том, что agile команда не создаёт архитектуру и дизайн своего продукта.

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

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

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

Архитектура не просто появляется в один день, она появляется постепенно и управляется командой, чаще участниками команды с необходимыми архитектурными компетенциями.

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

Текст адаптирован с оригинальной статьи:
https://www.mountaingoatsoftware.com/blog/six-agile-product-development-myths-busted