Право Natalya Fadeeva
1 992

Чек-лист договора подряда для разработки ПО: на что смотрим

ПО создается работниками в рамках служебного произведения или внешними подрядчиками по гражданско-правовым договорам. Что не забыть указать в договоре с подрядчиком - ниже в чек-листе.

В закладки
Аудио

Про служебные произведения подробнее здесь.

С внешними подрядчиками заключаются, как правило, договоры подряда или реже - договоры авторского заказа. Подрядчиком по договору подряда может быть как физическое, так и юридическое лицо, а по договору авторского заказа – только физическое лицо.

Наличие каких условий проверяем в договоре подряда на разработку ПО:

  • Описание того, что собственно будет создаваться

Нужно достаточно подробно указать, что будет создавать подрядчик. Если ПО сложное, можно составить техническое задание.

В договоре указываются этапы, сроки, стоимость, суть работ (описание, характеристики, функциональность, другие пожелания и прочее).

Клиентам - подрядчикам обычно я советую обратить особое внимание на то, как указывается стоимость работ. Чем подробнее она указывается в отношении разных работ в рамках этапа, тем проще будет посчитать стоимость работ при расторжении договора или в суде (например, при взыскании денег с подрядчика, потому что он не сделал работы). Суд для определения объема выполненных работ по созданию ПО и их стоимости привлекает эксперта, поскольку самостоятельно не может решить этот вопрос. Эксперт посмотрит ваш договор и ваше ТЗ, и чем понятнее и подробнее оно будет, тем проще будет эксперту ответить на вопрос, какой объем работ выполнен и какая стоимость выполненного.

В моей практике была такая ситуация: заказчик заказал разработку сайта интернет-магазина. Впоследствии заказчик обратился в суд к подрядчику за взысканием части уплаченных сумм в связи с обнаруженными недостатками. Одним из таких недостатков заказчик указал, что сайт не адаптировался хорошо при входе с мобильного телефона. При этом в техническом задании такая адаптация вообще не упоминалась.

Истец в суде говорил, что он думал, что такая адаптация подразумевается как стандарт на рынке, а ответчик – что такого стандарта нет. А сейчас встаньте на место судьи: ему вообще может быть неизвестно, стандарт или это. Истец в суде не доказал, что такая адаптация – это стандарт. С учетом того что и в документах ничего не сказано, суд решил, что стороны и не договаривались об этом, а значит, ответчик и не должен был делать. В итоге - сторона не достигла того, ради чего пошла в суд.

Это как иллюстрация того, что техническое задание должно быть достаточно подробным, и стороны должны прописывать свои пожелания.

  • Как будут вноситься правки при создании ПО

Часто бывает, что в ходе создания программы, заказчик просит внести те или иные правки. Если вы подрядчик, то имеет смысл либо ограничить количество таких изменений в договор (чтобы не наработаться бесплатно), либо согласовать заранее дополнительную оплату или механизм ее расчета за внесение таких правок.

Риск несогласования этого момента: подрядчик, внося правки по желанию заказчика, может выйти за сроки, заказчик может потом ссылаться на этот факт для снижения стоимости работ подрядчика либо вообще говорить о срыве проекта, расторжении договора и взыскании уплаченных сумм.

Поставьте опять себя на место судьи: вы видите, что у заказчика есть право просить внести правки, при этом количество/существенность правок не ограничена, а значит, подрядчик должен вносить такие правки в рамках согласованной цены договора. Хотите по-другому? - укажите в договоре.

  • Что будет передаваться заказчику по итогу

В договоре нужно прямо указать, что будет передаваться заказчику: объектный код или исходный код тоже, передается или нет документация. Если не указать про передачу исходного кода, то потом заказчику может быть очень сложно вносить изменения в такую программу.

Кроме того, целесообразно указывать, как будет передавать программа: на материальном носителе или загружаться на какой-либо ресурс.

  • Передача исключительных прав заказчику

Ключевое отличие создания ПО по договору подряда от служебных произведений заключается в том, что закон в отношении подряда не содержит презумпции, что все исключительные права на что создано подрядчиком, автоматически принадлежат заказчику. Это значит, в договорах подряда нужно особое внимание уделить пунктам о передаче исключительных прав заказчику (когда передаются, сколько стоят).

Если не будет такого условия: заказчик будет вправе использовать результат только для своих внутренних целей (по сути у него будет только лицензия). Использование результата на основании лицензии потенциально может создать заказчику проблемы в будущем.

  • Отдельно стоимость передачи исключительных прав и отдельно стоимость работ

