Почему необходим спланированный процесс при расставании с разработчиком программного обеспечения
В процессе разработки программного проекта возникают разногласия с талантливым инженером, заканчивается бюджет или проект движется в другом направлении. В этот момент крайне важно знать, что делать, когда вы расстаетесь с разработчиком программного обеспечения. Владельцы бизнеса часто относятся к этому легкомысленно, говоря: «Программное обеспечение готово, мы заплатили деньги, и всё». Однако, если вы не контролируете код проекта, серверы, лицензии и доступ к данным, в будущем вы можете столкнуться с серьезными проблемами.
За 25 лет работы в сфере разработки программного обеспечения я помог многим компаниям хаотично управлять переходными периодами. Заранее спланированный процесс передачи проекта защищает обе стороны, снижает юридические риски и обеспечивает плавную передачу проекта новому разработчику.
Первый шаг: Получение письменного подтверждения права собственности на код.
Код — это сердце программного проекта. После окончания действия соглашения с программистом вы должны владеть всем кодом проекта. Подтвердите это в письменной форме. Если код вам еще не передали, или если оправдания вроде «он зашифрован» или «он хранится на удаленном сервере» остаются необоснованными, это означает, что вы не являетесь владельцем проекта.
- Полный исходный код: программное обеспечение для бизнеса, мобильное приложение, веб-сайт — всё должно быть предоставлено вам в полном объёме.
- Система контроля версий (Git, SVN и т. д.): Если код хранится в репозитории, права доступа и владения должны перейти к вам.
- Документация и комментарии: должно быть ясно, кто написал код. Комментарии внутри кода будут полезны, когда другой инженер продолжит проект после ухода первоначального программиста.
- Подпись и дата: Храните подписанный документ, подтверждающий: «Весь код проекта X был передан лицу Z в дату Y».
Убедившись, что код принадлежит вам, сохраните его в безопасном месте (облачное хранилище, локальный сервер). Эти файлы послужат ориентиром, если другой разработчик возьмется за проект.
Шаг второй: Переоформите на свое имя доступ к серверу, базе данных и хостингу.
Программное обеспечение может работать, но если сервер, управление базами данных или хостинг-сервисы остаются под именем прежнего разработчика, этот человек может в любой момент раскрыть, удалить или заблокировать проект. Вам необходимо устранить этот риск.
- Учетная запись хостинг-провайдера: Сервер (AWS, Linode, Cloudways, Digital Ocean и т. д.) должен быть зарегистрирован на ваше имя, и доступ к нему должен быть только у вас. Отзовите доступ разработчика.
- Администрирование баз данных: Измените пароль администратора для таких баз данных, как MySQL, PostgreSQL и MongoDB. Это предотвратит доступ разработчиков к ним со старым паролем.
- Проверка DNS и домена: Ваше доменное имя должно быть зарегистрировано на ваше имя или, по крайней мере, у регистратора, которого вы контролируете. Получите обратно доступ к DNS от разработчика.
- SSL-сертификат: Вы несете ответственность за продление HTTPS-сертификата. Примите меры, чтобы предыдущий разработчик не получал запросы на сертификаты по электронной почте.
- Стратегия резервного копирования: Убедитесь, что вы настроили систему, которая ежедневно или еженедельно создает резервные копии проекта. После ухода разработчика эта обязанность перейдет к вам или к одному из новых инженеров.
Несмотря на предпринятые шаги, если программист говорит: «Это не моя ответственность», вы должны убедиться, что это четко указано в соглашении. Для получения дополнительной информации о том, что нужно знать при покупке программных услуг, вы можете ознакомиться с соответствующим руководством.
Шаг третий: Лицензии, ключи API и интеграция со сторонними сервисами.
Многие программные проекты используют внешние сервисы: платежные шлюзы (Stripe, PayPal), отправка SMS (Twilio), карты (Google Maps), инструменты искусственного интеллекта и т. д. Проверьте, на чье имя хранятся ключи API и права доступа к этим сервисам.
- Учетные записи сторонних сервисов: платежный шлюз, SMS-сервис, платформа для email-рассылок — каждая из них должна быть зарегистрирована с использованием адреса электронной почты на ваше имя или корпоративного адреса электронной почты.
- API-ключи и секреты: Перенесите API-ключи, хранящиеся в личных учетных записях разработчика, в собственную учетную запись проекта. Обновите эти ключи, чтобы они не стали недействительными после ухода разработчика.
- Лицензии на программное обеспечение: Используемые библиотеки, фреймворки и коммерческие инструменты имеют открытые лицензии (например, MIT, Apache) или коммерческие? Ознакомьтесь с условиями лицензии и убедитесь, что вы соблюдаете условия использования.
- SSL-сертификаты, CDN, межсетевые экраны: ведите письменный учет того, кому принадлежат все эти средства обеспечения безопасности.
Шаг 4: Получение сопроводительной документации и руководства по проекту.
Не менее важны, чем сам код, руководство по проекту и техническая документация. Для того чтобы начинающий разработчик мог понять проект, архитектура системы, структура базы данных, зависимости и этапы установки должны быть четко задокументированы.
- Файл README: описание шагов, библиотек и настроек среды, необходимых для запуска проекта.
- Схема базы данных: структура таблиц, связи, индексы и данные по умолчанию.
- Документация по API: Если проект представляет собой API, то здесь представлены конечные точки, параметры и примеры ответов.
- Внешняя интеграция: какие сторонние сервисы подключаются, как они настраиваются и какие тестовые кредиты предусмотрены?
- Известные проблемы и план развития: Какие части не завершены, а какие функции запланированы на будущее?
Если программист говорит: «Я не буду писать документацию», это значит, что вы не включили её в договор. Для следующего проекта чётко сформулируйте требование к документации в письменном виде.
Шаг пятый: Завершение юридического и финансового урегулирования.
Поставка программного обеспечения должна также включать в себя юридически оформленную доставку. При принятии проекта выполните следующие действия:
- Определите условия окончательного платежа: письменно укажите, что «Окончательный платеж будет произведен после получения кода и документации».
- Подпишите расписку о доставке: документ, подписанный обеими сторонами, в котором указывается: «Проект X был получен в дату X в время Y; после этого застройщик больше не несет ответственности».
- Четко обозначьте права на интеллектуальную собственность: укажите, может ли (или будет ли) программист повторно использовать тот же код для последующих клиентов.
- Укажите гарантийный период: например, «Поддержка при критических неисправностях будет предоставляться в течение 30 дней; после этого обновление будет платным».
Шаг шестой: Передача проекта и переход к новому разработчику.
Если вы собираетесь передать проект на аутсорсинг другому разработчику или агентству, не делайте этот переход без предварительного планирования.
- Анализ кода: Новый инженер должен проанализировать старый код и выявить потенциальные проблемы.
- Тестирование в тестовой среде: запустите проект на тестовом сервере, а не в рабочей среде, и проверьте наличие каких-либо проблем.
- Обмен знаниями между опытными и начинающими инженерами: Опытные программисты должны уделять время обучению новых программистов работе с системой. Это может оплачиваться почасово, но это ценно.
- Ознакомление с работающей средой: новый инженер должен уметь читать журналы сервера, отслеживать производительность и выполнять основные задачи по техническому обслуживанию.
В компании Alanya IT Services мы имеем опыт обеспечения плавной передачи приобретенных проектов. Полная ответственность за ваш проект имеет решающее значение для будущего успеха бизнеса.
Шаг седьмой: Определение ответственности за долгосрочное техническое обслуживание.
После ухода разработчика, кто будет отвечать за поддержку и обновление проекта? Определите это заранее:
- Обновления в области кибербезопасности: операционную систему, базу данных и библиотеки следует регулярно обновлять.
- Мониторинг производительности: необходимо отслеживать ресурсы сервера и выявлять проблемы на ранних стадиях.
- Резервное копирование и аварийное восстановление: Необходимо иметь план восстановления на случай потери данных.
- Незначительные исправления ошибок и запросы на добавление новых функций: будут ли они переданы новому разработчику или первоначальному? Какова будет стоимость?
Для получения более подробной информации об услугах технического обслуживания и поддержки, пожалуйста, ознакомьтесь с руководством по ежемесячной плате за техническое обслуживание .
Заключение: Возьмите проект под контроль и смотрите в будущее.
Когда вы расстаетесь со своим разработчиком программного обеспечения, выполнение семи описанных выше шагов защитит ваш проект и предотвратит будущие проблемы. Самая распространенная ошибка — недооценка этого перехода и вопрос «Где код, какой пароль доступа?» после ухода разработчика. На этом этапе уже слишком поздно, и вы теряете свои переговорные позиции.
Мой совет: даже при заказе услуг по разработке программного обеспечения обязательно включите эти условия в договор. Обязательно обсудите это в начале проекта. Четко укажите: «После завершения проекта код, сервер и лицензии будут полностью моими». Если разработчик возражает против этого, хорошо подумайте, прежде чем начинать сотрудничество.
Компании в Алании, Анталии и Средиземноморском регионе часто обращаются ко мне для решения подобных проблем. Если у вас есть вопросы по проекту, который вы сейчас курируете, вы можете связаться с нами через нашу страницу в Instagram или напрямую с агентством. Никогда не поздно заняться управлением своим программным обеспечением.
Обсудим ваш проект
Опишите идею — отвечу в течение нескольких часов.