В моей нынешней работе такое ощущение, что у нас много изменений требований. Мы магазин "Agile", так что я понял, что мы должны что-то менять, а что нет, но иногда изменения большие и ничего тривиального.
У меня вопрос, как вы эффективно определяете стоимость изменений? Из-за своей гибкости, если изменение достаточно большое, что-то будет отброшено из текущего спринта, но обычно оно просто добавляется в следующий раз. Так как наша модель SaaS, конечный клиент фактически сам бизнес, и они знают , что они получат отрезанную функцию п недель спустя.
Я предполагаю, что я пытаюсь понять, что удаление функции на самом деле не является чем-то, что можно использовать для связи, поскольку оно было отложено только на n недель. Какие еще способы вы должны заставить бизнес понять, что такое изменение стоит?
Ответы:
@Joe "Мы магазин" Agile ", так что я понял, что мы должны что-то менять, а что нет, но иногда изменения большие и ничего тривиального".
Если ваш процесс не позволяет вам контролировать скорость изменения требований, ваш процесс не является гибким, но случайным. Agile не означает "брать все, что приходит мне в голову".
Чтобы контролировать изменение / ползание требований, вы можете принять - в своем процессе - понятие, что требование не меняется (понятие, что оно лежит в основе Scrum.) Рассматривать изменение требования как замену старого требования новым. У вас должен быть резерв требований, и пользователь должен выбрать, какие из них он / она хочет реализовать.
Вы хотели X и Y через две недели, но вдруг вы хотите Z. Ну, тогда я могу доставить вас всех трех за 4 недели. Или я могу дать пару (X и Z) или (X и Y) или (Y и Z) через две недели, а оставшуюся - позже. Выбирать.
Это то, как вы ведете переговоры с клиентами. Вот как вы сообщаете стоимость изменения требований. Если ваша группа не обладает такой властью, вы не находитесь в проворном магазине, и вы ничего не можете с этим поделать. Это отстой, но это правда.
В случае, когда вы можете договориться, вы должны отслеживать (с точностью) время, необходимое для реализации требований и изменений требований. То есть вы должны собирать эти данные из прошлых и настоящих проектов.
Вы собираете исходную оценку времени и фактическое время завершения (в дополнение к таким ресурсам, как количество разработчиков) для каждого запроса (или модуля, на который влияет N запросов). Еще лучше оценить размер запроса / изменения запроса (с точки зрения строк кода или функциональных точек в прошлых проектах и запросах.)
Скажем, у вас есть метрика, с которой вы можете поговорить с пользователем. Вы знаете, что новый запрос займет, скажем, 1K строк кода или 10 веб-страниц со средним числом 5 полей ввода каждое (50 функциональных точек).
Затем, взглянув на исторические данные, относящиеся к вашим прошлым проектам (некоторые по строкам кода, некоторые по веб-страницам, некоторые по фактическим функциональным точкам), и вы сможете оценить, как каждый из них стоит в терминах абсолютного времени завершения. Для тех, у кого достаточно данных, вы также можете определить те требования, которые отслеживают фактическое количество разработчиков.
Затем вы используете это, и вы говорите своему клиенту, что на основе исторических данных; вы утверждаете, что неудачи проекта имеют тенденцию следовать экспоненциальному распределению; и тогда вы вооружитесь следующим аргументом для своего клиента:
Вероятность сбоя как функция количества временных ресурсов обычно увеличивается на 95%, 25% и 5% (напоминает экспоненциальный дистрибутив.) Вы передаете сообщение, что определенная базовая сумма дает несколько приличный шанс на успех (но с реальными рисками ). 1,5 из этого могут дать почти определенный шанс на успех с минимальным риском, но гораздо меньше, чем это (0,5 оригинала гарантирует почти определенный провал).
Вы позволяете им переварить это. Если они все еще идут на рискованное предложение ( сделано вчера! ), По крайней мере, у вас есть в письменной форме, что вы им так сказали. Если у вашей группы есть надежда не только быть гибкой, но и инженерной, тогда клиент может серьезно рассмотреть ваши цифры и соответственно запланировать этот и будущие запросы.
Ваша работа как инженера заключается в том, чтобы объяснить инженеру, поддающимся проверке и ясным выражением, что запрос изменений не является бесплатным питанием.
источник
Из того, что вы описали, у вас нет проблем. Они просят об изменении и либо хотят подождать, пока вы не скажете, что это можно сделать, либо готовы отложить другую функцию. Похоже, баланс между: время, ресурсы и требования.
источник
Вы можете попробовать установить минимальный возраст нового добавления / изменения (не относится к исправлению ошибок). Например, новые изменения не могут быть обработаны до тех пор, пока ему не исполнится 3 недели.
Иметь минимальный срок выполнения задания - это хорошо, потому что в начале каждая задача выглядит очень важной, но если вы подождете некоторое время, ее значимость будет значительно снижаться. В зависимости от вашего временного интервала это даст вам, по крайней мере, такое количество времени стабильности в задачах, над которыми вы работаете.
Чтобы отслеживать возраст, можно разрешить добавление задач в некоторый список, но они не будут рассматриваться как задачи, над которыми нужно работать до истечения этого периода.
источник
Это очень распространенная проблема, независимо от того, насколько быстро проект развивается в техническом плане, клиент воспринимает его как гораздо более медленный и не стесняется менять требования, так как ему нравится думать, что разработчики не должны делать много в любом случае.
Это ошибочное восприятие происходит от трех основных задач разработки, которые занимают время и никогда не будут должным образом учтены клиентами:
Ничто из вышеперечисленного никогда не будет понято и должным образом учтено конечными клиентами.
В основном все, что не имеет «представлений» (элементов GUI), не было сделано.
Давайте назовем это теоремой projenix, ха-ха, не шучу: D
источник