Подивившись серії MegaStructures National Geographic , я здивувався швидкості завершення великих проектів. Після того, як попередня робота (дизайн, технічні умови тощо) буде виконана на папері, сама реалізація величезних проектів займає всього кілька років, а іноді і кілька місяців .
Наприклад, Airbus A380 "офіційно запущений 19 грудня 2000 року", а "на початку березня 2005 року" літак вже був випробуваний. Те саме стосується величезних нафтових танкерів, хмарочосів тощо.
Порівнюючи це із затримками в індустрії програмного забезпечення, я не можу не задатися питанням, чому більшість ІТ-проектів настільки повільні, а точніше, чому вони не можуть бути настільки ж швидкими та безвідмовними, в тому ж масштабі, даючи достатньо людей?
Такі проекти, як Airbus A380, представляють обидва:
Основні непередбачені ризики: хоча це не перший побудований літак, він все ще підштовхує межі технології, і речі, які добре спрацювали для менших авіалайнерів, можуть не працювати для більшого через фізичні обмеження; аналогічно застосовуються нові технології, які ще не використовувалися, оскільки, наприклад, вони були недоступні у 1969 році, коли було зроблено Boeing 747.
Ризики, пов’язані з людськими ресурсами та управлінням загалом: люди, які відмовилися в середині проекту, неможливість зв’язатися з людиною через те, що вона у відпустці, звичайні людські помилки тощо.
Маючи такі ризики, люди все ще досягають таких проектів, як ці великі авіалайнери, за дуже короткий проміжок часу , і, незважаючи на затримки доставки, ці проекти все ще є надзвичайно успішними та якісними.
Що стосується розробки програмного забезпечення, проекти навряд чи такі масштабні та складні, як авіалайнер (як технічно, так і з точки зору управління), і мають трохи менше непередбачених ризиків з боку реального світу.
Тим не менш, більшість ІТ-проектів є повільними та пізніми , і додавання більшої кількості розробників до проекту не є рішенням (перехід від команди на десять розробників до двох тисяч іноді дозволить доставити проект швидше, іноді ні, а іноді лише зашкодить проектувати та збільшувати ризик не закінчити його взагалі).
Ті, що все-таки доставляються, можуть часто містити багато помилок, що вимагають послідовних пакетів обслуговування та регулярних оновлень (уявіть, що "встановлення оновлень" на кожен Airbus A380 двічі на тиждень, щоб виправити помилки в оригінальному продукті та не допустити аварії літака).
Як можна пояснити такі відмінності? Це пов'язано виключно з тим, що індустрія розробки програмного забезпечення занадто молода, щоб мати можливість управляти тисячами людей на одному проекті, щоб дуже швидко поставляти великі, майже бездоганні продукти?