Что нужно сделать в первую очередь в проекте, который был передан другому подрядчику?
В процессе разработки программного обеспечения неизбежно приходится сталкиваться с проектами, унаследованными от предыдущего разработчика или агентства. Принятие на себя проекта, выполненного предыдущим разработчиком или агентством, поначалу может показаться сложной задачей. Однако при правильной начальной стратегии этот процесс можно сделать контролируемым и эффективным. За более чем 25 лет работы в этой области я успешно завершил множество унаследованных проектов с нуля. В этой статье я описываю начальные шаги, которые необходимо предпринять при принятии на себя проекта, с точки зрения как владельца бизнеса, так и технической команды.
1. Полностью задокументируйте текущее состояние проекта.
Принимая проект, первым шагом является получение ответов на такие вопросы, как: что это за система, как она работает и на кого она влияет ? Помните, что документация часто бывает неполной или устаревшей.
Чем заняться:
- Понимание архитектуры программного обеспечения: какие технологии используются в проекте, схема базы данных, внешние подключения (API, платежные системы и т. д.)
- Проверка резервных копий базы данных: Когда была сделана последняя резервная копия? Автоматизирован ли процесс резервного копирования? Возможен ли откат в случае возникновения проблемы?
- Сбор информации о сервере и хостинге: Кому принадлежит доменное имя? Действителен ли SSL-сертификат? Достаточны ли ресурсы сервера?
- Идентификация списков клиентов и активных пользователей: Сколько человек используют проект? Если это сайт электронной коммерции, каков ежедневный объем продаж?
Рассматривайте эту работу по документированию не как задание, а как страховку, спасающую жизнь . Получите полное представление о текущей ситуации, прежде чем вносить какие-либо изменения.
2. Анализ кода и рисков
После ознакомления с документацией настало время изучить сам код. Для ваших деловых партнеров, не являющихся техническими специалистами: этот этап похож на осмотр дома архитектором после его покупки.
Чем заняться:
- Технический долг: Сколько быстрых исправлений содержится в коде? Есть ли временные патчи, которые могут вызвать проблемы в будущем?
- Уязвимости в системе безопасности: Надежно ли хранятся пользовательские данные? Защищена ли база данных от SQL-инъекций и XSS-атак?
- Проблемы с производительностью: Сайт работает медленно? Оптимизированы ли запросы к базе данных?
- Зависимости и библиотеки: Актуальны ли используемые программные пакеты? Используется ли устаревшая версия?
После этого анализа составьте список проблем, требующих немедленных действий, и тех, которые можно решить в среднесрочной или долгосрочной перспективе . Например, уязвимость в системе безопасности может быть срочной, но исправление стиля кода может быть достаточным.
3. Тестирование в производственной среде
В большинстве приобретенных проектов существуют различия между средой разработки и рабочей средой. Понимание этого имеет решающее значение.
- Проверка базы данных и файловой системы: для каких файлов и папок работающей системе требуются права на запись?
- Анализ лог-файлов: Какие ошибки произошли за последний месяц и как часто?
- Тестирование резервного копирования и восстановления: сценарий катастрофы: можно ли восстановить данные из резервной копии?
- Автоматизация и cron-задания: есть ли запланированные задачи? Выполняются ли они последовательно?
На этих этапах просто наблюдайте, ничего не меняя. Пока не поднимайте рот.
4. Передача знаний от предыдущего разработчика или организации.
По возможности, проведите двух-трехчасовую встречу до или после того, как вы возьмете на себя управление проектом. В документации не прописаны некоторые вещи — например, «эта учетная запись администратора конфиденциальна, никому ее не передавайте».
Вопросы, которые необходимо задать:
- Что является наиболее проблемной частью проекта?
- Какие изменения чаще всего запрашиваются клиентами?
- Известны ли какие-либо ошибки в коде?
- Кто являются деловыми партнерами или поставщиками услуг (пользователями API и т. д.)?
- Были ли какие-либо планы по выпуску новых релизов в будущем?
Если связаться с предыдущей командой невозможно, проверьте хотя бы сообщения на форуме, системы отслеживания ошибок или отзывы клиентов.
5. Создание протокола связи и системы управления проблемами.
Принимая проект, организуйте не только технические, но и организационные аспекты. Установите четкий канал связи с клиентом или деловым партнером.
- Кто является контактным лицом в чрезвычайных ситуациях?
- Как я могу сообщить об ошибке? (по электронной почте, через систему отслеживания ошибок, Slack и т. д.)
- Когда будут выпущены запросы на изменения и обновления?
- Будут ли проводиться еженедельные или ежемесячные встречи для проверки хода работы?
Принятие проекта на себя — это возможность с самого начала завоевать доверие клиента . Не следует принимать поспешные и пессимистичные решения. Вместо этого, выстраивайте долгосрочные отношения, закладывая прочный фундамент.
Не следует немедленно вносить изменения в приобретенный проект.
Самая распространенная ошибка: новый разработчик или агентство сразу же пытается переписать унаследованный проект. Такой подход рискован и приводит к ненужным затратам. Как я уже упоминал в нашем обзоре планирования затрат на цифровую трансформацию , поспешная смена систем может привести к задержкам.
Вместо этого разумнее заложить прочный фундамент , выявить риски и определить приоритеты.
Приобретены проекты в Алании и Анталии.
В нашем регионе (Аланья, Анталья и Средиземноморский регион) предприятиям туристической, гостиничной, электронной коммерции и недвижимости часто приходится менять агентства для реализации своих проектов. В компании Alanya IT Services я регулярно занимаюсь такими переходами. Наиболее распространенная проблема, с которой я сталкиваюсь, заключается в том, что вместо того, чтобы выполнить проект в первоначальном виде, предыдущее агентство передает его новому. При этом могут отсутствовать документы, быть неизвестны пароли или даже неработоспособный код.
Если вы столкнулись с похожей ситуацией и находитесь в этом районе, вы можете ознакомиться с нашими проектами и примерами работ на нашей странице в Instagram . У меня большой опыт в проектах по поглощению компаний.
Заключение
Успешный запуск проекта, который вы взяли на себя, задает тон всему дальнейшему процессу разработки программного обеспечения. Начните с понимания текущей ситуации, не торопясь. В первые несколько недель следует сосредоточиться на проверке кода, анализе рисков, тестировании и установлении протоколов коммуникации. Таким образом, вы построите прочные отношения с клиентом или партнером и сведете к минимуму будущие проблемы.
Обсудим ваш проект
Опишите идею — отвечу в течение нескольких часов.