Метод функциональных точек — серьезно переоценивающая техника?

Разъяснение щедрости

Я знаю, что это - субъективный вопрос. Идеальный ответ я смотрю, является тем, который объясняет, почему заключенный в кавычки сценарий здесь был бы так удивителен.

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

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


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

1. Во-первых, некоторые данные

Этот вопрос основан на учебном руководстве. У него был раздел "Sample Count", где он продемонстрировал это шаг за шагом. Вы видите некоторые снимки экрана его примера приложения здесь.

В конце он вычислил неприспособленный FP, чтобы быть 99.

Существует другая статья о InformIT с промышленными данными по типичному часу/FP. Это колеблется от 2 часов/FP до 27,4 часов/FP. Давайте попытаемся придерживаться с 2 в настоящий момент (так как, ТАКИМ ОБРАЗОМ, читатели являются, вероятно, более эффективной толпой :p).

2. Проверка в реальных условиях!?

Теперь просто проверьте снимки экрана снова.

Сделайте немного математики здесь

99 * 2 = 198 hours
198 hours / 40 hours per week = 5 weeks

Серьезно? Тот пример приложения собирается занять 5 недель для реализации? Это - просто мое чувство, что никакому достойному программисту не потребовалась бы дольше, чем одной недели (я "m, даже не говоря выходные), чтобы завершить его?

Теперь давайте попытаемся оценить стоимость проекта. Мы будем использовать минимальную заработную плату Нью-Йорка в данный момент (Википедия), которая составляет 7,25$

198 * 7.25 = $1435.5

Из того, что я видел из снимков экрана, это приложение является маленьким приложением улучшения Excel. Я, возможно, купил MS Office Pro для 200 маркеров, который дает мне большую совместимость (.xls файлы) и гибкость (электронные таблицы).

(Для записи тот же самый веб-сайт имеет другую статью, обсуждая производительность. Кажется, что они обычно используют 4,2 часа/FP, который дает нам еще более шокирующую статистику:

99 * 4.2 = 415 hours = 10 weeks = almost 3 whopping months!
415 hours * $7.25 = $3000 zomg

(Это даже предполагает, что все наши бедные кодеры получают минимальную заработную плату!)

3. Я пропускаю что-то здесь?

Прямо сейчас я мог придумать несколько возможных объяснений:

  1. FPA действительно только подходит для больших проектов (1000 + кадр/с), таким образом, это становится чрезвычайно неточным в меньшем масштабе.
  2. Метрика часов/FP колеблется резко от команды команде, проекта к проекту. Для маленького проекта как это мы, возможно, использовали что-то как 0,5 часа/FP или что-то. (Теперь это отчасти делает целую вещь оценки бессмысленной, если моя фирма не делает тот же тип проектов в течение нескольких лет с той же командой, не действительно распространенной.)

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

Каковы были бы ответы экспертов FP на это?

17
задан kizzx2 10 June 2010 в 14:32
поделиться

8 ответов

Около десяти лет назад один мой собутыльник дал мне действительно великую мудрость. На любой консультации по проекту задай три вопроса: 1. Какова проблема, которую мы пытаемся решить? 2. Каковы результаты? 3. Как мы узнаем, когда закончим? Он добавил, что никогда не следует браться за проект, для которого ни на один из этих вопросов не был дан ответ до начала проекта.

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

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

12
ответ дан 30 November 2019 в 12:19
поделиться

В моей предыдущей компании мы рассчитывали бы так - особенно если кто-то хочет, чтобы заплатил за это;)

{{ 1}}
1
ответ дан 30 November 2019 в 12:19
поделиться

Я просто чувствую, что этого не произойдет {{1 }} у любого приличного программиста требуется больше времени, чем одна неделя (я даже не говорю о выходных) , чтобы завершить его?

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

Судя по тому, что я видел из снимков экрана, это приложение - это небольшое приложение для улучшения Excel. Я мог бы купить MS Office Pro за 200 долларов, что дает мне большую совместимость (файлы .xls) и { {1}} гибкость (электронные таблицы).

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

9
ответ дан 30 November 2019 в 12:19
поделиться

Реальность такова, что большинство методов оценки программного обеспечения на самом деле недооценивают, хотя на первый взгляд это кажется нелогичным. Когда-то я работал в компании, где 300 строк кода на человеко-месяц считалось ВЫСОКОЙ оценкой, а в большинстве месяцев мы выходили на 200-250. Но давайте остановимся на 200. Это 10 строк кода в рабочий день. Кто не может написать 10 строк кода за рабочий день? Да ладно! Я могу написать от 50 до 100 и более строк кода в хороший день! И все же компании, использующие такие цифры, постоянно завершают свои проекты с отставанием от графика и превышением бюджета. Почему так происходит? Ну, как говорит Майкл Боргвардт, одной из основных причин является "ползучесть". Но давайте на минуту отвлечемся от этого и предположим, что заказчик и клиент все сделали правильно с первого раза. Почему компания оценивает только 10 строк кода в день?

  • Анализ требований
  • Проектирование программного обеспечения на основе требований
  • Встречи для согласования интерфейсов и архитектуры с членами команды.
  • Накладные расходы (статусные встречи с руководством, больничные, отпуска, ...)
  • Написание модульных тестов
  • Написание плана тестирования для всего приложения
  • Тестирование на уровне приложения

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

.
4
ответ дан 30 November 2019 в 12:19
поделиться

Не эксперт по FP. Однако сейчас мы смотрим на FP. В частности, мы выполняем анализ FP для старых проектов, у нас есть показатели усилий / затрат и т. Д. Затем мы можем оценить его полезность для нас в проектах оценки / определения размера.

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

Еще одна мысль - затраты / усилия на функциональную точку (то есть функциональное требование) будут зависеть от нефункциональных требований, которые требуются для системы. Как только вы начнете учитывать безопасность, доступность, производительность, ведение журнала (и оповещения), ремонтопригодность, переносимость, соответствие нормативным требованиям и т. Д., Затраты / усилия на FP значительно возрастут. Теперь это может не рассматриваться для цитируемого однопользовательского примера приложения. Но если это приложение важно для компании или потенциально их клиентов или широкой части населения, необходимость учитывать эти нефункциональные требования, безусловно, возрастет.

2
ответ дан 30 November 2019 в 12:19
поделиться

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

В некотором смысле, мы должны сказать, что FP хорош для средних и больших проектов, масштабируемых более 350-400 FP.

1
ответ дан 30 November 2019 в 12:19
поделиться

Лично я обнаружил, что FPA вводит в заблуждение ... изначально.

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

Я узнал, что VAF - хороший указатель для использования при работе с FPA. Хотя это дает вам 35% -ный диапазон вариации вашего подсчета FP, кто мешает аналитику / руководителю проекта превратить это в 50-процентный вариант.

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

Я бы сказал, что если вы используете лучший сценарий -35% для нескорректированного подсчета, вы достигнете скорректированного количества FP ~ 64. Дает вам примерно 3 с половиной недели оценки. Исходя из опыта, я бы сказал, что приложение такого типа МОЖЕТ быть выполнено намного раньше, но любое тщательное тестирование, отладка, документация и другие документы могут растянуть его еще больше, и FP это учитывает. Вполне возможно, что ваша команда делает 1 FP в час. По нормальным стандартам на кодирование и тестирование приходится 25% от общего числа FP, поэтому в этом случае, даже если взять вашу цифру в 99 FP, часть кодирования и тестирования упадет до 25 FP, что более понятно с учетом ситуации.

На практике я также видел, что некоторые компании разработали свои собственные таблицы сложности, поэтому, если 3 RET и 10 DET означают среднюю сложность для одной компании, другая оценила бы ее как низкую сложность. Это в значительной степени повлияет на окончательный подсчет FP.

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

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

Надеюсь, мои 2 цента вам пригодятся.

2
ответ дан 30 November 2019 в 12:19
поделиться

Повременные платежи косвенно приводят к снижению производительности. Я помню проекты с повременной оплатой, в которых я много исследовал каждый аспект проекта, в то время как, если бы у него был метод оплаты, основанный на проекте, возможно, я этого не делал. Это подсознание, а не этика. Лучшая практика - ссылаться на определение «Проект» (в рамках ограниченного времени и бюджета) и принимать решение на основе ограничений. Дело не в самой работе, т. Е. В дождливый день вы платите за зонт намного больше, чем при обычной покупке. Не беспокойтесь о том, что было сделано и сколько это стоит. Сосредоточьтесь на ценности работы для клиента и его выбора.

1
ответ дан 30 November 2019 в 12:19
поделиться
Другие вопросы по тегам:

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