Принципи внутрішньої будови калькулятора трудомісткості
Як побачити те, чого не можна торкнутися?
Людина не може взяти зорю до рук, розібрати її на частини або безпосередньо дослідити речовину, з якої вона складається.
Проте ми знаємо хімічний склад Сонця та багатьох інших зір.
Як це стало можливим?
Відповідь дала спектроскопія.
Світло, що надходить від зорі, можна розкласти на спектр. У ньому з'являються характерні лінії, за якими можна робити висновки про речовини, що взаємодіяли з цим світлом.
Так об'єкт, до якого фізично неможливо дістатися, стає доступним для дослідження через систему його ознак.
Від ліній спектра — до складу речовини
Цей шлях складався поступово.
На початку XIX століття Йозеф фон Фраунгофер детально дослідив темні лінії у спектрі Сонця. Лінії були видимі, але їхній фізичний зміст ще належало зрозуміти.
Пізніше Густав Кірхгоф і Роберт Бунзен показали, що хімічні елементи мають характерні спектральні ознаки. Спектр перестав бути просто смугою кольорів — він перетворився на джерело інформації про склад речовини.
Вільям Гаґґінс застосував цей принцип до дослідження зір. Виявилося, що за світлом далекого небесного тіла можна визначати елементи, присутні в його атмосфері.
У цій історії є важливий принцип: складний або недоступний об'єкт можна досліджувати через систему ознак, які він залишає.
Система елементів
У той самий період розвивався й інший спосіб упорядкування знань про хімічні елементи.
Знати властивості окремих елементів — ще не означає бачити систему, яку вони утворюють.
Дмитро Менделєєв організував хімічні елементи у періодичну систему.
Величезна різноманітність речовини перестала виглядати набором випадкових назв. Елементи отримали своє місце у структурі, а їхні властивості виявили закономірності.
Складний світ речовини можна описувати через обмежений набір базових елементів.
Елемент — це не просто назва
Візьмемо один елемент із періодичної системи.
У нього є символ.
Є атомний номер.
Є атомна маса.
Є положення в періодичній системі.
Є набір фізичних і хімічних властивостей.
Тобто елемент — це не просто назва об'єкта.
Це об'єкт, описаний за певною системою характеристик.
Саме завдяки цьому елементи можна розрізняти, порівнювати, класифікувати та використовувати для опису складніших структур.
Власна «періодична система» Digital Polygraph
Digital Polygraph має власну систему елементів програмного продукту.
Кожен такий елемент описується набором характеристик.
Користувач обирає з цієї системи ті елементи, що відповідають його продукту — так само, як з набору хімічних елементів обирають ті, з яких складається конкретна молекула.
Обираючи потрібні елементи, користувач формує не абстрактний перелік, а конкретний, зв'язний образ свого продукту — так само, як атоми складаються у структуру молекули, а не просто лежать поруч.
Характеристики уточнюють властивості обраних елементів, а внутрішній алгоритм використовує сформований опис для інженерного розрахунку.
Конкретний склад цієї системи та внутрішня механіка розрахунку не є предметом цієї статті.
Для розуміння принципу достатньо одного: складний програмний продукт спочатку представляється як система елементів та їхніх характеристик.
Призначення цієї системи — дати інженерну основу для керування строками створення продукту та його виходом у сприятливе ринкове вікно. Детальніше про управління строками — у статті «Своєчасність».
Елементи ще не утворюють речовину
Навіть повний список хімічних елементів не пояснює різноманіття навколишнього світу.
Елементи поєднуються між собою. Вони утворюють структури. Почнемо з найпростішої.
Два атоми водню та один атом кисню. Усього три атоми — і вже виникає речовина з власними властивостями.
Далі структура стає складнішою. З'являються інші елементи, більше атомів і більше зв'язків між ними.
Використовуючи відносно невеликий набір хімічних елементів, природа створює речовини з абсолютно різними властивостями.
Причина не лише в кількості атомів. Значення мають самі елементи, їхні властивості та спосіб їхнього поєднання у структуру.
Складність визначається не лише набором елементів, а й структурою, яку вони утворюють.
Аналогія, а не буквальна модель
Спектральний аналіз, періодична система та молекули в цій статті — це аналогія.
Елемент програмного продукту не є хімічним елементом, а програмний продукт не є молекулою.
Спільним є інший принцип. Складний об'єкт стає доступнішим для аналізу, коли ми:
визначаємо його складові → описуємо їхні характеристики → розглядаємо структуру, яку вони утворюють.
Саме ця послідовність дозволяє перейти від загального уявлення про складність до її структурованого опису.
Навіщо все це?
Аналогія зі спектрами, хімічними елементами та молекулами потрібна не сама по собі. Так само і розрахунок трудомісткості не є кінцевою метою.
Як у молекулі результат визначається не одним атомом, а всією структурою, так і для програмного продукту значення має не окремий елемент сам по собі, а структура цілого. Її формалізований опис створює основу для інженерного розрахунку.
Практичний результат такого розрахунку — інженерна дорожня карта створення програмного продукту.
Дорожня карта показує послідовні горизонти розвитку продукту:
- H0 — Виявлення вимог
- H1 — Прототип
- H2 — MVP
- H3 — Реліз-кандидат
- H4 — Експлуатація
Для кожного горизонту визначаються цільова віха, час від початку проєкту та необхідний розмір команди.
Мета Digital Polygraph — перетворити приховану складність програмного продукту на керовану інженерну дорожню карту: від виявлення вимог до експлуатації.
Про те, як трудомісткість перетворюється на строки й план команди — у статті «Інженерний метод управління строками поставки ПЗ».