Оцінка витрат на програмне забезпечення [закрито]


10

На моєму робочому місці (університеті) я бачив більшість студентів, які роблять вартість оцінювання програмного забезпечення своїх підсумкових дипломних робіт за допомогою COCOMO . Я гадаю, що такий спосіб оцінки витрат є дещо старим (дати COCOMO 1981 р.), Отже, моє запитання:

How do you estimate costs in your software?

Я бачив такі речі:

Вартість = (HoursOfWork + EstimatedIddle) * Почасовий рейтинг

Це не те, що я хочу, я шукаю правильно (науково) визначену модель витрат

EDIT Я знайшов кілька пов'язаних питань щодо SO:


30
"Як ви оцінюєте витрати на своє програмне забезпечення?" Погано, як і всі інші.
Рейн Генріхс

1
Це насправді два питання. Я пропоную вам переписати це як одне головне питання, яке не залежить від езотеричного програмного забезпечення. Сумніваюсь, ви отримаєте багато відповідей, якщо вимогою є знання з Кокомо
Еран Гальперін

@Eran, я скористаюсь вашою порадою і перепишу питання тоді ...
Девід Конде

4
Стів Макконнелл вважається лідером думок у цьому просторі багатьма людьми в ІТ. Вам слід поглянути на його книгу. stevemcconnell.com/est.htm
Джефф

5
Я голосую, щоб закрити це питання поза темою, оскільки мова не йде про проблему концептуального програмування в межах, визначених у довідковому центрі .
durron597

Відповіді:


16

У випадку, якщо ви застрягли в режимі водоспаду, єдиний досить точний метод, який я використовував:

  1. Створіть структуру розбивки на роботу
  2. Переконайтеся, що воно досить детальне, щоб ви могли пов’язати масштабність кожного завдання з тим, що ви (або хтось, з ким можна спілкуватися) робили раніше.
  3. Для кожного завдання підберіть номери найкращих, ймовірних та найгірших випадків на основі досвіду. Найкращий випадок - якщо все пройшло ідеально, найгірше - якщо вам довелося повторно зробити це (можливо, вдвічі) і, ймовірно, десь там.
  4. Використовуйте формулу зважування на зразок (1 * найкращий + 4 * ймовірний + 1 * найгірший) / 6, щоб скласти оцінку для кожного завдання, яке враховує діапазон.
  5. Я також бачив варіанти, коли ви можете додати компонент "ризик" до кожного завдання. Три рівні ризику - 0, 1 і 2. Ризик 0 означає, що ви робили це раніше (або щось дуже близько), 1 означає, що ви цього раніше не робили, але це регулярно робиться у вашій галузі, 2 значить, це, мабуть, ніколи раніше не робилося в галузі. Ви берете число ризику і помножуєте його на наближення до "стандартного відхилення" вашої оцінки. Додайте це до вашої зваженої оцінки. Таким чином, ризик 0 не змінює його, але ризик 2 переміщує його досить близько до вашого найгіршого числа.
  6. Складіть всі завдання.
  7. Додати непередбачені випадки (деякі%) для "невідомих невідомих".

Ви отримаєте дуже точне число. Я не кажу, що це точно, але це буде точно.

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

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


Дякую @Scott, я рекомендую щось на зразок вашої ідеї ..
Девід Конде

1
Зробіть свою оцінку таким чином, а потім оцініть незалежно другим способом (і / або другий чоловік робить оцінки). Порівняйте результати. Все, що значно відрізняється або суттєво відрізняється від "відчуття кишки", потребує перегляду. Мій досвід (25 років +) полягає в тому, що "почуття кишечника" часто точніше будь-якої вигадливої ​​формули, ігноруйте це на свій страх і небезпеку.
mattnz

@mattnz - почуття кишечника мають однаковий застереження: воно працює, лише якщо у вас є великий досвід. Кожен клієнт має «відчуття кишки», що це коштуватиме набагато дешевше, ніж це, адже він не розуміє обсягу роботи, що бере участь у кутових справах.
Скотт Вітлок

3
Ще одна порада: "Я не домовляюся про оцінки. <Довга пауза>" - дуже корисна фраза для зустрічей з начальниками / клієнтами. Зрештою, це робить ваш автомеханік чи хірург? Він може домовитись про ціну, він може домовитись про те, яка робота чи як це робиться, але я ніколи не бачив, щоб професіонал в будь-якій галузі, окрім програмного забезпечення, домовлявся про те, як триватиме робота.
mattnz

