GitLab как доказательство в суде. Как история коммитов помогла разработчику не вернуть 2,7 млн рублей
Компания заказала разработку платформы пропускной системы, мобильное приложение и сервис. Заплатила 2 696 000 рублей. Получила исходники, зарегистрировала программу в Роспатенте через аффилированное юрлицо, опубликовала приложение на RuMarket и в AppStore. А потом направила разработчику уведомление об отказе от дого...
Компания заказала разработку платформы пропускной системы, мобильное приложение и сервис. Заплатила 2 696 000 рублей. Получила исходники, зарегистрировала программу в Роспатенте через аффилированное юрлицо, опубликовала приложение на RuMarket и в AppStore. А потом направила разработчику уведомление об отказе от договора и потребовала вернуть все деньги как неосновательное обогащение, якобы работы выполнены не были.Дело дошло до двух судебных экспертиз, апелляции и кассации. Разработчик выиграл. Ниже подробно опишем то, что стало ключевым и привело его к победе. Как это стало возможнымТакие дела начинаются одинаково. Разработчик сдал работу, заказчик её получил, какое-то время всё шло в штатном режиме - переписка, правки, уточнения. А потом что-то пошло не так. То ли ожидания разошлись с реальностью, то ли бюджет закончился раньше, то ли просто пришло понимание, что можно попробовать не платить. Дальше заказчик перестаёт выходить на связь, акты не подписывает, а через какое-то время присылает уведомление об отказе от договора с требованием вернуть всё до копейки.Логика иска в таких случаях проста и внешне выглядит убедительно. Двусторонних актов нет, значит, работы формально не приняты. Раз не приняты, значит, деньги удерживаются без оснований, то есть неосновательное обогащение. Дальше суд, и разработчику предлагают доказать, что работа вообще была и результат он передал.Именно здесь многие проигрывают, не потому что ничего не делали, а потому что делали, но не оставили следов, которые можно было бы положить в основу позиции. Нет приказа о начале работ, нет переписки с чёткой привязкой к этапам, нет фиксации передачи исходников - и тогда даже очевидная для всех участников история превращается в слово против слова.
Связанные теги
Компании и люди
Линия сюжета
AppStore
Последние материалы и связанные ссылки по теме AppStore.
AppStore
Последние материалы и связанный контекст по теме AppStore.
Gitlab
Последние материалы и связанный контекст по теме Gitlab.
Habr
Последние материалы и связанные ссылки по теме Habr.
Habr
Последние материалы и связанный контекст по теме Habr.
Продолжить следить за темой
Переходите к связанным материалам, страницам сущностей и активным линиям сюжета.
Null в Dart: С нуля до капитана
Всем привет! Сегодня я хочу обратить ваше внимание на такой важный концепт в программировании, как null, поведать о его истории и выяснить, как Dart решает проблему работы с null.
Дайджест ИБ-регулирования. Январь-март 2026
Продолжаем серию материалов об изменениях в регулировании вопросов защиты информации. В этом дайджесте расскажем о том, что изменилось в январе-марте 2026.
Парсим MDN и пишем оффлайн RAG-MCP
Привет.В этой технической статье мы на практике разберёмся, что такое RAG, распарсим MDN Web Docs, научимся готовить эмбеддинги, заполним ими векторную базу данных и напишем сво...
Турбулентность: почему компании не способны разработать стратегии развития сервисов и что делать
«Рынок турбулентен» - эта фраза стала обязательным ритуалом открытия любого совещания в IT-бизнесе. Но за ней обычно ничего не следует, кроме констатации факта и беспомощного ра...
Частотный анализ сервопривода или как научить робота правильно ходить
В робототехнике один контроллер принимает решение, а другой следит за его выполнением. Один, командный, вырабатывает общую стратегию поведения, а другой – исполнительный, выполн...
Как я написал распределенный Cron на C с P2P-репликацией и зачем это нужно админам Greenplum
Представьте себе классический кошмар системного администратора или SRE: три часа ночи, в управлении огромный кластер Greenplum на сотню сегмент-хостов, и вам нужно запустить тяж...
Рекламный слот
Встроенный блок в статье
Зарезервированный партнерский слот для релевантных инструментов, сервисов и аккуратных редакционных интеграций.
Похожие статьи
Еще материалы, которые пересекаются по тегам, источнику или категории.
Null в Dart: С нуля до капитана
Всем привет! Сегодня я хочу обратить ваше внимание на такой важный концепт в программировании, как null, поведать о его истории и выяснить, как Dart решает проблему работы с null.
Дайджест ИБ-регулирования. Январь-март 2026
Продолжаем серию материалов об изменениях в регулировании вопросов защиты информации. В этом дайджесте расскажем о том, что изменилось в январе-марте 2026.
Парсим MDN и пишем оффлайн RAG-MCP
Привет.В этой технической статье мы на практике разберёмся, что такое RAG, распарсим MDN Web Docs, научимся готовить эмбеддинги, заполним ими векторную базу данных и напишем сво...
Турбулентность: почему компании не способны разработать стратегии развития сервисов и что делать
«Рынок турбулентен» - эта фраза стала обязательным ритуалом открытия любого совещания в IT-бизнесе. Но за ней обычно ничего не следует, кроме констатации факта и беспомощного ра...
Еще материалы от Habr
Свежие публикации и продолжение темы от той же редакции.
Null в Dart: С нуля до капитана
Всем привет! Сегодня я хочу обратить ваше внимание на такой важный концепт в программировании, как null, поведать о его истории и выяснить, как Dart решает проблему работы с null.
Дайджест ИБ-регулирования. Январь-март 2026
Продолжаем серию материалов об изменениях в регулировании вопросов защиты информации. В этом дайджесте расскажем о том, что изменилось в январе-марте 2026.
Парсим MDN и пишем оффлайн RAG-MCP
Привет.В этой технической статье мы на практике разберёмся, что такое RAG, распарсим MDN Web Docs, научимся готовить эмбеддинги, заполним ими векторную базу данных и напишем сво...
Турбулентность: почему компании не способны разработать стратегии развития сервисов и что делать
«Рынок турбулентен» - эта фраза стала обязательным ритуалом открытия любого совещания в IT-бизнесе. Но за ней обычно ничего не следует, кроме констатации факта и беспомощного ра...
Дополнительное покрытие этой темы
Похожие публикации и близкие по смыслу материалы по этой же теме.
Гибридный поиск по коду в GitLab: как я ускорил поиск по 100+ GitLab-проектам с часов до минут
Когда проектов в GitLab становится много, довольно быстро появляется одна и та же задача: найти, где используется конкретный API, URL, env-переменная или конфигурационный параме...
GitLab CI кажется сложным, если не знать этих трюков: как убрать дублирование и ускорить пайплайны в 3 раза
У вас в GitLab несколько проектов с одинаковым CI? Или просто надоела копипаста в пайплайнах? Каждое изменение нужно отразить в 10 местах? Рассказываем, как сократить код на 56 ...
Как я перенес консольное приложение в Rust + WASM и выложил на GitLab Pages
Перенес консольного приложения в формат, удобный к показу по ссылке:переписал логику на Rust,собрал в WebAssembly и завернул в статичную страницу с терминальным интерфейсом на ч...