Предоставление оценок для крупномасштабных проектов в Гибкой [закрытой] Среде

Ничего себе, ваш пост имеет целую массу вопросов и вопросов. Большинство аргументов, которые вы получаете от Microsoft, точно на месте. Начнем со всего, что касается List

  • List сильно оптимизировано. Это основное использование должно использоваться как частный член объекта.
  • Microsoft не запечатывала его, потому что иногда вам может понадобиться создать класс с более дружелюбным именем: class MyList : List> { ... }. Теперь это так же просто, как делать var list = new MyList();.
  • CA1002: не выставлять общие списки : В принципе, даже если вы планируете использовать это приложение в качестве единственного разработчика, стоит развиваются с хорошей практикой кодирования, поэтому они становятся привитыми вам и второй природе. Вам по-прежнему разрешено раскрывать список как IList, если вам нужен какой-либо потребитель для индексации списка. Это позволит вам изменить реализацию в классе позже.
  • Microsoft сделала Collection очень общей, потому что это общая концепция ... имя говорит все; это просто коллекция. Существуют более точные версии, такие как SortedCollection, ObservableCollection, ReadOnlyCollection и т. Д., Каждый из которых реализует IList, но не List.
  • Collection позволяет использовать элементы (например, Add , Удалить и т. Д.) Для переопределения, поскольку они являются виртуальными. List нет.
  • Последняя часть вашего вопроса находится на месте. Футбольная команда - это не просто список игроков, поэтому он должен быть классом, который содержит этот список игроков. Подумайте Композиция против наследования . Футбольная команда имеет список игроков (список), это не список игроков.

Если бы я писал этот код, класс, вероятно, будет выглядеть примерно так:

public class FootballTeam
{
    // Football team rosters are generally 53 total players.
    private readonly List _roster = new List(53);

    public IList Roster
    {
        get { return _roster; }
    }

    // Yes. I used LINQ here. This is so I don't have to worry about
    // _roster.Length vs _roster.Count vs anything else.
    public int PlayerCount
    {
        get { return _roster.Count(); }
    }

    // Any additional members you want to expose/wrap.
}

53
задан 7 revs, 6 users 50% 14 August 2017 в 03:21
поделиться

11 ответов

Вот фундаментальный вопрос.

, Когда клиент будет думать, что они сделаны?

, Если они думают, что будут сделаны к июню, тогда Вы помещаете Гибкую команду на месте. Это - 4-6 человек в течение 6 месяцев. Это - бюджет. По существу Вы делаете умножение для них. команда * уровень * 6 месяцев.

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

, Если они думают, что Вы будете их группой разработчиков для обозримого будущего, дайте им цену, которая получит проект до конца года. команда * уровень * 12 месяцев.

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

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

В конечном счете, они будут видеть фундаментальную истину.

Они покупают функции от самого важного до наименее важного . Если они располагают по приоритетам правильно, они могут прекратить тратить деньги в любое время и иметь что-то полезное.

Сделанный относительное понятие. Некоторые проекты "сделаны", потому что больше нет денег. Другие сделаны, потому что больше нет времени. Редко (по крайней мере, в разработке программного обеспечения) проект, когда-либо сделанный, потому что у нас закончились вещи сделать.

40
ответ дан S.Lott 7 November 2019 в 08:43
поделиться

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

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

Редактирование: Прохладный. Превосходный путь! От того, что Вы продали их на Гибком подходе, BTW хороший!, возможности - Вы, будет в состоянии ослепить их при приближении к нему с гибкой точки зрения с точки зрения функций, которые будут реализованы. Возможно, послушайте этот" Введение к Толпе " подкаст. Вы могли бы быть в состоянии продать их на том, что у них, вероятно, не должно будет быть всех дополнительных свойств, что они думают tha, в котором они нуждаются прямо сейчас.

аплодисменты HTH

,

Rob

13
ответ дан Rob Wells 7 November 2019 в 08:43
поделиться

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

Вы не можете сделать всех трех.

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

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

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

10
ответ дан Charlie Martin 7 November 2019 в 08:43
поделиться

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

, Который не отвечает на Ваш вопрос, но это стоит помнить. Если они не прибудут наверх без числа впереди (и они не будут), необходимо дать им число.

у Кого-либо спонсирующего проект программного обеспечения должна быть идея, какого вида из возврата они собираются войти в свои инвестиции, так, чтобы они могли оценить, стоит ли инвестиции сделать. Проект может стоить сделать, если он стоит $1 миллион и занимает 12 месяцев. Это не может стоить делать, если это стоит $2 миллиона и занимает 24 месяца.

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

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

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

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