@mattnz - Минулого тижня я домовлявся з автомеханіком про те, скільки часу знадобиться, щоб відремонтувати двері автомобіля залежно від того, як це робилося.
шістдесят футів

3

Оцінка програмного забезпечення надзвичайно важка. Один із підходів, який я застосував, - максимально тонко порушити вимоги та оцінити кожну деталь окремо. Потім додайте "коефіцієнт видобутку", який може бути або множником (удвічі більше), або фіксованою сумою (х годин для непередбаченої роботи). Якщо у вас немає хороших вимог, оцінка практичної діяльності неможлива.


1
Найуспішніші оцінки, які я бачив (не враховуючи тих, що використовують складні методи), - це ті, що приблизно збільшили вдвічі первісну оцінку.
Бернард Ді

1
Так, подвійно. Один з найуспішніших політично менеджерів, над якими я працював, взяв оцінки розробників, потроїв їх, а потім домовився з користувачами вдвічі. Найчастіше траплялися договірні дати доставки.
DaveE

0

Промисловість багато чому навчилася за 30 років з 81 року. Оцінка такої ніколи не працювала. Маючи Agile манія в основному переписав пейзаж, ми використовуємо "точки історії", що представляють деяку туманну "порівняльну складність". Потім ми набираємо "швидкість", щоб мукі-муки могли робити свої $$ оцінки за допомогою деякої кількості емпіричних даних.


0

Я навчився деяких "суворих" підходів, таких як оцінка точок функціонування та деяких його варіантів, розроблених для сучасних застосувань. Я думаю, що частина цих підходів цінна тим, що вона змушує більш детально проаналізувати відомі вимоги, то я можу інакше її дати.

Отримати хороший набір даних для роботи дуже важко, навіть якщо у вас є хороша модель. Вимірювати продуктивність важко. Люди грають майже в будь-яку метрику.

Я кинув його використовувати, оскільки моя організація занадто нефункціональна, щоб отримати користь від оцінок програмного забезпечення, але я певно враховую групу Cost Xpert та їх інструмент; але це дуже дорого і, мабуть, не вартує вартості та кривої навчання для переважної більшості організацій.


0

Оцінити зусилля та витрати дуже складно, але якщо ви хочете чогось більш точного, тоді:

  • розділіть HoursOfWork на 3 компоненти:

    1. найкраща оцінка,
    2. найімовірніша оцінка,
    3. гірша оцінка.
  • видалити EstimatedIddle.

Зверніть увагу, що все, що займе більше 8 годин, введе величезну помилку.


0

Зазвичай ми ділимо повний обсяг роботи на основні модулі / елементи, які можна розглядати як підпроект. Іншими словами, це ті робочі частини, які клієнт розглядає як окремі частини проекту і які клієнт хоче оцінити окремо.

Як тільки це буде зроблено, ми розділимо кожен модуль на завдання, підзадачі та ще менші підзадачі, щоб кожне було оцінено досить просто, а оцінка займала від однієї до десяти людино-годин. Таким чином ми отримуємо детальну розподіл обсягу робіт для проекту.

Останній крок - розподіл завдань між віхами. Ми робимо це так, щоб після кожного етапу клієнт отримував видимі результати. Це допомагає пройти одну віху і перейти до іншої. Отже, нарешті, ми отримуємо щось на кшталт:

Модуль 1

    <ol>
        <li>
            Primary task 1 - 5 hrs
            <ol>
                <li>Subtask 1.1 – 3 hrs</li>
                <li>Subtask 1.2 – 2 hrs</li>
            </ol>
        </li>
        <li>
            Primary task 2 - 9 hrs
            <ol>
                <li>Subtask 2.1 – 1 hrs</li>
                <li>Subtask 2.2 – 2 hrs</li>
                 <li>Subtask 2.2 – 5 hrs</li>
            </ol>

Спочатку ми це робили лише за допомогою листа excel. Але більше двох років тому ми почали використовувати для цього програмний інструмент. Існує небагато подібних продуктів, які допомагають з цим www.evenflow.com , www.swproposed.com та декілька інших. Я не пам’ятаю всього списку. Ми робили дослідження давно. Сподіваюся, що це може допомогти.

Добре питання - як точно оцінити. Як ми вважаємо, немає 100% правильної оцінки. Єдиний спосіб - розділити повний обсяг роботи на якомога менше завдань. Чим менше завдань у вас є більш детальний огляд та аналіз проекту, який ви виконуєте. Так що все одно збільшується точність.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.