Каковы некоторые ситуации, когда Agile неуместна?

Я слышал и читал про Agile годами. У меня есть книга или две, и мне нравится идея.

Я, наконец, в положении, где я мог бы свернуть что-то вроде этого, где я работаю, но у меня есть серьезные опасения по поводу того, как это сделать для нас:

  • Разве для этого нет минимального размера? Большой дизайн впереди должен быть более эффективным для трех-четырехнедельного проекта... Правильно?
  • Наши клиенты обычно требуют фиксированных цен. Им нужно знать, с чем они имеют дело, за исключением особых случаев, когда мы против очевидной черной дыры, и даже тогда люди более удобны с кепкой. Итак, как вы можете предоставить цитату, если вы собираетесь с процессом, терпимым к текущим изменениям требований?
  • Я понимаю, что Agile может обеспечить лучшие шансы на успех в более сложных проектах, но разве это не приведет к росту затрат для клиента? И, конечно, есть затраты на неспособность рассмотреть - возможно, мы вернулись к вопросу о минимальном размере.
  • Как в мире вы могли бы объяснить этот контр-интуитивный подход к клиентам? У нетехнических заинтересованных сторон может не быть опыта, чтобы обернуть головы вокруг чего-либо, кроме Водопада.
  • Даже для внутренних проектов существуют бюджеты. Что мне не хватает?
  • Кажется, в последнее время наблюдается некоторая реакция против Agile. Скоро что-то начнет набирать силу?

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

Спасибо большое!

Брайан Маккей

12 ответов

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

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

Теперь, что касается BDUF (Big Design up Front), у нас был большой успех с командой из 20 человек в 4-месячном проекте, мы взяли проект, разбив его на 3 четырехнедельных цикла, в начале каждого цикла мы все встречаются в комнате и говорят здесь, что нам нужно построить, вот как мы его построим, и мы взяли удар по тому, как будут выглядеть наши интерфейсы, какие данные нам нужны и т.д.... Но это был только удар, мы тогда вернулись к нашим столам, и тот, кто принадлежал разным частям, смыл детали.

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


простое решение имеет 2 шага:

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

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

Примечание: это будет работать только в том случае, если клиент намерен выполнять свою роль, а именно, быть высокодоступным для разработчиков (отвечать на вопросы, писать истории и описания тестов и т.д.) и не менять свое мнение во время итерация

удачи с вашим переходом и дайте нам знать, как это происходит!


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


Это зависит от того, кого вы спросите, верят ли они в подвижный или нет...

Что касается этого:

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

http://www.opaquelucidity.com/facepalm.jpg

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


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

Вопрос в том, какая другая методология будет лучше в этих условиях.


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

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

Что касается стоимости неудачи, это очень законная проблема. Одно из преимуществ Agile заключается в том, что любые сбои случаются раньше и гораздо дешевле, чем в проекте после методологии водопада. Уметь учиться на этих неудачах и получать хороший продукт в конце - это не результат, который может предложить методология водопада. У федерального правительства имеется множество громких неудач программных проектов, которые следуют методологии водопада и BDUF. Я в блоге о сбое проекта файла FBI Virtual Case File.

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


Позвольте мне ответить на ваши вопросы по пунктам:

Нет ли минимального размера для этого? Большой дизайн впереди должен быть больше эффективный на три-четыре недели проект... Правильно?

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

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

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

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

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

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

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

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

И, конечно, есть затраты на отказ - возможно, мы вернулись к вопросу о минимальном размере.

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

Как в мире вы могли бы объяснить этот контр-интуитивный подход к клиентам? У нетехнических заинтересованных сторон может не быть опыта, чтобы обернуть головы вокруг чего-либо, кроме Водопада.

Почему оплачивается Agile Software Development?

Даже для внутренних проектов есть бюджеты. Что мне не хватает?

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

Кажется, в последнее время наблюдается некоторая реакция против Agile. Скоро что-то начнет набирать силу?

С самого начала была реакция на него. И поскольку это становится все более популярным (и это!), Вполне естественно, что вы также видите больше люфта.

Lean Software Development набирает обороты. Это не в конкуренции с Agile-разработкой, а скорее дополнением. Сообщества на самом деле довольно перекрываются.

Относительно "одной методологии, чтобы управлять ими всех" - взгляните на семейство Agile-процессов Алистера Кокберна "Кристалл". Он утверждает (достаточно грамотно), что каждый проект нуждается в собственном процессе и что даже один процесс проекта должен меняться в течение всего проекта. И он обеспечивает легкую основу для разработки вашего процесса.

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


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


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

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

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


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


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

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

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

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

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

Как в мире вы могли бы объяснить этот контр-интуитивный подход к клиентам? Нетехнические заинтересованные стороны, возможно, не имеют опыта, чтобы обернуть головы вокруг чего-либо, кроме Водопада. Образование (т.е. Гибкий загрузочный лагерь) и посещение успешных гибких команд помогут чрезвычайно. Затем запустите команду. Работа заставит их заняться, и результаты будут продавать их.

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


Имхо:

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

Один из способов попытаться "продать" быстродействующим клиентам - предоставить им два варианта: 1. Водопад, где нет отмены, пока мы (разработчики) не согласны с нашим окончанием соглашения. 2. Agile, где вы получаете еженедельные обновления статуса, практические демонстрации по мере их появления и право прекратить обслуживание каждые 2 недели (в случае, если вам не нравится наша работа).

licensed under cc by-sa 3.0 with attribution.