Desktop-приложение на Python: 6 вопросов подрядчику до подписания договора
Подрядчика для desktop-приложения на Python выбирают по четырём вещам: есть ли у него похожий сданный проект, кому по договору принадлежат исходники, как он будет обновлять приложение после сдачи и как защищает данные. Цену и сроки сравнивайте в последнюю очередь: дешёвая разработка без исходников обходится дороже.
Почему desktop-проект на Python разваливается после сдачи 💥
Понедельник, 8:40. На складе оптовой компании кладовщики открывают приложение для приёмки товара и не видят остатков. В пятницу бухгалтерия обновила конфигурацию 1С, формат обмена изменился, а приложение читает данные по-старому. Правка небольшая, но исходников у компании нет, поэтому вносить её некому. Приложение писал фрилансер полгода назад. Деньги он получил, проект закрыл, в мессенджере не отвечает.
На руках только готовый .exe. Нанять другого программиста можно, но восстанавливать код из сборки долго и юридически спорно, а права на код по договору никто не передавал. Про исходники в договоре не было ни слова.
Причина почти всегда в договоре и приёмке, а не в самом Python. Заказчик выбирал по цене и красивому демо, приёмку провели по скриншотам, а не по сборке на реальных компьютерах компании. Есть и техническая часть: приложение зависит от многих библиотек, и без зафиксированных версий сборка через PyInstaller, которая вчера работала, сегодня даёт другой результат. Антивирусы, кроме того, регулярно принимают такие сборки за вредоносные.
Ставка здесь: простой людей и сорванные отгрузки. Пока склад работает по бумажке, компания платит за смену и теряет заказы. Переписывание с нуля означает ещё один бюджет и новый срок. Если в приложении лежат персональные данные сотрудников или клиентов, добавляется юридический риск: по 152-ФЗ за обработку данных отвечаете в первую очередь вы как оператор, а не подрядчик, и базы граждан РФ должны храниться на территории России.
Как выбрать подрядчика для desktop-приложения на Python: 6 вопросов до договора ✅
Задайте эти вопросы каждому кандидату и просите письменные ответы. В споре устные обещания не помогут.
- ✓Какие похожие проекты вы сдали и можно ли поговорить с заказчиком? Нужны приложения под Windows с интерфейсом и базой данных. Парсеры и скрипты для этой задачи не показатель.
- ✓Кому принадлежат исходники? В договоре должно стоять, что исключительное право на программу переходит к вам после оплаты, а репозиторий с первого дня лежит на вашем аккаунте. Спросите и про интерфейсную библиотеку: PySide распространяется под LGPL, PyQt под GPL или платной лицензией. Для закрытого коммерческого приложения подрядчик должен объяснить свой выбор.
- ✓Как приложение собирается и обновляется? Ждите конкретики: какой инструмент сборки (PyInstaller или Nuitka), есть ли установщик, как приходят обновления, проверяют ли сборку на чистой Windows. Если у вас остались компьютеры на Windows 7, скажите сразу: Python 3.9 и новее её не поддерживает.
- ✓Что вы передадите вместе с кодом? Минимум: файл с зафиксированными версиями библиотек, инструкцию по сборке, описание структуры базы и тесты на ключевые сценарии. Без этого следующий разработчик будет разбираться в проекте вслепую.
- ✓Где и как хранятся данные? Если в приложении есть ФИО, телефоны или паспортные данные, подрядчик должен назвать место хранения базы, способ шифрования соединения и круг людей с доступом на время разработки. Тестировать лучше на копии без персональных данных.
- ✓Что происходит после сдачи? Уточните гарантийный срок, цену правок, время ответа на обращение и есть ли в команде второй человек, знающий проект. Если разработчик один, его отпуск или больничный останавливает вас.
Как проверить ответы на деле
Слова проверяются работой. Закажите платное тестовое задание на день-два: окно с таблицей и кнопкой, которое читает тестовую базу, упаковано в установщик и запускается на вашем компьютере. Смотрите, как оформлен репозиторий, есть ли README и воспроизводится ли сборка по инструкции без помощи автора. Ещё один сигнал: подрядчик, который называет цену, не задав ни одного вопроса о ваших процессах, угадывает. Хороший кандидат сначала спросит, кто пользуется приложением, сколько человек работает одновременно и что случается, когда приложение недоступно.
Как читать смету
Смета одной строкой «разработка приложения» — плохой знак. В нормальной оценке отдельно стоят аналитика и прототип интерфейса, разработка, интеграция с 1С, тестирование, сборка с установщиком, обучение пользователей и гарантия. Тогда видно, за что вы платите, и можно сравнивать предложения по составу работ, а не по итоговой сумме. Интеграция с 1С заслуживает отдельного внимания: складские и торговые приложения обычно читают из неё номенклатуру и остатки и пишут обратно документы. Если подрядчик предлагает «обмен через Excel», спросите, что будет при смене конфигурации: такие схемы часто ломаются первыми. Как строится нормальный обмен, описано на странице про интеграцию приложения с 1С.
Какой формат работы выбрать: фрилансер, студия или штатный разработчик
Лучшего формата на все случаи нет. Ниже сравнение по главному риску каждого.
| Формат | Когда подходит | Главный риск | Чем страхуетесь |
|---|---|---|---|
| Фрилансер | Небольшая утилита, один сценарий, ограниченный бюджет | Проект держится на одном человеке, его уход оставляет вас без знаний о коде | Репозиторий на вашем аккаунте, документация по сборке, оплата по этапам |
| Студия разработки | Приложение с интеграцией с 1С, несколько ролей пользователей, нужны договор и гарантия | Цена выше, а над проектом может работать не тот специалист, которого вам показали на встрече | Поимённый состав команды в договоре, приёмка сборки, гарантийный срок |
| Штатный разработчик | Приложение дорабатывают каждую неделю, оно встроено в процессы | Найм, отпуск, увольнение, отсутствие ревью кода | Второй разработчик или внешнее ревью, регламент передачи дел |
| Мобильный клиент или расширение 1С | Сотрудникам нужны данные из 1С на месте: склад, выезд, продажи | Не подходит для тяжёлых расчётов и работы с оборудованием за компьютером | Разобрать сценарий работы до начала разработки |
Утилиту для двух сотрудников закроет фрилансер с репозиторием на вашем аккаунте. Если на приложении держится приёмка товара или расчёт заказов, нужна команда: когда один человек уходит, второй продолжает работу. Штатный разработчик оправдан, когда приложение дорабатывают каждую неделю, но и ему нужен напарник или хотя бы регулярное ревью кода со стороны.
Что делать, если подрядчик пропал, а исходников нет 🛠
Действуйте по порядку и не спешите заказывать всё заново.
- ✓Соберите всё, что есть: договор, переписку, акты, доступы, сборки .exe, тестовые базы. Сделайте копии до любых разговоров с подрядчиком.
- ✓Направьте письменное требование передать исходники и документацию с разумным сроком ответа. Если договор молчит о правах на код, на этом шаге нужен юрист.
- ✓Закажите аудит у независимого разработчика. Если код получен, он оценит, что можно чинить, а что проще переписать. Если кода нет, скажет, можно ли что-то восстановить из сборки и стоит ли тратить на это деньги.
- ✓Пока идёт аудит, решите, чем сотрудники работают вместо приложения. Временный табличный учёт лучше простоя.
- ✓Новый договор пишите по правилам из следующего раздела, иначе через год окажетесь в той же точке.
Как предотвратить повторение: что вписать в договор и приёмку 📝
- ✓Работа идёт этапами, оплата за этап проходит после приёмки.
- ✓Исходники и документация передаются на каждом этапе, а не одним архивом в конце.
- ✓Приёмка идёт на вашем оборудовании: сборку запускают на нескольких реальных компьютерах, включая самый старый и самый слабый.
- ✓Перед запуском на всех рабочих местах проходит пилот: неделя на нескольких компьютерах с реальными сценариями.
- ✓Список сторонних библиотек с их лицензиями приложен к договору.
- ✓Гарантия на исправление ошибок и время реакции записаны сроками, а не словом «оперативно».
Если планируете включить приложение в реестр российского ПО, заложите это сразу: заявку подаёт правообладатель, поэтому права на код должны быть оформлены на вас.
Нужен ли вам desktop: когда мобильный клиент или 1С закрывает задачу быстрее 📱
Часть задач, которые заказывают как desktop-приложение, решается иначе. Кладовщику и торговому представителю данные из 1С нужны в руках, а не за столом, поэтому им удобнее приложение на телефоне или терминале сбора данных. Если данные лежат в 1С, клиента можно собрать на 1С:Мобильной платформе или написать нативно и подключить через обмен. Когда клиенты оптовика сами оформляют заказы, смотрите в сторону B2B-приложения с 1С. Desktop лучше там, где нужны тяжёлые расчёты или подключённое оборудование.
Мы делаем мобильные приложения и связываем их с 1С. Разработка стоит от 500 000 ₽. Точную сумму называем после брифа, потому что она зависит от числа экранов, ролей и объёма обмена с 1С. Доработки на стороне 1С считаем по ставке сопровождения, 3 800 ₽/час. Актуальные условия лежат на странице цены и тарифы.
Если ваша задача действительно требует desktop на Python, на брифе скажем это прямо и подскажем, что проверить у других исполнителей. Шесть вопросов из этой статьи задайте и нам: ответы дадим письменно.
❓ Частые вопросы
Сколько стоит разработка desktop-приложения на Python?
Универсальной цены нет: она зависит от числа экранов, ролей, интеграций и требований к данным, поэтому её называют после брифа. Для ориентира: наша мобильная разработка стартует от 500 000 ₽, доработки на стороне 1С идут по ставке 3 800 ₽/час. Если оценка подозрительно низкая, проверьте, входят ли в неё исходники и гарантия.
Кому принадлежат исходники, если приложение писал подрядчик?
Это определяет договор. По закону при заказе программы исключительное право получает заказчик, но только если договор не предусматривает иное, а часть исполнителей прописывает обратное. Зафиксируйте письменно переход исключительных прав после оплаты, держите репозиторий на своём аккаунте и получайте исходники на каждом этапе, а не одним архивом в конце.
Почему антивирус блокирует .exe, собранный из Python-приложения?
PyInstaller упаковывает интерпретатор и код в один файл, а по такому поведению антивирусы иногда принимают сборку за вредоносную программу. Подрядчик должен проверить сборку на чистой Windows с корпоративным антивирусом, подписать .exe сертификатом и дать вашему администратору письменную инструкцию по добавлению в исключения.
Можно ли обойтись мобильным приложением вместо desktop?
Да, если сотрудники работают не за столом: на складе, в выезде, у клиента. Мобильный клиент берёт данные из 1С и возвращает документы. Desktop лучше там, где нужны тяжёлые расчёты, большие файлы или подключённое оборудование. Выбирайте по тому, где и с чем люди работают в течение дня.
Как проверить подрядчика до подписания договора?
Попросите два-три сданных проекта под Windows и контакт заказчика, оплаченное тестовое задание со сборкой установщика и письменные ответы про исходники, лицензии библиотек и поддержку. Уточните, есть ли в команде второй разработчик. Если подрядчик уходит от конкретики про передачу кода, смету можно дальше не читать.
Или позвоните: +7 906 045-28-27 — в рабочее время с 9:00 до 19:00
Читайте также
Остались вопросы? Нужна помощь?
Менеджеры компании с радостью ответят на ваши вопросы, произведут расчет стоимости услуг и подготовят индивидуальное коммерческое предложение.
Бесплатная консультация