Такое разграничение целесообразно с налоговой точки зрения, если компания на ОСНО: передача исключительных прав освобождается от НДС, а сами работы – облагаются НДС. Если указано, что «стоимость отчуждения исключительных прав включена в стоимость работ», облагаться НДС будет вся сумма, поскольку нельзя выделить стоимость работ из общей суммы.

Как итог: в бюджет вы заплатите больше налогов, чем могли бы.

  • Сроки

В договоре следует указывать сроки на разные случаи: сроки выполнения работ, сроки принятия заказчиком, сроки тестирования ПО, сроки устранения недостатков, сроки согласования заказчиком результата (включая промежуточные этапы, если договором предусмотрены этапы), сроки направления заказчиком информации при запросе ее подрядчиком.

Сроки могут указываться по-разному:

- указание срока, к которому все будет выполнено,

- указание сроков по каждому этапу и когда все будет выполнено.

Рецепта, как правильно указывать сроки, – нет.

Однако я часто сталкивалась с такой ситуацией: указаны календарные сроки выполнения каждого этапа (например, первый этап - до 21 декабря 2018 года, второй - до 17 января 2019 года), а потом подрядчик не укладывается в один этап, потому что заказчик не согласовывает быстро или быстро не предоставляет информацию, материалы. В итоге: все сроки поехали, негодование заказчика растет, и он начинает обвинять подрядчика в срыве сроков, угрожать расторжением договора, судом.

Вариантом решения может быть: указывать сроки выполнения этапов, но делать оговорку в договоре (или дополнительно в техническом задании), что (1) сроки согласования заказчиком промежуточного результата не включаются в сроки выполнения работ, и (2) сроки, установленные для подрядчика, продлеваются, если заказчик не предоставляет информацию/не согласует что-то в течение [●] дней.

  • Акт принятия работ

Работы могут приниматься поэтапно или только итоговый результат. Но если вы исполнитель, в договоре важно указать условие, что если вы направляете акт о принятии итогового результата, а заказчик не реагирует в течение указанного в договоре срока, то вы вправе подписать акт в одностороннем порядке, и заказчик не вправе будет оспаривать данный факт.И когда такая ситуация наступает - вы подписываете акт в одностороннем порядке.

Зачем это нужно: чтобы в случае суда, подрядчик сослался на этот односторонне подписанный акт как на факт принятия заказчиком результата работ и возникновение обязанности оплатить работы. И уже заказчик будет оправдываться, почему он не подписал акт вовремя и почему не направил свои замечания. Наличие такого акта, конечно, не освобождает подрядчика за недостатки в результате работ (которые может выявить экспертиза), но суд может увидеть злоупотребление со стороны заказчика в связи с непринятием работ.

  • Открытое ПО и «отравление кода»

Если вы заказчик, то стоит подумать, насколько вам требуется написать запрет на использование подрядчиком открытого кода.

Связано это с тем, что такие лицензии подразумевают определенные ограничения по использованию объектов, которые создаются с их помощью (коммерческое/не коммерческое использование, предоставление/непредоставление исходного кода программы, созданной с использованием таких лицензий). США и Европе известны споры, связанные с нарушениями использования копилефтных лицензий, и большими суммами штрафов по итогу.

В России таких споров я пока не видела. Но если вы разрабатываете для иностранной компании, или наоборот – вы иностранная компания - заказчик, стоит поразмыслить над этим условием. Или, как минимум, попросить у подрядчика список лицензий, который тот использовал при выполнении проекта, чтобы хотя бы просто знать.

