26 април 2012 г | Публикувано от администратор в Практики, Статии | Автор : Евгений Неделко
В работата ми постоянно се налага да правя прогнози за проекти, задачи и работа, която тепърва предстои да бъде завършена, поради което е невъзможно да ги измерим точно. Наскоро голям клиент на Accenture се обърна към нас, за да помогнем за разработването на по-систематична методология за изготвяне на тези оценки. Проектът така и не се осъществи, но материалите, които събрах, се оказаха изключително полезни за мен самия. Може би и те ще ви заинтересуват.
Първото нещо, което направих, когато се присъединих към този проект, беше да се опитам да формулирам същността на проблема, тоест задачата, която искам да реша. В почти всеки проект, в който съм участвал, планът се основава на точни оценки на отделните задачи, с конкретни числа, посочени като продължителност, усилия или цена на задачата. Само няколко проекта използваха методологията PERT, определяйки освен най-очакваните разходи, също оптимистични и песимистични оценки, но дори и в този случай общата оценка на проекта беше едно конкретно число. Разбрах, че в действителност действителните разходи винаги ще бъдат повече или по-малко от първоначалната оценка и вероятността за точно съвпадение клони към нула. Бях сигурен, че всеки разпределен бюджет ще бъде преизразходван или неизразходван. Нашият потенциален клиент и аз лично искахме да можем да определим вероятността за вписване в определен бюджет, т.е. от една страна, за да се избегне ситуацията, когато парите свършат по средата на проекта, а от друга страна, за да се избегне ситуацията, когато останат допълнителни пари, които просто се „използват“, без да носят допълнителни печалби на бизнеса.
И тук имах късмет: нашата компания, като един от най-големите доставчици на аутсорсинг услуги в света, разполага с огромно количество данни за завършени проекти и успях бързо да получа голяма извадка от данни от един от българските проекти. Получих прогнози и действителни разходи за няколко хиляди заявки с типичен труд, вариращ от 1 час до 50 часа. След прости манипулации в Excel получих желаното разпределение (фиг. 1). На хистограмата вертикално се показва броят на заявките, а хоризонтално - размерът на действителните разходи спрямо прогнозираните. Например, ако действителните разходи съвпадат с прогнозата, тогава на хистограмата такова приложение ще увеличи с 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 ч-дни, тогава като разделим плана на 1000 задачи, можем теоретично да получим грешка от по-малко от 800 ч-дни или по-малко от 2%. Графика на теоретичната зависимост на разпространението на разходите в зависимост от детайлността на плана е показана на фиг.3.
Фиг.3. Теоретична зависимост на точността на оценките на разходите в зависимост от броя на подзадачите в плана:
За съжаление в реалния живот съществуват редица ограничения, които не позволяват постигането на такава точност, като най-същественото е, че изискванията и съставът на изпълняваните задачи могат да се променят в хода на проекта. За повечето компании загубата на релевантност на 10-30% от задачите е типична, така че колкото и да детайлизираме плана си, грешката в първоначалните оценки все още е неизбежна.
Обобщавайки констатациите, успях да разбера следното. Използвайки сумата от най-правдоподобните оценки на разходите, за да оценим голям проект, ние гарантираме, че ще подценим оценката, като обобщим песимистичните оценки - ние гарантираме, че ще я надценим. За да се получи реалистична оценка, е необходимо да се използва предварително изчислен корекционен фактор или методология за оценка PERT. Използвайки оценките в методологията PERT, можем да получим и диапазон от разходи, за които можем да кажем, че действителните разходи ще попаднат в него с вероятност от 90% и в които няма прекомерни резерви. И чрез детайлизиране на плана на проекта и внимателно оценяване на всяка задача, можете значително да намалите този диапазон, като в крайна сметка достигнете необходимото количество резерви.
Ръководител практика за подобряване на ИТ процесите в Accenture