, Но сначала необходимо заставить их прибывать наверх.

10
ответ дан Robert Rossney 7 November 2019 в 08:43
поделиться

Эти ответы являются действительно большими. У меня нет большого опыта совместно использовать, но я думал об аналогии:

В прошлом году моя жена и я реконструировали нашу кухню. Подрядчик предложил тарифицировать вовремя & материалы вместо того, чтобы дать оценку, потому что мы не знали то, что мы обнаружим относительно инфраструктуры, повреждения подпола, и так далее. Мы согласились, потому что я работаю из дома, и я был доступен непрерывно для ответа на вопросы. У подрядчика и меня было хорошее взаимопонимание поэтому, когда что-то подошло, он не стеснялся стучать в мою офисную дверь, и мы обсудим ее. Решения были приняты быстро, и работа была сделана путем, я хотел ее. Это кажется подобным Гибкому приоритету на частый отзыв покупателей .

, В отличие от этого, кузен моей жены также реконструирует свой дом. Он - доктор ER, и он не доступен на сайте во время реконструирования. Таким образом, он описал быть регулярно удивленным подрядчиками, принимающими важные решения, не консультируясь с ним ("Что? Я не хотел то блокированное окно изображения! Оторвите стену и повторно структурируйте окно путем, это было!"). Это, конечно, крайне дорого и уносит расписание из воды. Определенно не Гибкий.

Так один способ убедить клиент, что время & режим материалов будет работать, может быть должен уверить их, что Вы сделаете частые отчеты о выполнении работ для получения их обратной связи. Я полагаю, что это уже - базовая рекомендация Самых Гибких методологий. Для начала конечно, это требует, чтобы клиент дал их доверие консультанту.

Как отдельный ресурс, я искал и нашел книгу по этому предмету: " Гибкая Оценка и Планирование " Mike Cohn. Считайте кавычки похвалы на той странице от впечатляющей группы Гибких экспертов.

6
ответ дан Bill Karwin 7 November 2019 в 08:43
поделиться

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

Относительно Вашей дилеммы, я думаю, что необходимо подарить ему грубую оценку оценки и функции / объем, который она включает. Во время процесса разработки, если Вы видите что-то важный подъем, который изменит объем / стоимость, Вы говорите клиенту "остановку - здорово, но понимаете, что это изменяет исходный объем, который мы обсудили".

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

3
ответ дан Eran Galperin 7 November 2019 в 08:43
поделиться

Как всегда существует качество, функциональность и время (=resources), которые являются Вашими основными параметрами. Мы не смешиваем с качеством больше, таким образом, существуют только функции и оставленные ресурсы. Справедливо часто можно сойти с рук убеждение, что определенное количество ресурсов будет в минимальной досягаемости определенный набор функций. Таким образом, пока можно найти сумму ресурсов, которая поставляет вероятный набор функций, я полагаю, что это достаточно для довольно многих клиентов. Позитивный аспект - то, что они могут управлять прогрессом в то время как в движении, и всегда существует опция отступления.

2
ответ дан krosenvold 7 November 2019 в 08:43
поделиться

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

, Например, дайте оценку от 6mos до 2 лет (если Вы уверены, что потребуется меньше времени, чем 2 года. Поскольку Вы разламываете его на функции, затем планируете те функции, Вы придумываете лучше и лучшие оценки так, чтобы после 6mos можно было надежно сказать (отсутствующий любые другие изменения), мы будем сделаны еще через 2-3 месяца (общее количество 8-9 месяцев). В конечном счете Вы переходите к сути дела, где можно сказать, мы будем сделаны после следующего повторения (2 недели к 1 месяцу).

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

2
ответ дан tvanfosson 7 November 2019 в 08:43
поделиться

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

Пример: Общая оценка 10 000$, но начиная с требований неопределенна, и проект мог изменить курс легко существует +/-30%-я опция корректировки цены.

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

1
ответ дан Berek Bryan 7 November 2019 в 08:43
поделиться

Это - действительно сложная проблема. Посмотрите то, что Robert Glass должен сказать относительно предмета в своей книге" Факты и Ошибки Разработки программного обеспечения ". ( Примечание, для которого Amazon имеет в наличии книги, новые меньше, чем, они доступны подержанный! [с 05.01.2009 12:20 - 8:00]; также в книгах Google. )

1
ответ дан Jonathan Leffler 7 November 2019 в 08:43
поделиться

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

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

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

1
ответ дан DJClayworth 7 November 2019 в 08:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: