Предоставление оценок для крупномасштабных проектов в гибкой среде [закрыто]
моя фирма только что получила свой первый крупномасштабный запрос на разработку проекта, и я хотел бы использовать гибкий процесс. Клиент имеет видение для приложения, но открыто признает, что имеет очень мало требований и признает, что нам придется взимать плату за час. Из-за этого я почти продал его на гибком подходе.
проблема в том, что он хочет, чтобы цифра бюджета вокруг. Я прочитал ряд статей, которые в значительной степени выступают против отказа от оценки потому что клиент будет бюджетировать на это число и даже при изменении требований, число в их голове и в книгах не делает.
Я читал, что есть несколько способов учитывать цены в контракте, но почти все из них (за исключением одного) включают в себя передний номер. Это просто, кажется, нарушает весь набор принципов гибкого развития.
Итак, мой вопрос в том, если вы Проворный магазин, как вам удается обойти этот улов-22 Agile развитие?
12 ответов:
для этой ситуации мы предоставили оценку для первого куска работы, а затем позволили клиенту приобрести больше спринтов, необходимых для завершения работы до желаемого уровня.
по мере того, как вы получаете больше разработанной системы и включаете обратную связь от клиента в результаты sprint, вы оба получите лучшее представление о количестве работы, а следовательно, и о затратах.
Edit: прохладный. Путь отличный! От того, что вы продали их на гибком подходе, кстати хороший! скорее всего, вы сможете увидеть их при приближении к нему с гибкой точки зрения с точки зрения функций, которые будут реализованы. Может быть, есть послушать это"введение в Scrum" подкаст. Возможно, вы сможете продать их на том, что им, вероятно, не нужно будет иметь все колокола и свистки, которые они думают, что им нужно прямо сейчас.
HTH
спасибо,
Роб
смотрите, здесь есть основной факт. Вам будет предложено оценить стоимость, заключить контракт на определенную дату поставки и выполнить полный набор поставляемых функций.
вы не можете сделать все три.
Не "не стоит" или "было бы неразумно"; вы (для всех практических целей) не могу. Я имею в виду, что вероятность успешного выполнения всех этих трех крайне мала.
лучший ответ состоит в том, чтобы совершить затраты и график, и к итерационному процессу с быстрыми итерациями и регулярной обратной связью, а затем написать соглашение так, что это сделал unde фиксированная стоимость и график-это то, что будет доставлено. То есть вы продолжаете предоставлять новые функции (и модификации) до тех пор, пока не закончится время и деньги.
правда в том, что даже если вы do подпишитесь на все три, лучшее, что вы когда-либо сможете сделать, это два из трех в любом случае. С таким же успехом можно было бы открыто говорить об этом.
вот как выразился недавно один старый правительственный подрядчик, которого я знаю: "как говорят проститутки, сначала вы должны поднять их наверх."
Это не ответ на ваш вопрос, но стоит помнить. Если они не поднимутся наверх без номера спереди (и они не будут), вы должны дать им номер.
любой спонсор программного проекта должен иметь представление о том, какой доход они собираются получить от своих инвестиций, чтобы они могли оценить независимо от того, стоит ли делать инвестиции. Проект может быть стоит делать, если он стоит $1m и занимает 12 месяцев. Это может быть не стоит делать, если это стоит $ 2m и занимает 24 месяца.
вопрос: Можете ли вы сделать этот проект в рамках сроков и бюджета, что позволяет клиенту осуществить соответствующую отдачу от своих инвестиций? Если ваш ответ на этот вопрос-что угодно, кроме" да", тогда они не должны нанимать вас для выполнения проекта. В противном случае, они просто тратить деньги и бросать кости.
Если ваш текущий ответ на этот вопрос "мы еще не знаем", то они не должны нанимать вас для выполнения проекта. Но это не значит, что они не должны нанять вас, чтобы узнать, стоит ли делать проект. Хорошим модным словом консалтинговой фирмы для этого является " предварительное исследование объема."
гибкая разработка - это управление кривой в трех измерениях: потраченные деньги, календарное время и набор функций. Это данность, что если бюджет и график фиксированы, набор функций должен быть переменным. Вы не можете знать, что the конечный набор функций будет, учитывая эти ограничения. Но ты можете знаете, если a набор функций, который вы сможете создать в рамках этих ограничений, попадает в диапазон, который ваш клиент найдет приемлемым.
вы можете это знать, и вы можете это узнать. Выяснение этого-это то, что ваша фирма может сделать, а ваш клиент не может. сервис, который вы можете им предоставить и за который они должны вам платить. Избегайте соблазна сделать это бесплатно и назвать его себестоимости. Определение объема проекта-это такая же часть профессиональных услуг, как и разработка программного обеспечения. Вы делаете это не для того, чтобы закрыть сделку; вы делаете это, чтобы помочь вашему клиенту принять бизнес-решение, которое у него еще недостаточно информации.
но сначала ты должен заставить их подняться наверх.
эти ответы действительно здорово. У меня нет большого опыта, чтобы поделиться, но я подумал об аналогии:
в прошлом году мы с женой отремонтировали нашу кухню. Подрядчик предложил выставлять счета вовремя и материалы вместо того, чтобы давать оценку, потому что мы не знали, что мы обнаружим в отношении сантехники, повреждения пола и т. д. Мы согласились, потому что я работаю из дома и я был доступен постоянно отвечать на вопросы. У подрядчика и меня было хорошее взаимопонимание, так что когда что-то возникало, он мог свободно постучать в дверь моего кабинета, и мы обсуждали это. Решения принимались быстро, и работа была сделана так, как я хотел. Это похоже на Agile приоритет на частые отзывы клиентов.
напротив, двоюродный брат моей жены также реконструирует свой дом. Он врач скорой помощи, и он не доступно на месте во время реконструкции. Поэтому он описал, что регулярно удивляется подрядчикам, принимающим важные решения не посоветовавшись с ним ("что? Я не хотел, чтобы это окно было закрыто! Вырви стену и переделай окно так, как оно было!"). Это, конечно, болезненно дорого и выдувает график из воды. Определенно не проворный.
таким образом, один из способов убедить клиента в том, что режим time & materials будет работать, может заключаться в том, чтобы убедить их, что вы будете делать частые отчеты о ходе работы, чтобы получить их обратную связь. Я считаю, что это уже основная рекомендация большинства гибких методологий. К начать, конечно, это требует от клиента отдать свое доверие консультанту.
как отдельный ресурс, я искал и нашел книгу на эту тему: "гибкая оценка и планирование", Майк Кон. Прочитайте хвалебные цитаты на этой странице, от впечатляющего набора проворных экспертов.
прежде всего, я хочу сказать, что я думаю, что это здорово, что вы продали его на гибком подходе и в час ценообразования. Это очень трудно сделать.
Что касается вашей дилеммы, я думаю, что вы должны представить ему приблизительную оценку цен и функций / объема, которые она включает. В процессе разработки, если вы видите что - то важное, что изменит объем / стоимость, вы говорите клиенту: "стоп-это здорово, но поймите, что это меняет исходный объем мы обсуждаемый."
в этот момент клиент имеет привилегию согласиться, зная, что он заплатит больше, чем он первоначально думал, или остановить новое развитие на данный момент. Многие гибкие проекты строятся в несколько мини-этапов-для которых можно дать довольно точную оценку цены / времени. Перед началом любого нового мини-этапа важно, чтобы вы и клиент видели глаза на то, что происходит дальше, и сколько времени / затрат будет потрачено на это.
Как всегда есть качество, функциональность и время (=ресурсы), которые являются вашим основным параметрам. Мы больше не возимся с качеством, поэтому остались только функции и ресурсы. Довольно часто вы можете уйти с убеждением, что определенное количество ресурсов будет как минимум достигать определенного набора функций. Так что пока вы можете найти количество ресурсов, которое обеспечивает правдоподобный набор функций, я считаю, что этого достаточно для довольно большого количества клиентов. Плюс в том, что они могут контролировать прогресс на ходу, и всегда есть возможность отказаться.
способ, которым я это сделал, - использовать мою текущую скорость и оценить диапазон, основанный на грубых оценках сложности (количество историй). Вы бы обновили это, когда начнете планировать приложение, чтобы оценка диапазона постепенно становилась все лучше и лучше.
например, дают оценку от 6mos до 2 лет (если вы уверены, что это займет меньше времени чем 2 года. Когда вы разбиваете его на функции, а затем планируете эти функции, вы придумываете лучше и лучшие оценки, чтобы после 6mos вы могли достоверно сказать (без каких-либо других изменений), мы будем делать еще через 2-3 месяца (всего 8-9 месяцев). В конце концов, Вы дойдете до точки, где вы можете сказать, что мы будем сделаны после следующей итерации (от 2 недель до 1 месяца).
вам нужно связать это с тем, чтобы клиент знал, что добавление функций увеличит время до завершения, а затем пусть они решают, как действовать-либо отбросить функцию, либо увеличить время. Для любого данного проекта, область и время-это действительно единственные переменные, которые вы можете эффективно изменить. Качество и ресурсы в значительной степени фиксированы. На самом деле, вы можете добавить ресурсы, но обычно вы видите увеличение времени и снижение качества изначально, поэтому это работает только в том случае, если ваш временной горизонт длинный.
один из подходов, который вы могли бы принять, - это дать клиенту общую оценку, которую вы считаете относительно близкой. Также дайте процент. Процентное соотношение будет представлять собой увеличение или уменьшение ассигнований в бюджете в связи с изменением потребностей.
пример: Общая оценка $ 10,000, но поскольку требования расплывчаты, и проект может легко изменить курс, есть вариант корректировки цены +/- 30%.
таким образом, клиент может иметь общее представление о том, что бюджет и Вы имеете некоторую гибкость в поручать к проекту.
Это действительно сложный вопрос. Посмотрим, что скажет по этому поводу Роберт Гласс в своей книге"факты и заблуждения программной инженерии". (обратите внимание, что Amazon имеет книги доступны новые для меньше, чем они доступны из вторых рук! [по состоянию на 2009-01-05 12: 20 -08: 00]; также в Google books.)
Если вы успешно продали клиенту на гибком подходе, и выставление счетов по часам,Не давайте им оценку того, сколько это будет стоить, чтобы завершить проект!. Даже если они говорят, что хотят этого только для целей бюджета,Не делайте этого!.
причина в том, что любая оценка стоимости должна рассматриваться как определенное обязательство; независимо от того, сколько раз вы говорите это не так, и сколько раз клиент говорит, что они понимают, что это будет рассматриваться как обязательство. Даже если клиент поймет, их босс не будет, и хотя они не смогут юридически заставить вас поставить за ту цену, которую вы сказали, вы придете к известному как компания, которая не выполняет то, что она обещала. Предоставление оценки отбрасывает все преимущества гибкости в первую очередь.
вот что я предлагаю сказать им, что вы потратите не более такой-то суммы до конца финансового года (или любой другой расчетный период, который интересует вашего клиента). Этого должно быть достаточно для их финансового планирования, ни в коем случае не говоря о том, что проект будет завершен к тому времени.
Это был мой ответ до закрытый вопрос связанные с сюжетными точками. Я использую это все время для макрооценки.
когда я переключился на точки, я решил это только в том случае, если я мог бы удовлетворить два следующих пункта; 1) Найти и аргумент, который оправдывает переключатель и который убедит команду 2) найти простой способ его использования.
убедить
это заняло у меня много чтения на эту тему но, наконец, нашел аргумент, который убедил меня и мою команду: почти невозможно найти двух программистов, которые согласятся на время выполнения задачи, но те же самые два программиста почти всегда согласятся с тем, какая задача является самой большой, когда показаны две разные задачи.
Это единственный навык, который вам нужно "оценивать" свое отставание. Здесь я использую слово "оценка", но на этом раннем этапе это больше похоже на заказ отставания от жесткого к легкому.
положить Очки в отставании
этот шаг выполняется с участием всей команды scrum.
начните отбрасывать истории одну за другой в новой электронной таблице, сохраняя следующий порядок: самая большая история вверху и самая маленькая внизу. Делайте это, пока все истории не будут в списке.
теперь пришло время поставить точки над этими историями. Лично я использую шкалу планирования покера (1/2,1,2,3,5,8,13,20,40,100) так что это то, что я буду использовать для этот пример. В нижней части этого списка вы, вероятно, микро-задач (то, что занимает 4 часа или меньше). Дать каждому микро-задачи, значение 1/2. Затем продолжайте список, задавая значение 1 (далее по шкале) для историй, пока не станет ясно, что история намного больше (2 вместо 1, поэтому в два раза больше). Теперь, используя значение '2', продолжайте список, пока не найдете историю, которая явно должна иметь 3 вместо 2. Продолжайте этот процесс до самого верха список.
Примечание: старайтесь держать подавляющее большинство точек между 1 и 13. В первый раз у вас может быть куча больших историй (20, 40 и 100), и вам придется тормозить их на куски меньше или равны 13.
то есть это для точек и исходного отставания. Если у вас когда-нибудь будет новая история, сравните ее с этим списком, чтобы увидеть, где она подходит (больше/меньше процесс) и дать ему значение своих соседей.
скорость и оценка (макрос планирование)
чтобы оценить, сколько времени вам потребуется, чтобы пройти через это отставание, выполните первое планирование спринта. Сделайте общее количество очков, прикрепленных к историям, которые выбрали команды, и вуаля! это ваша первая мера скорости. Затем вы можете разделить общее количество очков в отставании на эту скорость, чтобы узнать, сколько спринтов потребуется.
эта скорость изменится и установится в первых 2-3 спринтах, поэтому всегда хорошо следить за этим значение