Іноді трапляються дослідницькі та дослідно-конструкторські проекти, де заздалегідь нічого не відомо про технологію, концепції та клієнта. Однак менеджеру все ще потрібні оцінки часу. Що я можу зробити для отримання корисних оцінок?
Іноді трапляються дослідницькі та дослідно-конструкторські проекти, де заздалегідь нічого не відомо про технологію, концепції та клієнта. Однак менеджеру все ще потрібні оцінки часу. Що я можу зробити для отримання корисних оцінок?
Відповіді:
Чесно кажучи, як пише у своєму книзі Чорний лебідь Нассім Ніколас Талеб: "ми просто не можемо передбачити". В основному через невідомих-невідомих. Як правило, найкраще повідомити цей факт, той факт, що ви не можете передбачити, а не повідомляти оцінку.
Як пише Талеб: краще бути широко прав, ніж точно помилятися. Тому не забудьте повідомити той факт, що вам важко оцінити, і використовуйте такі речі, як "вивчення кривих нових технологій" як один із аргументів. Це означає, що діапазон вашої оцінки буде великим: "цей проект коштуватиме від 100 до 500 тис."
Кажучи таке, той, хто просить вас оцінити щось, розуміє, що все не так просто.
Абсолютне перше, що вам потрібно, - це деяке уявлення про сферу застосування. Чим конкретніше, тим краще, але будь-яка форма вимог може бути використана для отримання початкових оцінок. Вимоги замовника, бачення та сфера застосування та концептуальні документи можна використовувати на початку. Оскільки вимоги та середовище експлуатації почнуть ставати більш зрозумілими, тоді оцінки будуть покращуватися. Більш чітке розуміння клієнта (особливо інтерфейсів між клієнтом та розвиваючою організацією), команди, яка виконує роботу, технологій, які будуть використовуватися, архітектури системи та детального проектування - все це сприятиме більш точній оцінці. Це видно в конусі невизначеності.
Якщо ви використовуєте інструмент параметричного моделювання, такий як SLIM або COCOMO (лише проміжний або розширений, оскільки Basic не враховує драйверів витрат), то повинні бути коригуючі фактори для незнайомості технології. Як приклад, COCOMO містить велику кількість драйверів витрат , включаючи таких, які спеціально спрямовані на ознайомлення з цільовою платформою, а також мову та інструменти, які використовуються для розробки системи. SLIM також припадає на загальний досвід роботи групи розробників, який повинен включати врахування використовуваних інструментів та технологій.
За допомогою цієї методики вихід засобів інструментів моделювання, як правило, підтверджується, оскільки їх успішно використовували для оцінки попередніх програм на протязі багатьох років у багатьох організаціях. Однак вихід такий же хороший, як і вхід до інструменту.
Якщо ви не використовуєте параметричні моделі для оцінки, вам доведеться просто враховувати ці фактори при формуванні своїх оцінок. Це стає більше викликом судження, але ви можете розглянути такі дії, як читання документації, налаштування нового середовища розробки та розробка зразкових програм на цільовій платформі або з цільовими мовами.
У цих випадках вам потрібно буде розбити свої оцінки за завданням і мати можливість використовувати своє професійне судження для його резервування. Сподіваємось, у вас є історичні дані та інші конкретні докази, на основі яких ви бачите свої оцінки. Інакше це скоріше важкий бій.
Виділіть час основної підготовки та досліджень від часу розробки. Розбийте проект на кілька підпроектів, які мають щасливі закінчення. Переконайтеся, що ви створили доказ концепції після тренінгу.
Якщо ви новачок у технології, ви ніколи не наблизитесь до фактичного часу розробки. Підвищуйте це як ризик на початку проекту та будьте щедрі у своїй оцінці. Це стосується основних технологій, які ви та ваша команда не знайомі.
Залежить, я використовував FPA ( Function Point Analysis ) більшу частину часу, але ми входили в цю "веб-розробку enterprizey", я маю на увазі, ви знаєте, веб-компанії Forbes 500.
Там завдання завжди можна розділити на дві частини: та, яка дуже добре відповідає FPA: у вас є вхідні інтерфейси, вихідні інтерфейси, внутрішні логічні файли (ака. Таблиці / типи баз даних / типи, які потрібно експортувати), і у вас є ці складні, невідомі системи .
У легкій версії складне завдання - це вже написаний компонент, просто важко і невідомо взаємодіяти з ним.
Важка версія - це коли потрібно писати, а потім оцінювати на основі пілотних програм, COCOMO, і все.
Однак дві важливі речі:
Кожна система оцінки повинна мати час калібрування для вашої організації. Ви ніколи не розвиваєтеся наодинці, принаймні, клієнт чекає вашого коду (інакше ви не будете настільки відчайдушні з цього приводу, написавши код заради себе). Питання не в тому, «як швидко його можна розвинути?», А «як швидко його можна розвинути з усіма вами?».
Одного разу у мене був менеджер, який читав той роман Чорного лебедя і маніакував його. Він говорив нам, що неможливо оцінити, і я невпинно робив свої звичайні точні до + -10% оцінки ...
Я роблю проекти, які відповідають цьому опису дещо регулярно, і я цього ще не з'ясував! На щастя, де я працюю, мені надають широкі можливості робити те, що мені потрібно, і не маючи марних часових обмежень. Проекти не завжди є успішними, і це лише частина того, що працює з такою кількістю невідомих. Компанія отримує знання щоразу.
Вибачте, що це зовсім не допомагає.
Оцініть, скільки часу знадобиться, щоб зробити подібний проект, використовуючи знайомі технології. Помножте на 4. Додайте трохи часу на навчання.
Якщо оцінка занадто коротка, ви будете виглядати наївно і зарозуміло. якщо оцінка занадто велика, ви будете виглядати неосвіченими та некомпетентними. Вибирайте розумно.