Здесь, конечно, не все рекомендации, но одни из самых важных, по которым вы можете проверить договор на разработку ПО с внешними подрядчиками.

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Natalya Fadeeva", "author_type": "self", "tags": [], "comments": 10, "likes": 23, "favorites": 102, "is_advertisement": false, "subsite_label": "legal", "id": 53954, "is_wide": false, "is_ugc": true, "date": "Thu, 20 Dec 2018 20:11:37 +0300" }
{ "promo": {"title":"\u0411\u0435\u0441\u043f\u0438\u043b\u043e\u0442\u043d\u0438\u043a \u0432 \u0412\u0435\u0433\u0430\u0441\u0435","order_id":0,"state":80,"description":"\u0420\u0430\u0441\u0441\u043a\u0430\u0437 \u00ab\u042f\u043d\u0434\u0435\u043a\u0441.\u0422\u0430\u043a\u0441\u0438\u00bb \u043e CES","email":"kontsarenko@gmail.com","button_text_id":0,"link":"https:\/\/vc.ru\/yandex.taxi\/56184-bez-cheloveka-v-voditelskom-kresle-ne-kataetsya-nikto-a-my-nachali","app_store_link":null,"google_play_link":null,"color_id":1,"rejection_reason_text":null,"image":"{\"type\":\"image\",\"data\":{\"uuid\":\"fde0aad4-708e-e885-d18c-427be9d10fcd\",\"width\":488,\"height\":487,\"size\":70187,\"type\":\"jpg\",\"color\":\"1a1513\",\"external_service\":[]}}","total":15000,"with_payment":false,"dates":"[{\"year\":\"2019\",\"month\":\"01\",\"day\":\"24\",\"available\":\"true\",\"price\":\"15000\",\"discount\":\"0\",\"format\":\"backend\"}]","hits_count":45158,"scrolls_count":0,"clicks_count":135,"hits_limit":0,"scrolls_limit":0,"clicks_limit":0}, "link": "https://vc.ru/redirect?hash=1a74d55c23feefca512c69875bff37fcbe384ca617a5148499bcd799df76df7f&component=booster&id=113&type=daily&target=entry&url=aHR0cHM6Ly92Yy5ydS95YW5kZXgudGF4aS81NjE4NC1iZXotY2hlbG92ZWthLXYtdm9kaXRlbHNrb20ta3Jlc2xlLW5lLWthdGFldHN5YS1uaWt0by1hLW15LW5hY2hhbGk=", "buttonText": "Узнать", "location": "entry", "id": "113" }
{ "id": 53954, "author_id": 82989, "diff_limit": 1000, "urls": {"diff":"\/comments\/53954\/get","add":"\/comments\/53954\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/53954"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199120, "possessions": [] }

10 комментариев 10 комм.

Популярные

По порядку

Написать комментарий...
1

Хорошая статья, спасибо.

В итоге - сторона вы достигла того, ради чего пошла в суд.

Не совсем понятное предложение.

Ответить
0

Исправила описку. Спасибо.

Ответить
1

Большое спасибо, очень полезно, прямо сейчас как раз на стадии подписания именно такого договора. Причем в две стороны - и с заказчиком, и с исполнителем. Вот бы еще пример такого договора - цены бы не было! Но и на том спасибо, прояснилось многое.

Ответить
0

Лучше конечно договор стандартный не брать, а прорабатывать для себя. Потому что ситуации у всех разные, нюансов много, поэтому стандартный договор может не учесть всего.

Ответить
0

Это понятно, но базовые какие-то вещи ведь существуют? Определения и т.п. Общие какие-то места. Чтоб самому не выдумывать формулировки....

Ответить
0

Это да. Как правило, у любой компании, которая занимается разработкой, есть свой шаблон. А общие шаблоны можно посмотреть в правовых базах или в интернете, но с доработкой. И лучше доработка юристом.

Ответить
0

Интересная статья про функциональные и нефункциональные требования к продукту: https://www.dotnetcurry.com/project-management/1462/non-functional-requirements-nfrs. Допустим, нужно реализовать поиск в приложении. Он реализован, но работает 30 секунд, а не 2. Функция есть? Есть, но то, как она работает, никуда не годится. Эти вещи тоже надо прописывать. На самом деле тысячи ньюансов. Как было замечено, адаптированная версия для мобильного приложения совсем не подразумевается. А какие браузеры поддерживаются (если речь о сайте)? А что если сайт -- SPA, и нормально не индексируется. Тогда нужно делать отдельную выдачу для поисковых ботов, что опять же нельзя рассматривать как само собой разумеющееся.

Ответить
1

обычный подход, в начале создается прототип, который вообще не работает, но демонстрирует "идею продукта"
на следующей стадии, этот прототип переводят в худо бедно работающую версию, которая хоть как-то но работает.
на следующей стадии делается версия, которая работает лучше.
Еще на следующей стадии делается версия которая не только лучше работает, но и начинает делать что-то реально полезное и тд и тому подобное.
В технически сложных стартапах невозможно перепрыгнуть все эти стадии, а также продумать и впихнуть все хотелки в один этап.

Ответить
0

Если ПО сложное, можно составить техническое задание

НУЖНО!!!

И вообще-то его нужно составлять в любом случае, даже если ПО несложное.

Ответить
0

Речь идёт о том, что описание может быть сделано в приложении к договору. А если ПО сложное, то обычно делается отдельный документ - техническое задание.
Я не имела в виду, что если ПО несложное, то не нужно его описывать подробно.

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Приложение-плацебо скачали
больше миллиона раз
Подписаться на push-уведомления
{ "page_type": "default" }