Когда Agile идет не так [закрыто]

24

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

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

На что обращать внимание, когда Agile-проект работает неправильно?

Chepech
источник
18
Большинство ужасных историй, которые я слышал о agile, были больше о вовлеченных людях, чем о проекте, над которым они работали.
Матье
1
Я вижу несколько вопросов, которые указывают на ловкие ловушки в разделе «Связанные» справа ------------------->
CFL_Jeff
1
Я пересмотрел вопрос, чтобы не предлагать время для рассказа, а вместо этого спросить об отдельных конкретных фактах о том, где Agile идет не так.
maple_shaft
3
@Oded Какой подход делает работу хорошо , когда есть «жесткие сроки без отдавания по функциональности»?
иррациональный Джон
6
@irrationalJohn - Марш смерти, конечно;)
Одед

Ответы:

47

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

  • Ежедневные дежурства (которые длятся около часа)
  • Разбить работу на спринты
  • Пользовательские истории (которые обычно немного больше, чем предложение, но ожидается оценка)

Это те три, которые вы будете постоянно «применять» в этих средах, но очень мало приверженности к тому, чтобы быть действительно гибкими. На самом деле вы услышите, как руководство говорит, что мы «делаем гибкие». (Убегите от этих двух слов, это плохой знак.)

Вы также много услышите о техническом долге, но их определение технического долга таково: «сделай это быстро и грязно и, возможно, мы доберемся до того, чтобы улучшить его позже». (Перевод: мы хотим, чтобы это звучало так, как будто мы заинтересованы в ремонтопригодности, но на самом деле мы сохраним тот же менталитет котельной, потому что это работало для нас в прошлом).

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

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

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

Ключевым показателем того, будет ли Agile проект успешным, является наличие у руководителя проекта (scrum master или любой другой роли) опыта или формального обучения руководству гибким проектом. Слишком часто я видел, как люди читали об Agile в книге или проходили двухдневный курс по мастерству схватки и думали, что у них есть все возможности, чтобы успешно его реализовать. Извините, это не происходит, капитан.

Майкл Браун
источник
4
Я не полностью согласен с ключевым показателем успеха. Я бы сказал, что ключевым показателем является реальная приверженность как руководства, так и разработчиков, и, по крайней мере, базовое понимание и принятие правил Agile клиентами. Даже самые лучшие в мире тренинги Agile не смогут продвинуть вас далеко, если руководство будет вести себя так, как вы описали выше. OTOH с достаточной решимостью и энтузиазмом, можно выучить Agile даже из книги и успешно применять ее в проекте путем последовательной доработки - если руководство поддерживает ее всерьез.
Петер Тёрёк
Просто в сторону, можете ли вы объяснить, что означает «менталитет котельной»? Я слышал это раньше, просто никогда не слышал объяснений.
Кевин Маккормик
2
«Окружающая среда котельной» - это область высокого давления, в которой все исправно, где условия работы всегда неприятны. Менталитет котельной увековечивает такую ​​ситуацию.
Геллион,
1
«... руководитель проекта (scrum master) ...»: недавно я слушал выступление Боба Мартина, в котором утверждалось, что scrum master не должен был быть лидером проекта в начале: это была роль, которую нужно вращать среди члены команды (разработчики, участвующие в проекте, а не менеджеры) и должны были только проверить, что определенные гибкие принципы были соблюдены на протяжении всего спринта.
Джорджио
21

Люди, которые не понимают, что такое agile (было?) И применяют его к:

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

  • менеджеры, которые держат разработчиков подальше от клиента (возможно, потому что им немного недоплачивают, и они могут прыгать на корабли, собираясь работать на указанного клиента) и играть в игру « сломанный телефон » в отчаянной (часто успешной, хотя) попытке выглядеть занятым и полезным,

    См. Также: управление грибами , иначе говоря, «держали в тени, кормили навозом» и боссов с острыми волосами . :)

  • команды, которые слишком велики, чтобы идти куда угодно;

  • компании, которые платят за свою зарплату когда-то известным дизайнерам системной архитектуры, которые отчаянно отвлекают внимание от того факта, что они полностью упустили из виду реальное ремесло кодирования, переиздавая великолепные, непрактичные, труднодостижимые, семейства саграда UML .

