Решение о дате выпуска до сбора всех требований является гибким?

10

Я только начал читать книгу «Применение UML и паттернов» Крейга Лармана. Я нахожу это очень интересным, потому что это бросает вызов многим из того, что мне сказали на работе. Я читал, что требования не полностью собраны за один раз в agile, и для сбора требований требуется много итераций. Если это так, устанавливает ли жестко установленный крайний срок, а это то, что я вынужден делать на работе, очень неустойчиво, учитывая, что завтра могут появиться какие-то принципиально новые требования (или запрос на изменение, маскирующийся под требование)?

Кошик
источник

Ответы:

19

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

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

Филип Кендалл
источник
1
Я всегда чувствовал, что эта ресурсная сторона треугольника - ошибка. Поменяйте его на качество, и оно будет работать лучше. Но вы на месте: свяжите меня с датой релиза, если нужно, но в результате характеристики и качество снизятся.
Дэвид Арно
1
@DavidArno Я бы сказал, что «качество» является частью определения «Готово», которое само является частью каждого требования. И «ресурс» , безусловно , может оказать существенное влияние на доставку , если вы берете ресурс далеко от проекта.
Филипп Кендалл
1
@ChristianHackl: Я думаю, что независимо от того, какая методология, разработка программного обеспечения требует много времени и больших денег, если вы также хотите качество.
Брайан Оукли
2
@BryanOakley: это правда. Я просто хотел бы, чтобы гибкие евангелисты действительно осознавали, что их методологии не являются особенными в этом отношении. Как только вы оставите ложное предположение о том, что Agile позволяет вам съесть свой торт и съесть его, тогда вы действительно можете спроектировать правильный процесс разработки для своего проекта, выбрав, насколько «гибким» и должно быть в нем.
Кристиан Хакл
1
@ChristianHackl Ни одна методология не является серебряной пулей. Но основной смысл «гибкого» (в широком смысле) термина заключается не в том, что он должен сделать успешные поставки дешевле / быстрее, а в том, что он снижает стоимость (неизбежных) отказов.
Гуран
3

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

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

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

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

Даниил
источник
Вы на самом деле обещаете это людям? Что если вы ошибаетесь, и другой подход уложился бы в срок с еще лучшей едой?
Кристиан Хакл
1
Подобные аргументы об Agile и крайних сроках здесь
Эрик Кинг,
@Christian. Конечно. По крайней мере, это лучшее, что я могу сделать в рамках этого ограничения. Возможно, кто-то еще мог бы сделать лучше, или, если бы обстоятельства были другими, я бы нашел лучшее решение, но эти предположения не кажутся ценными. Особенно учитывая, что у меня всегда будет больше информации, чем позже в проекте он получит, любой предполагаемый крайний срок, который я сейчас даю, будет по своей природе менее информирован, чем все, что я скажу вам позже.
Daniel
Конечно, мы говорим о довольно сложной теме на платформе StackExchange, которая не предназначена для работы с широкими многогранными темами. Я старался, чтобы мой ответ был кратким и сфокусированным, чтобы соответствовать платформе. На самом деле это очень узкая часть, и можно сказать много о более устойчивой природе разработки программного обеспечения и организации жизненного цикла разработки.
Даниил
@ Даниель: Ну, я просто возражаю против идеи, что каждый обещает идеальные результаты для клиента только потому, что вы считаете, что используете лучший подход. Это не реально.
Кристиан Хакл
2

Agile - это техника, а не результат. По сравнению с стрижкой газона одна итерация похожа на одну стрижку травы, которую вы косили. Если кто-то скажет «косить весь газон за 15 минут», и вы используете agile, возможно, к концу вы получите 30%. Тогда вы будете повторять еще несколько позже и закончите это.

Динго
источник
2

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

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

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

gnasher729
источник