Смените все пароли в системе (SQL Server, SVN, панель управления).
Настройте правильно брандмауэр (ограничение по IP к SQL Server, закрыть все лишние порты и т.д.).
Сделайте настройки на SQL сервер (закрыть доступ к sa, можно вообще внешний доступ отключить в SQL Server).
Правильно установите настройки приложения на production среду (убрать режим отладки, отключить трассировку, настроить локальное подключение к базе, изменить ключи шифрования, поменять настройки/пароли на почте).
Обеспечьте доступ только тем лицам, которые будут назначены на сопровождение проекта на этапе эксплуатации.
Проработайте в системе создание резервных копий базы данных и файлов приложения.
Проработайте план восстановления приложения после краха базы, краха сервера или другого форс-мажора. Проработайте всевозможные риски и соответствующие меры/инструкции.
Также необходимо настроить дополнительные сервисы, а именно:
Мониторинг доступности приложения (например через UptimeRobot).
Периодическое создание бекапов (либо внутри сервера, либо через сервис хостера, который предоставляет сервер).
Мониторинг параметров сервера. Есть специальные инструменты (SNMP), которые позволяют это делать. Для этих задач вам потребуется системный администратор.
Проверка работы почты, отправки СМС. Здесь вам необходимо создать регламент периодической проверки отправок. Иначе есть риск не получать важнейшие сообщения по системе.
Следующий шаг, который вы должны сделать – это перевести все сервисы в боевой режим. Это может быть, к примеру, прием платежей на сайте, отправка СМС и др. Проверьте, что они корректно работают в боевом режиме. Вы немного потратите средств на это – это лучше, чем спустя месяц узнать, что у вас, оказывается, не работает регистрация через социальные сети или прием платежей.
Далее мы должны подключить корректно скрипты аналитики и провести первичную поисковую оптимизацию проекта, если это необходимо. Это включает в себя следующие мероприятия:
Проверить sitemap.xml
Проверить robots.txt
Зарегистрировать сайт в Google и Yandex
Проверить, что везде корректно установлены title и description в соответствии с набором ключевых слов (семантическим ядром).
Проверить работу редиректов 301, если они используются.
Проверить сайт на наличие битых ссылок.
Провести анализ сайта в различных SEO сервисах, например, cy-pr.com.
Проверить ваш сайт в сервисе валидации HTML и CSS http://validator.w3.org/.
Мы не рассматриваем каждый пункт подробно. Пусть это будет просто чек-листом для вас перед запуском. Более подробную информацию вы сможете узнать у SEO-мастера, который занимается вашим сайтом.
Также не забывайте о документации. Сразу определите набор документации. Для оператора системы, для администратора, для программиста, который будет поддерживать проект.
Документацию можно сделать в формате видеоинструкций или кратких текстовых инструкций. Не нужно делать увесистые тома. Помните, что главное качество хорошей документации – это скорость внедрения человека в систему. Если она слишком сложна, то пользователь инстинктивно будет пробовать работать в системе наугад. Хороший вариант для документации – это презентации или комиксы. Расписывайте типовые процессы в комиксах. Это увлекательно и доступно для всех.
Следующий момент – рекомендую проверить быстродействие вашего веб-приложения в Google Page Speed. Это очень удобный сервис, который позволяет даже новичкам значительно оптимизировать загрузку вашего сайта.
Как лучше вводить пользователей? Правильный ответ: постепенно.
Если у вас система для внешнего пользования, например, интернет-магазин, то сначала дайте небольшую рекламу и посмотрите на активность пользователей через аналитику. Тем самым вы на небольшом объеме сможете понять – есть ли ошибки на сайте.
Если у вас система для внутреннего пользования, например, CRM, то сначала дублируйте процессы в новой системе и в старой (например, это может быть Excel) + переводите не всех пользователей, а только 1-2 человек. Таким образом, вы сможете в миниатюре начать работу системы, постепенно подключая новых пользователей и со временем отключив старый метод работы.
Очень большая ошибка сразу одним махом вводить всю систему – делая это, вы закладываете риски получить крайне негативные результаты:
Будут потеряны деньги, например, на массовую рекламу.
Будет утрачена лояльность вследствие критических ошибок.
Возникнет напряженность в отношениях заказчика и разработчика. Заказчик в этом случае будет винить в неудаче разработчика. Частично он будет прав, но лишь частично: на стадии эксплуатации риск возникновения ошибок очень велик, и заказчик должен заранее обработать этот риск. Постепенное внедрение в эксплуатацию – и есть мера по борьбе с этим риском. Это уменьшает критичность этого риска.
Мы обсудили первый из специальных этапов, которые завершают проект. Рассматривайте ввод в эксплуатацию именно как отдельный этап со своей последовательностью действий, иначе могут возникнуть проблемы, о которых мы говорили в начале главы.
Переходим к последней главе – к завершению проекта. Честно признаюсь, мы очень часто упускаем этот момент в виду быстрого перехода на следующие проекты. Правильно завершить проект – это значит повысить качество будущих проектов. Об этом мы и будем говорить в следующей главе.
Глава 8. Завершение проекта
Самое важное, что вам нужно сделать на этапе завершения проекта – это ретроспектива. По сути, ретроспектива – это взгляд в прошлое. Обычно, – это небольшое совещание между участниками проекта, на котором обсуждаются следующие вопросы:
Что было сделано хорошо?
Что можно улучшить?
Анализ метрик проекта.
С какими проблемами мы столкнулись и как решили?
Какие практики надо сделать постоянными?
Получение обратной связи для каждого члена команды в плане участия в проекте.
Результаты подобного совещания лучше документировать для последующей оптимизации ведения проектов. Ретроспектива вам помогает расти как команде и повышает общую культуру ведения проекта и понимание этого вопроса всей команды, а не только менеджера.
Какие метрики можно документировать:
Оценочные часы / Фактические часы. Насколько мы отклоняемся от оценки?
% брака по задачам.
Вклад в проект исполнителей (количество часов/задач).