Zjr
источник
2
Ух ты, китайский шепот, правда? Звучит привет расист.
Марк Канлас
12
Я не согласен с вашим лицемерным негодованием по поводу расизма. Скажи расисту статью в Википедии на эту тему и ссылку на издание Оксфордского словаря 2008 года.
ZJR
3
@Canlas Ты говоришь привет североамериканец.
ZJR
3
Что на земле playing a game of "telephone"значит? На самом деле не думаю, что редактирование было в любом случае необходимо ...
Cocowalla
6
Фактическое название игры - «Сломанный телефон» (уже отредактированный), и, как ZJR указывает на то, что это не расистская фраза, я фактически связал статью в Википедии с «Сломанный телефон» и угадайте, что? он перенаправляет на «китайский шепот» =)
Чепеч
12

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

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

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

gbjbaanb
источник
Погоди. Вы действительно думаете, что большинство Agile проектов предназначены для продолжения "навсегда"?
user16764
1
это зависит от проекта, некоторые из которых являются открытыми и продолжаются, в то время как есть новые требования для включения. Но большинство гибких проектов не предназначены для завершения и доставки в установленный день. Я особенно думал о правительственных контрактах, которые установили вехи, чтобы встретиться.
gbjbaanb
Формально проект никогда не бывает открытым; Единственная ключевая особенность проекта в том, что у него есть дата начала и окончания. Это продукты и услуги, которые вы поддерживаете в течение длительного времени.
Donal Fellows
1
«плохие линии связи». Насколько я знаю, Agile не обнаружил хороших связей, и гибкие методологии мало что могут сделать с дисфункциональными командами, которые не могут общаться.
Джорджио
10

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

Вы когда-нибудь слышали о "псевдо Agile"? Вот несколько записей в блоге об этом:

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

JB King
источник
9

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

У успешного был следующие элементы:

  • Поистине «проворные» требования. Были пользовательские истории, и мы закодировали их.
  • Доступен владелец продукта. Если пользовательская история, от которой я писал код, была неполной, я мог бы легко обратиться к владельцу продукта, спросить его, что там должно быть, добавить его и заполнить код.
  • Приверженность процессу и осознание того, что это была кривая обучения.
  • Сосредоточенная команда.
  • Менеджеры, которые знали и понимали Agile-способ ведения дел, которые были привержены тому, чтобы заставить его работать.

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

Команда, в которой я был, не очень хорошо работала с Agile, тоже имела несколько элементов:

  • Отсутствие обязательств со стороны руководства. Менеджмент не верил в философию и в результате не решался на это.
  • Требования задокументированы в других местах, кроме пользовательских историй. Смотрите выше об обязательстве руководства. Кроме того, у нас были высокооплачиваемые аналитики по требованиям и большие дорогостоящие инструменты, которые кто-то должен был оправдать.
Алан Делимон
источник
В значительной степени отражает мой опыт с Agile, +1. Либо вся команда (включая представителей бизнеса и менеджмента) делает Agile успешной, и она работает хорошо, либо это делают только некоторые разработчики, и это случай краха и срыва.
Амос М. Карпентер
7

Я добавлю к уже опубликованным отличным ответам, которые, по моему опыту, гибки и, в частности, Scrum будут работать только в том случае, если руководство И команда готовы сделать видимость того, что происходит.

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


источник
6

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

  • Проекты, продукт которых важен для жизни или имущества. Например, вы не хотите использовать agile для разработки программного обеспечения, которое запускает кардиостимулятор. Зачем? Потому что у вас почти нулевая терпимость к ошибкам. Рассмотрим классический пример ошибки программирования в медицине в отношении Therac 25 . Конечно, это не было построено с гибкой, но суть в том, что развитие жизненной или имущественной важности не место, чтобы сказать, «мы очистим это на следующем спринте» или «нам не нужно великое, просто хорошее достаточно."

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

  • Проекты, которые требуют более высокого уровня контроля или планирования, чем те, которые традиционно предлагаются с Agile.

Я предполагаю, что или кто-то другой подскочит и поможет с лучшими примерами, или преуменьшу этот кусок обмана, который я написал ;-).

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

Дэн Коутс
источник
5
Agile не исключает жизненно важных систем. Если предмет не был полностью протестирован и принят заказчиком, он не «готов» и не выпущен, независимо от того, был ли выполнен спринт. Вполне возможно, что другие элементы (требования, истории) были должным образом завершены и протестированы во время спринта, поэтому они могут быть выпущены - если клиенты хотят, чтобы они были. Agile всегда обеспечивает именно то, что нужно клиенту, с высоким качеством.
Мэтью Флинн
5

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

Я бы не сказал, однако, что Waterfall обязательно будет работать в такой среде, это не черно-белая ситуация, очень мало по-настоящему черно-белой.

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

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

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

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