Перш ніж я забираюсь занадто далеко, дозвольте сказати, що Оцінка програмного забезпечення: Демістифікація чорного мистецтва - чудовий ресурс для людей, які дивляться і думають про оцінки. Обидва образи нижче - з цієї книги, як і ядро, якщо ідеї подані нижче.
Як ви зазначали, оцінки є важливою складовою для того, щоб можна було точно прогнозувати та планувати роботу. Відсутність оцінок робить бізнес сліпим щодо того, як довго щось займе. Не рідкість у бізнесу є абсолютно помилкове уявлення про те, як довго триватимуть справи - те, що вони вважають легким, займає від шести до восьми тижнів, а те, що вважається важким, - це п’ятниця в п'ятницю.
Перше - дати оцінку. Сама оцінка не є єдиним числом - це зобов'язання. "Скільки часу займе ABC" -> "Близько 5 днів" означає, що його приблизно 5 днів. Однак хороша оцінка - це діапазон, коли ви на 90% впевнені, що будете мати її в такому діапазоні. Якщо ви хочете сказати: "Я на 90% впевнений, що це займе 1 і 5 днів", тоді скажіть це. Не працюйте з "Я думаю, це займе від 1 до 10 днів, тому 5 днів, мабуть, приблизно в середньому" - це не оцінка, і ви помилитесь 50% часу.
Ну, 50% або більше часу програмісти - це горезвісні недооцінки часу виконання завдань.
Розглянемо конус невизначеності:
Зображення з http://www.construx.com - повна стаття на веб- сайті http://www.construx.com/Thought_Leadership/Books/The_Cone_of_Ucurityity/
Зрозумійте, що перша оцінка в цьому діапазоні 16x. Це схоже на висловлювання "Я думаю, це займе між днем і двома тижнями", - але ти ще не знаєш. Якщо трохи піти вперед з дизайном, діапазон звужується до 4 разів. Це не означає, що це займе один тиждень, це означає, що ви б замість цього сказали "трохи подивившись на це, це займе між трьома тижнями" - так, оцінка піднялася, але також і діапазон прогнозу пішов вниз.
З кожною оцінкою, яку ви даєте, ви повинні бути на 90% впевнені, що оцінка знаходиться в цьому діапазоні. Ви можете помилятися - 10% часу випаде з цього діапазону.
Існує багато способів оцінити розмір проектів. Порівнюючи це з попередніми проектами, використовуючи проксі (я думаю, що знадобиться 1000 рядків коду, для написання якого знадобиться це багато часу), за допомогою функціональних точок (для перетворення в LOC ...), отримання оцінок від кількості людей, а потім уточнюючи це ітераційно ... деякі працюють для одних проектів, деякі працюють для інших проектів.
Дуже важлива глава в цій книзі , що я говорив на вершині # 23 , який має справу з політикою оцінки та роботи з менеджерами і керівниками.
Ключовим моментом для оцінки є ітеративний процес його вдосконалення після трохи роботи.
Дати занадто точну оцінку занадто рано в процесі може бути дуже схильною до помилок. Якщо ви не впевнені в цьому, дайте широку оцінку, а потім через деякий час поверніться з іншою оцінкою, щоб дізнатися більше про проблему і, можливо, продемонструвати, як ви це зробите, дивлячись на те, скільки коду ви написали остання аналогічна проблема та інші фактори, які впливатимуть на оцінку.
Оцінки потребують певної думки - не давайте оцінки манжет. Вони часто мають величезні помилки, пов’язані з ними, порівняно з тим, що відбувається, коли трохи подумати над цим.
З Як відповісти, коли вас запитують про оцінку?
Що сказати, коли запитують оцінку
Ти кажеш: "Я повернуся до тебе".
Ви майже завжди отримуєте кращі результати, якщо сповільнюєте процес і витрачаєте деякий час, виконуючи кроки, описані в цьому розділі. Оцінки, подані на кавовій машині, (як і кава) повернуться, щоб переслідувати вас.
З глави 4 Оцінки програмного забезпечення:
Зауважте, що в цьому, оцінки після невеликого огляду систематично менш дикі та схильні до помилок, ніж оцінки, що не стосуються манжети. Не робіть оцінок манжети. Сядьте і подумайте над завданням та оцініть його, подумавши над ним.