Юридичні проблеми, пов'язані з серверною інфраструктурою розробки систем
ІТ-системи, які використовуються в компаніях, в певному сенсі створюються шляхом створення технічних завдань та проектних документів, а також написання вихідного коду, що відповідає цьому змісту. Однак, система функціонує в реальному світі не лише завдяки цим програмним аспектам, але й завдяки фізичним комп’ютерам, тобто інфраструктурі. У цій статті ми розглянемо правові питання, які тісно пов’язані з областю інфраструктури в проектах розробки систем.
Що таке інфраструктура в IT-системах
Технічні спеціалісти, які займаються розробкою систем, називаються системними інженерами (SE). Розробка проекту починається з початкових етапів, таких як створення технічного завдання та проектних документів, а потім переходить до реалізації програми та її тестування. В широкому розумінні, системний інженер (SE) – це технік, який виконує всі ці завдання. Однак, в залежності від компанії або робочого місця, можуть бути додаткові розрізнення назв відповідно до виконуваних обов’язків або області відповідальності. Термін “інженер інфраструктури” використовується для позначення техніків, які займаються створенням фізичного середовища роботи комп’ютера в рамках розробки та експлуатації IT-систем. IT-системи, які використовуються в компаніях або на робочих місцях, є в певному розумінні абстрактними конструкціями, що складаються з комбінацій вихідного коду. Однак, для того, щоб ця система виконувала свою первинну роль, необхідно створити інфраструктуру, включаючи сервери та мережі. Практична розробка системи відбувається за допомогою двох основних елементів: реалізації програмного коду та створення інфраструктури, яка підтримує його робоче середовище. Такий підхід важливий для запобігання непередбаченим проблемам.
Конкретні ситуації, коли проблеми з інфраструктурою призводять до провалу проекту
У реальному світі можливі ситуації, коли в проектах розробки систем занадто багато уваги приділяється лише абстрактному програмуванню та проектуванню на рівні вихідного коду, а інфраструктурні питання залишаються без належної уваги. Однак, якщо ці два аспекти не взаємодіють належним чином, це може стати причиною ризику “провалу” проекту.
Як помилки у розміщенні серверів можуть призвести до конфліктів
Наприклад, можлива ситуація, коли після завершення всіх етапів реалізації програми та тестування виявляється, що продуктивність сервера недостатня, і система не витримує реального навантаження. Варто зазначити, що процес прогнозування можливого навантаження на систему під час її експлуатації та підготовка інфраструктури, що відповідає масштабу системи, називається “розміщенням”. Випадки, коли помилки в розміщенні серверів призводять до проблем, вже траплялися в минулому. (Хоча ці проблеми були вирішені шляхом узгодження, ви можете ознайомитися з цим відомим випадком як з прикладом.) Детальніше про метод вирішення конфліктів шляхом узгодження ми розглядаємо в наступній статті.
Якщо конфлікт було вирішено шляхом узгодження, це означає, що сторони вирішили свої розбіжності через переговори. Таким чином, відмінно від випадків, коли рішення приймається судом, зміст узгодження не накопичується як судова практика, і він зазвичай має високий рівень індивідуальності.
Суть проблеми – обсяг обов’язків постачальника щодо неясних вимог
Однак, суть таких конфліктів, як правило, полягає в питанні: “до якого рівня постачальник повинен нести відповідальність за питання, які не були чітко визначені в технічному завданні?” Враховуючи це, ви можете отримати багато корисної інформації з наступної статті.
https://monolith.law/corporate/system-development-specs-function[ja]
У цій статті ми пояснюємо, наскільки далеко постачальник може йти у власному розсуді та виконувати обов’язки щодо реалізації вимог, які не були вказані в технічному завданні. Тут ми пояснюємо, що ситуація значно відрізняється для питань, які легко візуалізувати в документах, таких як вимоги до системи або основні проектні рішення (так звана “фронтальна частина”), і для питань, пов’язаних з “логікою” (так звана “задня частина” або “база даних”), таких як перенесення даних. Тобто, в області “фронтальної частини”, де проблеми з вимогами легко виявити навіть для замовника/користувача, який зазвичай не має спеціальних знань про розробку систем, замовник/користувач, як правило, несе більшу відповідальність. З іншого боку, проблеми “логічної частини” зазвичай покладаються на виконавця/постачальника. Враховуючи це, можна припустити, що проблеми з розміщенням серверів, які важко виявити без спеціальних технічних знань, зазвичай покладаються на виконавця/постачальника. Тому, якщо це питання дійсно стане предметом судового розгляду, можна очікувати, що без активних доказів, які б виправдали виконавця/постачальника, рішення, як правило, буде не на його користь.
Заходи для запобігання проблемам через помилки у розміщенні серверів
Для запобігання вищезгаданим проблемам важливо забезпечити співпрацю між розробкою програмного забезпечення, написанням вихідного коду та підготовкою інфраструктури. Конкретні заходи можуть включати наступне:
Чітке визначення відповідальності за розміщення серверів у договорі
Багато конфліктів, пов’язаних з проектами розробки систем, виникають через неясність розподілу ролей між вендорами, які є експертами у розробці систем, та користувачами, які знайомі з внутрішніми обставинами компанії. Хоча тісна співпраця між обома сторонами є необхідною для гладкого виконання проекту, бажано якомога більше уточнити розподіл ролей та область відповідальності в договорі заздалегідь.
Конкретизація вимог до розробки та повне управління змінами
Крім того, якщо функціональні вимоги, які слід реалізувати, є неясними, ризик конфліктів зростає. Це включає як уточнення специфікацій на початковому етапі визначення вимог, так і управління змінами під час проекту. Як поводитися зі змінами специфікацій під час проекту, детально описано в наступній статті.
https://monolith.law/corporate/howto-manage-change-in-system-development[ja]
Вибір моделі розробки, що відповідає характеру проекту
Крім того, що це глибоко пов’язано з двома вищезгаданими заходами, важливо вибрати відповідну модель розробки для проекту розробки системи в залежності від його характеру та масштабу. Загалом, якщо розробка системи великого масштабу, де розміщення серверів може бути важливим, варто вибрати модель водоспаду, яка підходить для уточнення специфікацій та області відповідальності. Щодо вибору відповідної моделі розробки, з урахуванням характеру проекту, детально описано в наступній статті.
Підсумки
Проблеми, що виникають з інфраструктурою під час розробки системних проектів, часто стають сліпими зонами, що заважають гладкому просуванню проекту. Для непрофесіоналів у сфері технологій, звернення уваги на проблеми з інфраструктурою може бути великим навантаженням. Однак, заходи щодо запобігання таким проблемам, такі як “уточнення специфікацій / ретельне управління змінами”, “уточнення ролей / області відповідальності”, “вибір моделі розробки, що відповідає масштабу та бюджету проекту”, можна вважати продовженням основних заходів. Основне, що повинні розуміти юристи, які працюють у сфері корпоративного права, – це те, що основи профілактичного права можуть бути повністю застосовані до проблем з інфраструктурою. Крім того, для IT-спеціалістів важливо розуміти, що проблеми з інфраструктурою можуть стати серйозним ризиком для проекту, і важливо ефективно керувати робочим процесом.
Category: IT
Tag: ITSystem Development