Принципи внутрішньої будови калькулятора трудомісткості


Як побачити те, чого не можна торкнутися?

Людина не може взяти зорю до рук, розібрати її на частини або безпосередньо дослідити речовину, з якої вона складається.

Проте ми знаємо хімічний склад Сонця та багатьох інших зір.

Як це стало можливим?

Зоряне небо

Відповідь дала спектроскопія.

Світло, що надходить від зорі, можна розкласти на спектр. У ньому з'являються характерні лінії, за якими можна робити висновки про речовини, що взаємодіяли з цим світлом.

Спектр зорі з лініями поглинання

Так об'єкт, до якого фізично неможливо дістатися, стає доступним для дослідження через систему його ознак.


Від ліній спектра — до складу речовини

Цей шлях складався поступово.

Портрет Йозефа фон Фраунгофера
Йозеф фон Фраунгофер
Портрет Густава Кірхгофа
Густав Кірхгоф
Портрет Роберта Бунзена
Роберт Бунзен
Портрет Вільяма Гаґґінса
Вільям Гаґґінс

На початку XIX століття Йозеф фон Фраунгофер детально дослідив темні лінії у спектрі Сонця. Лінії були видимі, але їхній фізичний зміст ще належало зрозуміти.

Пізніше Густав Кірхгоф і Роберт Бунзен показали, що хімічні елементи мають характерні спектральні ознаки. Спектр перестав бути просто смугою кольорів — він перетворився на джерело інформації про склад речовини.

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

У цій історії є важливий принцип: складний або недоступний об'єкт можна досліджувати через систему ознак, які він залишає.


Система елементів

У той самий період розвивався й інший спосіб упорядкування знань про хімічні елементи.

Знати властивості окремих елементів — ще не означає бачити систему, яку вони утворюють.

Портрет Дмитра Менделєєва

Дмитро Менделєєв організував хімічні елементи у періодичну систему.

Величезна різноманітність речовини перестала виглядати набором випадкових назв. Елементи отримали своє місце у структурі, а їхні властивості виявили закономірності.

Повна періодична система хімічних елементів
Повна періодична система хімічних елементів

Складний світ речовини можна описувати через обмежений набір базових елементів.


Елемент — це не просто назва

Візьмемо один елемент із періодичної системи.

Збільшена комірка одного хімічного елемента

У нього є символ.
Є атомний номер.
Є атомна маса.
Є положення в періодичній системі.
Є набір фізичних і хімічних властивостей.

Тобто елемент — це не просто назва об'єкта.

Це об'єкт, описаний за певною системою характеристик.

Саме завдяки цьому елементи можна розрізняти, порівнювати, класифікувати та використовувати для опису складніших структур.


Власна «періодична система» Digital Polygraph

Digital Polygraph має власну систему елементів програмного продукту.

Кожен такий елемент описується набором характеристик.

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

Елементи, які обирає користувач, через синтез утворюють конкретний образ продукту
Синтез: обрані елементи утворюють конкретний образ продукту

Обираючи потрібні елементи, користувач формує не абстрактний перелік, а конкретний, зв'язний образ свого продукту — так само, як атоми складаються у структуру молекули, а не просто лежать поруч.

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

Конкретний склад цієї системи та внутрішня механіка розрахунку не є предметом цієї статті.

Для розуміння принципу достатньо одного: складний програмний продукт спочатку представляється як система елементів та їхніх характеристик.

Призначення цієї системи — дати інженерну основу для керування строками створення продукту та його виходом у сприятливе ринкове вікно. Детальніше про управління строками — у статті «Своєчасність».


Елементи ще не утворюють речовину

Навіть повний список хімічних елементів не пояснює різноманіття навколишнього світу.

Елементи поєднуються між собою. Вони утворюють структури. Почнемо з найпростішої.

Молекула води H₂O
Вода — H₂O
Молекула етанолу C₂H₅OH
Етанол — C₂H₅OH
Молекула кофеїну C₈H₁₀N₄O₂
Кофеїн — C₈H₁₀N₄O₂
Молекула вітаміну B12 (кобаламін) C₆₃H₈₈CoN₁₄O₁₄P
Вітамін B₁₂ — C₆₃H₈₈CoN₁₄O₁₄P

Два атоми водню та один атом кисню. Усього три атоми — і вже виникає речовина з власними властивостями.

Далі структура стає складнішою. З'являються інші елементи, більше атомів і більше зв'язків між ними.

Використовуючи відносно невеликий набір хімічних елементів, природа створює речовини з абсолютно різними властивостями.

Причина не лише в кількості атомів. Значення мають самі елементи, їхні властивості та спосіб їхнього поєднання у структуру.

Складність визначається не лише набором елементів, а й структурою, яку вони утворюють.


Аналогія, а не буквальна модель

Спектральний аналіз, періодична система та молекули в цій статті — це аналогія.

Елемент програмного продукту не є хімічним елементом, а програмний продукт не є молекулою.

Спільним є інший принцип. Складний об'єкт стає доступнішим для аналізу, коли ми:

визначаємо його складові → описуємо їхні характеристики → розглядаємо структуру, яку вони утворюють.

Саме ця послідовність дозволяє перейти від загального уявлення про складність до її структурованого опису.


Навіщо все це?

Аналогія зі спектрами, хімічними елементами та молекулами потрібна не сама по собі. Так само і розрахунок трудомісткості не є кінцевою метою.

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

Практичний результат такого розрахунку — інженерна дорожня карта створення програмного продукту.

Розраховані інженерні горизонти поставки

Дорожня карта показує послідовні горизонти розвитку продукту:

  • H0 — Виявлення вимог
  • H1 — Прототип
  • H2 — MVP
  • H3 — Реліз-кандидат
  • H4 — Експлуатація

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

Мета Digital Polygraph — перетворити приховану складність програмного продукту на керовану інженерну дорожню карту: від виявлення вимог до експлуатації.

Про те, як трудомісткість перетворюється на строки й план команди — у статті «Інженерний метод управління строками поставки ПЗ».