| April 26, 2012 | Posted by admin under Практики, Статті | Автор : Євгеній Неділько
У своїй роботі мені постійно доводиться робити оцінки для проектів, завдань і робіт, які ще потрібно виконати, і тому точно виміряти їх неможливо. Нещодавно один із великих клієнтів Аксенчер звернувся до нашої компанії з проханням допомогти у розробці більш систематизованої методики підготовки таких оцінок. Проект так і не стався, але матеріали, які я зібрав, виявилися надзвичайно корисними для мене. Можливо, вони зацікавлять вас також.
Перше, що я зробив, коли підключився до цього проекту, – я намагаюся сформулювати суть проблеми, тобто завдання, яке я хочу вирішити. Майже у всіх проектах, до яких я був залучений, план будувався на точних оцінках окремих завдань, на конкретних числах, зазначених як тривалість, трудомісткість або вартість завдання. Лише деякі проекти використовували методику PERT, визначаючи крім найочікуваніших витрат також оптимістичні та песимістичні оцінки, але навіть у цьому випадку загальна оцінка проекту являла собою одне конкретне число. Я ж розумів, що в реальності фактичні витрати завжди будуть більшими або меншими за початкову оцінку, а ймовірність точного збігу прагне до нуля. Я був упевнений, що будь-який виділений бюджет буде або перевитрачено, або недотрачено. Нашому потенційному клієнту і мені особисто хотілося отримати можливість визначати можливість вписатися до того чи іншого бюджету, тобто. з одного боку уникнути ситуації, коли гроші закінчуються посеред проекту, а з іншого боку уникнути ситуації, коли залишаються зайві гроші, які просто «освоюються», не приносячи вже додаткових прибутків бізнесу.
І тут мені пощастило: наша компанія, будучи одним із найбільших у світі постачальників послуг у галузі аутсорсингу, має величезні масиви даних за виконаними проектами, і я зміг досить швидко отримати велику вибірку даних від одного з українських проектів. Я отримав значення оцінок та фактичних витрат за кількома тисячами заявок з типовими трудовитратами від 1 до 50 год. Після нескладних маніпуляцій в Excel я отримав розподіл (рис. 1). На гістограмі по вертикалі відкладено кількість заявок, а по горизонталі – розмір фактичних витрат щодо прогнозованих. Наприклад, якщо фактичні витрати збігаються з оцінкою, то на гістограмі така заявка збільшить на одиницю стовпчик у точці 1. Якщо фактичні витрати склали півдня при оцінці у два дні, заявка потрапить у точку 0,25.
Мал.1. Розподіл фактичних витрат у одному проекті
Ось що то я побачив аналізуючи графік, що вийшов:
По-перше, виявилося, що наші співробітники роблять дуже правдоподібні оцінки, тобто. вказують ті витрати, ймовірність яких максимальна (на графіці ця точка відзначена зеленим кольором). Якщо наш фахівець каже, що якесь завдання займе 12 годин, то ймовірність того, що завдання займе саме 12 годин трохи вище за ймовірність того, що реальні витрати становитимуть 11 або 13 годин, і набагато вищі за те, що витрати дорівнюватимуть 6 або 24 годинам. .
По-друге, коли я підрахував середні витрати по всіх заявках, то виявив, що середнє арифметичне виявилося помітно більшим, ніж початкові оцінки. У перший рік роботи проекту середні витрати перевищували вихідну оцінку на 50%, згодом різниця скоротилася до 30%, але нікуди не зникла. Цьому дивному факту на перший погляд знайшлося просте пояснення. Помилитись убікзменшення витрат ми можемо не більше, ніж на початкову оцінку (адже розмір витрат не може бути негативним), а в бік перевищення оцінки у нас немає майже жодних обмежень і фактичні витрати можуть перевищити оцінку в два, в три, в чотири або навіть в десять разів. Приклади, на жаль, є. У результаті помилки у бік збільшення витрат переважують помилки у бік зменшення, й у середньому реальні витрати виявляються більше правдоподібних і ймовірних оцінок. Говорячи мовою статистики, виходить, що розподіл фактичних витрат несиметричний, а математичне очікування більше за моду розподілу.
Наступним важливим спостереженням є поведінка людей, які гарантують, що вони впишуться у обіцяні витрати. Для того щоб бути впевненими в цьому вони підписуються під оцінкою витрат, ризик перевищити яку не більше 5-10%. А це означає, що ймовірність того, що реальні витрати становитимуть менше за обіцяне – 90-95%, причому судячи з отриманого розподілу – перевищать рази на 2-3. Виходить, що гарантоване дотримання бюджету та строків виливається у 2-3 кратне збільшення бюджету та строків, тобто. Суворий контроль термінів та бюджетів без огляду на їх адекватність та реалістичність гарантує падіння загальної ефективності.
Щоб поборотися з цим ефектом, деякі замовники та керівники вимагають вказівки як цільові найбільш ймовірні оцінки витрат і погоджуються прощати можливе перевищення оцінок у рамках резервів на непередбачені обставини. На жаль, розмір таких резервів рідко коли перевищує 20%, а як я написав вище, витрати на окремі завдання в середньому перевищують правдоподібні оцінки на 30-50%. У рамках великого проекту помилки щодо окремих завдань можуть компенсувати одна одну, але з часомпомилки накопичуються та призводять до гарантованого перевищення цільового бюджету.
Щоб подолати цей згубний ефект, можна скористатися одним із двох методів: можна спробувати розрахувати поправочний коефіцієнт до суми правдоподібних оцінок, або скористатися методикою PERT, розробленою ще в 50-ті роки минулого століття на основі ідей Генрі Форда і Фредеріка Тейлора. Перший спосіб — простіше, проте другий дозволяє не лише отримати реалістичну оцінку, а й зрозуміти, який розподіл можливих значень фактичних витрат.
Щоб розрахувати реалістичну оцінку з урахуванням найбільш правдоподібної, використовуючи поправочний коефіцієнт, цей коефіцієнт спочатку потрібно розрахувати. Для цього потрібно взяти не менше 20-40 виконаних завдань та розрахувати середнє відношення фактичних витрат до вихідної оцінки. Якщо розміри оцінок різняться більш ніж удвічі-втричі, то має сенс визначити два або навіть більше коефіцієнтів для завдань різних розмірів. У використаних мною даних, поправочний коефіцієнт для завдань з оцінкою менше 2 год-годин виявився втричі більше коефіцієнта для задач з оцінкою від 12 до 24 год.
Після того, як отримано набір поправочних коефіцієнтів, необхідно помножити кожну правдоподібну оцінку на відповідний поправочний коефіцієнт, а отримані твори підсумувати. У результаті вийде реалістична оцінка витрат за проектом, на яку ризик постачальника перевищити бюджет дорівнює ризику замовника заплатити зайве.
Недоліком цього методу є сильна залежність результату від акуратності розрахунку поправного коефіцієнта, тому більшість методологій Agile, які використовують даний метод, вимагають уточнення поправочного коефіцієнта після кожної ітерації або релізу. Крім того, ці методології стимулюютьрозбивати роботу на завдання приблизно однакового розміру, що дозволяє обходитися лише одним коефіцієнтом.
Методика PERT на відміну попереднього методу не використовує жодних зумовлених коефіцієнтів і використовує кілька оцінок з кожної задачі розрахунку реалістичної оцінки всього проекту.
Для того, щоб розрахувати реалістичну оцінку проекту за методикою PERT, необхідно вказати для кожного завдання три оцінки: отриману звичайним способом найбільш правдоподібну оцінку, оптимістичну – оцінивши мінімальні витрати у разі, якщо ми переоцінюємо складність завдання, та песимістичну – оцінивши максимальні витрати, які можуть знадобитися для завершення завдання. Після чого реалістична оцінка за окремим завданням визначається за поданою нижче формулою. Витрати з усього проекту загалом оцінюються простим підсумовуванням реалістичних оцінок з кожної задачі.
μ – реалістична оцінка витрат за проектом або релізом в цілому,
n – число завдань у проекті чи релізі,
μi – реалістична оцінка витрат на завдання i,
Oi – оптимістична оцінка витрат на завдання i,
Ei – найбільш правдоподібна оцінка витрат на завдання i,
Pi – песимістична оцінка витрат на завдання i
Тут важливо звернути увагу на ще одну особливість отриманих даних - ймовірність помилитися вдвічі у бік зменшення виявилося рівною ймовірності помилитися вдвічі у бік збільшення. Тобто. розподіл відносної помилки (на відміну абсолютної помилки) виявилося симетричним. Відповідно співвідношення найбільш правдоподібної оцінки до оптимістичної має бути мінімально відрізнятися або дорівнює відношенню песимістичної оцінки витрат до найбільш правдоподібної оцінки.
Якщо це не так, то є сенс перевірити правильністьоптимістичної та песимістичної оцінок.
Для визначення необхідних резервів на непередбачені потреби потрібно розрахувати інтервал можливих витрат за заданої оцінки (див. рис.2). Якщо початкова оцінка завдання склала 16 год, то з 50% ймовірністю можна говорити про те, що фактичні витрати будуть перебувати в діапазоні від 15 до 24 год, а з ймовірністю 95% можна було стверджувати лише те, що витрати будуть в діапазоні від 3 до 56 год.
Рис 2. Довірчий інтервал
Найбільш типовим є використання діапазону із ймовірністю 90%. У цьому випадку передбачається ймовірність того, що значення витрат перевищить песимістичну оцінку, і того, що витрати виявляться меншими за оптимістичну оцінку, рівні по 5%. Імовірність того, що фактичні витрати потраплять у діапазон між оптимістичною та песимістичною оцінкою дорівнює 90%.
Отримання розподілу ймовірностей фактичних витрат за релізом та проектом можливо використовуючи оптимістичні та песимістичні оцінки, отримані в методиці PERT. Сама методика отримання діапазону можливих значень пропонує просто скласти оптимістичні і песимістичні оцінки, проте найпростіше моделювання показує, що це некоректно. Песимістична оцінка проекту виявляється меншою від суми оцінок, а оптимістична – більше. Діапазон з ймовірністю 90% виявляється меншим за просту суму діапазонів для окремих завдань.
Точної формули для обчислення потрібного нам діапазону випадково розподілених величин не існує, проте гарне наближення дає наступна формула, що говорить про те, що розкид можливих значень витрат зростає пропорційно квадратному кореню від задач у проекті або релізі:
Відповідно, чим детальніше ми розбиваємо великий проект і більшезамислюємося про кожну окрему задачу, тим більше точну оцінку ми можемо дати. Наприклад, якщо взяти великий інтеграційний проект впровадження, трудовитрати за яким можуть становити 50 000 год, то розбивши план на 1 000 завдань ми теоретично можемо отримати похибку менше 800 год або менше 2%. p align="justify"> Графік теоретичної залежності розкиду витрат в залежності від детальності плану представлений на рис.3.
Мал.3. Теоретична залежність точності оцінки витрат залежно від кількості підзадач у плані:
На жаль, у реальному житті є низка обмежень, що не дозволяють досягти такої точності і найістотнішим є те, що вимоги та склад виконуваних завдань може змінюватися в ході проекту. Для більшості компаній типовим є втрата актуальності 10-30% завдань, тому як би ми не деталізували наш план, помилка у початкових оцінках все одно неминуча.
Підсумовуючи отримані висновки, мені вдалося зрозуміти таке. Використовуючи з метою оцінки великого проекту суму найбільш правдоподібних оцінок витрат, ми гарантовано занижуємо оцінку, підсумовуючи песимістичні оцінки – гарантовано її завищуємо. Щоб отримати реалістичну оцінку необхідно використовувати попередньо розрахований поправочний коефіцієнт чи методику оцінки ПЕРТ. Скориставшись оцінками у методиці ПЕРТ ми також можемо отримати діапазон витрат, про який можна говорити, що фактичні витрати потраплять до нього з ймовірністю 90% і в якому немає зайвих резервів. А деталізуючи план проекту і акуратно оцінюючи кожну задачу, можна значно скоротити цей діапазон, в результаті досягаючи необхідного розміру резервів.
Менеджер практики вдосконалення ІТ процесів компанії Accenture