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

Договір на розробку Програмного забезпечення
Ми зламаємо декілька загальноприйнятих міфів, що стосуються укладення договорів про розробку програмного забезпечення. Перший міф – договір на розробку софту та його зміст має другорядне значення, куди важливіша комунікація з менеджером та найщиріші запевнення розробника щодо функціоналу софту, дедлайнів та кошторису розробки. Так здебільшого і відбувається на практиці. Спочатку Ви домовляєтесь про все під час листування, нерідко через месенджер. Потім підписуєте угоду, що пропонує менеджер команди розробників, сподіваючись, що усні домовленості будуть враховані. А у результаті виявляється, що істотні умови угоди не відповідають обіцянкам команди розробників, які лунали у процесі попередніх переговорів.
Міф другий – бухгалтер, менеджер, а то навіть і верстальник з дипломом юриста знає як скласти договір на розробку. Плюс до того – всі бланки договорів є у мережі Інтернет. Та і взагалі, “аутстаф – найкращий варіант на всі випадки”, ані ПДВ тобі, а ні майнових прав. Здається, все просто і зрозуміло. Руйнуємо цей міф. По-перше, рішення, яке на перший погляд здається найпростішим, часом має найскладніші негативні наслідки. По-друге – юрист, з досвідом роботи у цій сфері, здатен закласти у договір таку кількість backdoor, що всі наведені спеціалісти разом не зможуть побачити їх навіть після 10-го перечитування тексту договору.
Міф третій – підписання акту про виконання робіт з розробки програмного забезпечення – це формальність, яку можна виконати без повної перевірки функціональності продукту. Така практика співпраці з розробниками завершується отриманням нефункціонального програмного забезпечення або софту з численними недоліками. Також, не раджу приймати результати робіт за різними актами, кожен з яких закриває окремий етап, що не завершується створенням повністю функціонального продукту. Це призводить до зловживань, коли замовником сплачено 90% погодженого кошторису, а у результаті розроблено лише MVP (Minimum Viable Product) без вичерпного тестування і усунення критичних багів. І це не найгірший приклад.
Мораль міфів про договір розробки софту у наступних трьох моментах:
- Якщо бажаєте успішної та безконфліктної реалізації досягнутих домовленостей, то завжди викладайте на папері ті положення, про які попередньо домовились з іншою стороною. Аналогічного вимагайте і від Вашого контрагента. Це особливо стосується строків виконання завдання на розробку, порядку оплати, змісту технічного завдання на інших важливих умов.
- Не нехтуйте допомогою фахівців – замовляйте правовий аналіз договорів, складання протоколів узгодження виявлених розбіжностей, консультуйтесь і залучайте юристів до переговорів. Юрист, авжеж, не помічник у написанні технічного завдання на розробку програмного забезпечення, проте його роль не менш важлива.
- Приймайте результати робіт з розробки софту за актом та підписуйте акт лише коли на 100% впевнені у готовності продукту та його належній функціональності. Рекомендую включати тестування, виявлення недоліків софту та їх виправлення в основний масив робіт і послуг за договором про розробку софту та закривати все 1 актом з переліком всіх робіт та підтвердженням 100% функціональності програмного продукту.
Трохи теорії про договір розробки програмного забезпечення:
За договором про розробку програмного забезпечення одна сторона зобов’язується створити за заданням іншої сторони об’єкт права інтелектуальної власності – програмне забезпечення (смарт-контракт, мобільний додаток, веб-сервіс тощо) та надати необхідний для цього комплекс послуг, а інша сторона приймає на себе обов’язок оплатити надані послуги (виконані роботи) з розробки програмного забезпечення.
Договір на розробку програмного забезпечення обов’язково має містити детальні положення про перехід (передачу) майнових прав на створений на замовлення об’єкт права інтелектуальної власності.
Положення про передачу Замовнику майнових прав на розроблений об’єкт права інтелектуальної власності – ключова характеристика, що вирізняє цей тип договорів. Власне, Договір на розробку програмного забезпечення поєднує в собі положення ліцензійного договору (переважно має місце виключна ліцензія – передача виключних майнових прав) і договору про надання послуг та/або виконання робіт.
Agile і Waterfall у контексті складання договору і технічного завдання до нього.
Договір на розробку програмного забезпечення може мати різні філософії регулювання відносин, що відповідають відповідним принципам взаємовідносин між замовником і розробником. Мова йде про Agile (гнучкий тип побудови відносин між сторонами і відповідно формування завдання на розробку) та Waterfall (антипод Agile, що передбачає наявність конкретного і структурованого завдання на розробку з чітко сформованими вимогами).
В юридичній природі не існує Agile договорів або Waterfall договорів. Обидві філософії взаємовідносин між розробником і замовником знаходять своє втілення в договорі на розробку або аналогічній угоді. Натомість змінюється зміст договору, а точніше навіть зміст додатку до договору – технічного завдання на розробку програмного забезпечення.
Практика наших юристів свідчить – в наші дні більшість договорів на розробку програмного забезпечення та технічних завдань до них вибудовуються за формулою Agile.
Так, замість жорсткого алгоритму у технічному завданні Waterfall, Agile пропонує нам вказати якості, основні вимоги та ідеї кінцевого продукту, так би мовити “очікування”. За Agile вимоги і завдання до програмного продукту можуть змінюватись і уточнюватись у рамках, обумовлених договором і технічним завданням до нього.
Договір аутстафінгу і розробка програмного забезпечення – це не рішення для замовника, якому необхідний кінцевий продукт.
Окремі юристи приписують до числа угод на розробку програмного забезпечення договір аутстафінгу. Вважаємо таку практику хибною і шкідливою для підприємців, які користуються послугами таких юристів. Out staff має своє практичне застосування з метою залучення людських ресурсів для роботи над проектом. Для такої задачі договір аутстафінгу буде цілком адекватно виконувати покладені на нього функції щодо надання замовнику у розпорядження необхідних йому спеціалістів.
Це, звісно, якщо Замовник сам є розробником програмного забезпечення. Або якщо все, що потрібно Вам, зводиться до необхідності формалізувати відносини з надання замовнику послуг. Послуги за Договором аутстафінгу виражаються у “людино-годинах”. Незважаючи на мінуси, така юридична конструкція має свої плюси. Можливість мінімізувати відповідальність виконавця – один з таких плюсів. З іншої сторони – зміст правильно складеного договору аутстафінгу не залишає місця для будь-яких претензій виконавця на результати роботи та ім’я розробника кінцевого продукту.
Ви можете використовувати подібний договірний інструмент для вирішення задачі “формалізації відносин і проведення оплати”. При укладені договору аутстафінгу відповідальність за готовий програмний продукт не лягатиме на плечі фактичного розробника, її нестиме замовник, який де-юре і буде розробником софту.
Договір аутстафінгу юридично не є договором на розробку програмного забезпечення.
Таким чином, договір аутстафінгу юридично не є договором на розробку програмного забезпечення. Договір аутстафінгу не передбачає створення кінцевого програмного продукту. При цьому, “аутстаф” – це допустимий юридичний інструмент, який часто застосовується у відносинах між вітчизняним розробником і замовником-нерезидентом, який шукає можливості з мінімальними витратами залучити до роботи над проектом необхідних спеціалістів.
Аутстаф переважно орієнтований на зовнішній ринок. Практична сфера відносин, які обслуговуються цим договором – це робота над помилками (bug fixing) у програмних продуктах та сапорт. Тому, якщо замовник бажає отримати від Вас готовий до виходу на ринок програмний продукт з комплексом супутніх прав інтелектуальної власності, то саме Договір на розробку програмного забезпечення здатний задовольнити його та Ваші потреби.
Особливості укладення договору на розробку Смарт-контракту
Що таке смарт-контракт (smart contract) в контексті договору на його створення? Це – цифровий протокол з власним механізмом (скриптом) виконання і програма, вимоги і критерії до написання якої можуть бути сформульовані у договорі на розробку і технічному завданні до нього.
Смарт-контракт можна розглядати і як самостійне втілення договору, і як програму, яка може бути виконана на обчислювальній техніці. При цьому виходить, для того щоб написати смарт-контракт відповідно до затвердженого технічного завдання потрібно домовитись про таке технічне завдання, строки і умови виконання обов’язків розробника, розмір винагороди (оплати) за виконану роботу (надані послуги).
Відтак, для написання смарт-контракту за завданням замовника нам потрібен договір на розробку програмного забезпечення, а конкретно на розробку смарт-контракту. В принципі, нам так чи інакше не обійтись без договору, якщо прагнемо в подальшому формалізувати права інтелектуальної власності та надати правовий захист створеному на замовлення програмному забезпеченню.
Головна ж особливість укладення договору на розробку смарт-контракту полягає у складності формуванні вимог до створюваного об’єкту і написанні технічного завдання. До того ж, це саме той випадок, коли замовнику слід подбати про захист від потенційних претензій третіх осіб. Для цього останньому слід обов’язково передбачити в договорі на розробку положення, за якими розробник приймає на себе обов’язок самостійно та за власний рахунок владнати всі можливі спори, пов’язані з авторством на результат його роботи.
Самостійний варіант вирішення комплексу питань інтелектуальної власності – використовувати напрацювання, що розповсюджуються на основі Open source ліцензій. Втім, такий варіант передбачає, що і Вам доведеться дотримуватися умов відкритих ліцензій при розповсюджені створеного софту – Open source ліцензії та IT.
5 питань, які слід поставити при укладенні договору на розробку програмного забезпечення:
Пропонуємо до Вашої уваги 5 найважливіших питань і пов’язаних з ними положень (розділів) Договорів на розробку програмного забезпечення. Якщо Ви поставили ці питання перед укладенням договору та отримали задовільну для себе відповідь, то можете підписувати договір і приймати на себе відповідні обов’язки. В іншому випадку – краще утриматись від його підписання.
Наші 5 питань і відповідні рекомендації юристів Legal Support будуть корисні обом сторонам Договору про розробку програмного забезпечення. Запропонований перелік правових питань, що мають бути поставлені при укладенні договору, не є вичерпним. Проте, ці питання, без перебільшення, є ключовими з точки зору подальшого правового захисту.
Які обов’язки сторін та у чому полягає предмет договору на розробку софту?
Назва договору не завжди свідчить про його зміст, тому не забувайте уважно вивчати пункти про предмет договору (саме тут розкривається зміст відносин між замовником і розробником (виконавцем). Ще більше уваги приділіть конкретним обов’язкам кожної сторони
Перевіряючи умови угоди, які передбачають обов’язки сторін, уважно звіряйте не тільки власні обов’язки, а і обов’язки Вашого контрагента. На кожне Ваше право має бути передбачено кореспондуючий обов’язок контрагента.
Саме розділ про права і обов’язки сторін зазвичай містить вказівку на конкретні строки виконання обов’язків. Умови Договору стосовно обсягу і порядку передачі майнових прав на розроблене програмне забезпечення також можуть знайти своє закріплення у розділі про предмет Договору або про обов’язки сторін. Звертайте увагу на ці положення.
Ми не згадуємо окремим питанням про вартість послуг і робіт, так само як і про порядок оплати. Зазвичай ці положення переглядаються одними з перших. Переконані, вони не залишаться поза Вашою увагою. Однак, не забувайте перевіряти статті угоди, присвячені конкретному порядку оплати (оплата на підставі акту, часткова оплата або 100% передоплата).
Розглянемо типову ситуацію, яка може перетворитись на суттєву проблему за відсутності попереднього правового аналізу договору на розробку. “На словах” (під час переговорів, шляхом email листування або в інший спосіб) Ви де-факто домовились про одні строки і порядок виконання обов’язків з розробки ПО, а також оплати, а де-юре в положеннях Договору містяться зовсім інші умови. Більше того, цей факт може виявитись не одразу і бути використаний однією зі сторін договору всупереч фактичним домовленостям.
Що з цього слідує? Довіряй, проте перевіряй – це філософія сьогодення. По-перше, слід подбати про самостійне попереднє вивчення умов договору перед його укладенням (наша формула з 5 питань допоможе Вам у цьому процесі). По-друге, за наявності можливості слід звернутись за допомогою до професійних юристів.
Який порядок передачі виконаних робіт і майнових прав на програмне забезпечення?
Конкретний порядок передачі виконаних робіт або наданих послуг (в залежності від того як це виписано у договорі на розробку) і відповідних майнових прав на програмне забезпечення прописується в окремому розділі договору. Сам процес передачі оформлюється Актом.
Акт можна назвати по різному. Рекомендуємо виходити з того, яким чином визначено назву договору на розробку і виписано його предмет. Наприклад, у предметі договору може бути вказано – “Виконавець зобов’язується за дорученням та відповідно до завдання Замовника створити об’єкт права інтелектуальної власності – програмний додаток “Онлайн ідентифікатор їстівних грибів” (далі за текстом Договору – Програмний додаток)”. При цьому, назва договору на розробку визначена наступним чином – “Договір про створення на замовлення об’єкту права інтелектуальної власності та передачу виключних майнових прав”.
У наведеному випадку і акт доречно назвати відповідним чином. Наприклад, “Акт передачі-прийому виконаних робіт, об’єкту права інтелектуальної власності та майнових прав на нього” або “Акт передачі-прийому Програмного додатку та майнових прав інтелектуальної власності на нього”.
Отже, в угоді на розробку передбачається порядок передачі-прийому виконаних робіт і відповідних майнових прав на програмне забезпечення, а в Акті – виконання цього процесу фіксується і підтверджується підписами сторін. У договорі або технічному завданні також обов’язково вказується конкретна форма (формат) передачі збереженого результату виконаних робіт, а також спосіб передачі – програмні засоби за допомогою яких цей процес відбувається, email адреси тощо.
Радимо дублювати передачу створеного програмного забезпечення на фізичних носіях інформації, про що теж вказувати в акті. В акті прийому-передачі наводиться наступна інформація:
- Перелік робіт (послуг), які виконанні (надані) відповідно до положень договору на розробку та технічного завдання до нього.
- Вказівка на передачу створеного за договором об’єкта права інтелектуальної власності. Наприклад, програмного додатку “Онлайн ідентифікатор їстівних грибів”.
- Вказівка на передачу за актом виключних майнових прав на створений об’єкт права інтелектуальної власності або на конкретний об’єм майнових прав, які отримує замовник на створений програмний продукт.
- Розмір оплати за договором про створення софту та актом до нього.
- В акті також зазначається про наявність/відсутність претензій щодо строку, якості та повноти виконаних робіт (наданих послуг) і створеного програмного продукту.
Зразок Акту до Договору на розробку програмного забезпечення.
Ми детально описали процес правового оформлення передачі виконаних робіт (наданих послуг) і відповідних майнових прав на програмне забезпечення. Однак розуміємо, краще один раз побачити ніж 100 разів почути. Тому додаємо для вільного використання розроблений нами типовий бланк Акту передачі-прийому створеного на замовлення Програмного забезпечення та майнових прав інтелектуальної власності на нього.
Посилання для завантаження шаблону документу – Завантажити Акт програмне забезпечення. Текст і положення акту, які потребують уточнення, виділені зеленим маркером. Цей акт легко адаптувати для будь-якого договору про створення на замовлення об’єкту права інтелектуальної власності. Будь ласка, використовуйте свідомо.
Які підстави припинення договору і чи слід вказувати конкретний строк дії Договору?
Найбажанішою для обох сторін договору підставою для припинення є повне і всебічне виконання договору кожною його стороною. Тобто, належним чином розроблене на замовлення і передане програмне забезпечення, а також своєчасно та у повному обсязі проведена оплата, разом створюють підставу для закономірного і бажаного припинення дії договору.
Права породженні договором на розробку – особисті немайнові права та майнові права на створений об’єкт права інтелектуальної власності будуть чинні і надалі, після припинення дії договору.
У тексті угоди часом прописуються і інші підстави припинення договору. Не будемо наводити всі потенційно можливі підстави припинення та збільшувати і без того значний об’єм цієї публікації. Разом з тим, правильно буде передбачити в договорі механізм припинення його дії за домовленістю сторін. При цьому вказується у який строк і яким чином ініціатором припинення договору повідомляється інша сторона договору, які наслідки припинення для кожної сторони тощо.
Щодо конкретного строку дії договору на розробку:
По-перше, це не те саме, що і строк виконання обов’язків, зокрема з розробки софту або оплати. По-друге, найкращим варіантом якраз і буде прив’язати строк дії договору на розробку до повного виконання розробником і замовником всіх своїх обов’язків за договором. Наприклад, “Цей договір діє до повного виконання сторонами своїх зобов’язань”. Також, окремо зазначається застереження про строк чинності майнових прав на програмне забезпечення.
Agile та Waterfall – які особливості умов договору в кожному з варіантів?
Відповідь на це питання фактично вже надана на початку даної статті. Ще раз підкреслимо важливість технічного задання для обох випадків, і Agile і Waterfall.
Для Agile моделі відносин більшого значення мають конкретні обов’язки сторін у відповідному розділі договору на розробку. Договір, складений під Waterfall, може мати порівняно стислий перелік обов’язків розробника безпосередньо у тексті договору на розробку, оскільки натомість маємо значний за обсягом, деталізований і послідовний перелік умов технічного завдання, практично скрипт процесу розробки.
Якщо Ви Замовник і у Вас немає досвіду укладення подібних договорів, однак є необхідність сформувати чіткі вимоги і критерії до процесу розробки ПЗ, то доречно залучити допомогу іншої команди розробників для того щоб професійно скласти технічне завдання.
При узгодженні технічного завдання розробникам програмного забезпечення слід звертати увагу на інший аспект. Так, варто переконатись, що Ваша команда в принципі здатна виконати технічне завдання, сформоване Замовником. Справа йде не про теорію, а про можливість реалізувати завдання на практиці у строки, за плату та на умовах, що передбачені положеннями Договору на розробку програмного забезпечення.
Кінцевий продукт має 100% відповідати вимогам, наведеним у технічному завданні. Разом з тим, за Waterfall розробник софту отримує і суттєву перевагу. Угоди на розробку, що створюються під Waterfall, зазвичай не передбачають можливості для Замовника вносити в процесі розробки софту будь-які значні зміни до раніше наданого технічного завдання.
Як правильно вказати технічне завдання на розробку софту у договорі?
Технічне завдання має бути оформлено з дотриманням тих самих вимог, що і сам договір на розробку програмного забезпечення. Роздрукований письмовий варіант технічного завдання засвідчується підписом сторін на кожній сторінці, так само як і договір. Ви запитаєте – як бути якщо текст технічного завдання викладено на 20, 100, а то і 400 сторінках? Проблем немає. Прошиваєте весь текст ТЗ та скріплюєте його біркою з підписами уповноважених представників сторін.
Технічне завдання оформлюється у якості одного з додатків до Договору на розробку та є його невід’ємною частиною. Радимо наводити у технічному завданні повні реквізити сторін договору та вказувати посилання на реквізити договору. Аналогічні поради актуальні і для акту, за яким передаються результати робіт або надані послуги.
Чи можна нотаріально посвідчити договір на розробку програмного забезпечення? Так, можна. Така процедура буде доцільною за значної “ціни договору” і надасть сторонам договору додаткову гарантію його належного виконання.
Щодо змісту Технічного завдання до Договору на розробку:
Головне, це максимально можлива і допустима деталізація, особливо при жорсткій та послідовній Waterfall моделі або V-моделі. Необхідно всебічно охопити процес розробки та стадії створення програмного забезпечення. Про оформлення технічного завдання у нашій консультації – Оформлення ТЗ.
Що ж до Agile – майже той самий рівень деталізації, тільки з акцентом не на процес, а на результат. Відповідно, викладаєте “все” – починаючи від вимог, функцій та специфікацій, яким має відповідати програмний продукт, і закінчуючи особливостями координації дій замовника і виконавця на різних стадіях розробки. Положення про координацію дій – це свого роду розширення прав і обов’язків сторін в додаток до положень самого договору.
Юридичні поради розробникам програмного забезпечення:
- Якщо при виконанні своїх зобов’язань за договором на розробку ПО використовуєте найману працю або отримуєте послуги від фізичних-осіб підприємців – подбайте про ревізію положень відповідних угод. Умови трудового договору та/або договору про надання послуг з ФОП мають містити всі необхідні застереження (про авторські права, про нерозголошення конфіденційної інформації).
- Окрім окремих положень про нерозголошення конфіденційної інформації в рамках “договорів з субпідрядниками” або трудових договорів подбайте про укладення повноцінних NDA (Non-disclosure agreement). Про особливості застосування NDA на практиці читайте у нашій статті – Що таке Угода про нерозголошення?
- Якщо Ви виступали стороною Договору на розробку програмного забезпечення як фізична особа і є безпосереднім автором програмного забезпечення, жодні умови договору не можуть позбавити Вас особистих немайнових прав. Що це значить в практичній площині? Попри будь-які прописані заборони Ви маєте право вказувати на своє авторство та наводити розроблений програмний продукт у своєму так би мовити “портфоліо”.
- У випадку, коли за умовами договору оплата проводиться на підставі акту про надані послуги (виконані роботи), подбайте про наявність у договорі відповідних положень на той випадок, коли інша сторона без належної мотивації відмовляється підписувати акт зі свого боку. Це упередить можливі зловживання та передбачить механізм отримання оплати за виконану роботу.
- За можливості закладайте порядок виплати винагороди за договором у формі повної або часткової передплати.
- При укладенні угоди з нерезидентом у двомовному варіанті (наприклад, англійська та українська), намагайтеся передбачити пріоритет україномовної версії при виникненні розбіжностей між англійським та українським текстами угоди.
- Аналогічно, за можливості, вказуєте на порядок розгляду спорів, зручний перш за все для Вашої сторони. Такі положення можуть здаватися дрібницями, проте якщо справа дійшла до суду, то дрібниці мають звичку обертатись на великі проблеми.
- Зберігайте роздруковані варіанти Договорів на розробку програмного забезпечення, інвойси (рахунки-фактури), додатки та акти до них. Первинна документація може знадобиться і в банку і в податковій (при проходженні перевірки) і в суді (у найгіршому випадку).
Особливості укладення договору на розробку програмного забезпечення з фізичною особою, яка не має статусу підприємця.
У разі, коли сторона замовника представлена ФОП або юридичною особою, а розробником виступає фізична особа, яка не має статусу підприємця, замовник бере на себе обов’язки податкового агента.
Що це значить для замовника? За таких умов, замовник сплачує від імені фізичної особи податок на доходи фізичних осіб та військовий збір, а також звітує до ДФС. Перш ніж укладати угоду з фізичною особою без статусу підприємця, порадьтесь з бухгалтером та попередьте такого фрилансера про податкові зобов’язання, які будуть вирахувані з його доходу.
Як замовити договір на розробку програмного забезпечення?
Підсумовуючи нашу заочну розмову можемо прийти до висновку – детальне вивчення положень договору перед його підписанням гарантує Вашу юридичну безпеку. Якщо Вас не влаштовують окремі положення договору (при цьому, неважливо, хто Ви за договором – замовник або виконавець), то заявляйте про них, складайте, пропонуйте і підписуйте протокол узгодження розбіжностей.
Переконані, при попередньому ознайомленні з положеннями будь-якого договору на розробку програмного забезпечення, Вам обов’язково допоможуть наші 5 питань і відповідні рекомендації. Не забувайте про професійну юридичну допомогу, за якою можете звернутися до юристів Legal Support.
Проведення правового аналізу договорів, написання протоколів розбіжностей, внесення змін до договорів, консультація і звісно складання договору на розробку програмного забезпечення – складові частини комплексної юридичної допомоги. Вся необхідна правова допомога доступна у будь-якому місті України (Харків, Львів, Одеса, Київ або Ужгород). Для цього існує онлайн формат, який економить Ваш час та ресурси.
Відтак, замовити і отримати дистанційно договір на розробку програмного забезпечення, смарт-контракту або інших об’єктів права інтелектуальної власності зручніше ніж шукати потрібних фахівців у рідному місті. Як Ви напевно здогадались, юристи Legal Support спеціалізуються на розробці подібних договорів і супутніх документів.
Дякуємо що були з нами! Дотримуйтесь порад, замовляйте професійну розробку документів і юридичні проблеми оминуть Вас стороною. Як завжди, наснаги і успіху Вашій справі! Контакти юристів: +38 050 643 79 03 та +38 063 626 85 23.
Юрист, засновник NGO Legal Support Євгеній Мовчун
Договір на розробку і 5 корисних запитань