Анализ точечных функций - серьезно переоценка техники? - PullRequest
17 голосов
/ 23 апреля 2010

уточнение щедрости

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

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

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


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

1. Сначала некоторые данные

Этот вопрос основан на учебнике . У него был раздел «Подсчет образцов», где он демонстрировал его шаг за шагом. Вы можете увидеть скриншотов его примера приложения здесь .

В итоге он вычислил ненастроенную FP как 99.

Есть еще одна статья об InformIT с отраслевыми данными по типичным часам / FP. Диапазон составляет от 2 часов / FP до 27,4 часа / FP. Давайте попробуем придерживаться 2 на данный момент (так как читатели SO, вероятно, являются более эффективной толпой: p).

2. Проверка реальности!?

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

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

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

Серьезно? Этот пример приложения займет 5 недель? Неужели мне кажется, что достойному программисту не понадобится больше недели, а я даже не говорю о выходных, чтобы его завершить?

Теперь давайте попробуем оценить стоимость проекта. Сейчас мы будем использовать минимальную заработную плату в Нью-Йорке ( Википедия ), которая составляет 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 FP), поэтому он становится очень неточным в меньших масштабах.
  2. Метрика часов / FP колеблется резко от команды к команде, от проекта к проекту. Для такого маленького проекта, как этот, мы могли бы использовать что-то вроде 0,5 часа / FP или что-то в этом роде. (Теперь этот вид делает оценку бессмысленной, если только моя фирма не занимается одним и тем же типом проектов в течение нескольких лет с одной и той же командой, не очень часто).

Из моего опыта работы с несколькими метриками программного обеспечения Function Point на самом деле не является легкой метрикой. Если час / FP сильно колеблются, то какой смысл, может быть, я мог бы пойти с User Story Points, который можно получить гораздо быстрее и, возможно, почти так же неопределенно.

Что бы ответили эксперты ФП на это?

Ответы [ 11 ]

0 голосов
/ 01 февраля 2013

Подставляя значения из примера, который вы цитировали, в этот удобный онлайн-калькулятор функций (http://developergeeks.com/functionpoint.aspx),, который вычисляет скорректированные FP и учитывает различные другие весовые коэффициенты, я получаю следующие результаты, предполагая, что производительность составляет 2 FP в час, так как система в примере очень проста:

  1. Скорректированные FP: 42,9
  2. человеко-месяцев: 0,54

При условии, что в рабочем месяце 160 часов, это составляет примерно 86,4 часа, или примерно две недели работы для одного разработчика. Не пять недель, как вы пришли к выводу на шаге 2. Учитывая, что разработка систем для платных клиентов требует лишь немного больше внимания и усилий, чем просто выкидывание кода поздно вечером для собственного удовольствия, я не думаю, что это необоснованная оценка все.

Я имею в виду, не поймите меня неправильно, анализ ФП в чужих руках, вероятно, ужасная идея. Но если у вас есть опыт работы с разработчиком, вы можете обратиться к подсчету FP и интуиции, проверяя различные весовые коэффициенты, это неплохой способ получить разумную оценку, которая не основана на чистой фантазии, когда у вас нет подробных спецификаций дизайна. Полностью документированные требования или подробный план проекта на уровне задач. Но вы должны использовать здравый смысл, чтобы заставить его работать на вас.

...