1. Главная
  2.  
  3. Новости
  4.   Не очень странные дела. Почему командная игра все-таки лучше

Не очень странные дела. Почему командная игра все-таки лучше

Недавно случился казус из разряда привычных для веб-индустрии — плохой/хороший заказчик. «Воу, не перегибаете ли палку, господа?» Сейчас все объясним — ситуация показательна и одинаково полезна заказчикам и подрядчикам.

Работаем мы с сайтом заказчика — интернет-магазин автозапчастей. Задача была обновить Битрикс с устаревшей версии 15.6 на последнюю 18. У новой версии новое ядро, а это уже вероятность проблем при обновлении. В нашем случае вообще получается скачок через временной континуум: с версии 15.6 на 18. Мы чувствовали — будет больно.

Запросили заказчика создать копию сайта на поддомене, чтобы не работать по живому — в случае чего быстро и беспроблемно все исправим и сбережем стабильность сайта.

Ремарка 1.0

Сайт заказчика не на дешевом хостинге, а на полноценном сервере. Но не на нашем — и это уже предвещало проблемы

Получаем комментарий от администратора, что на сервере нет места: на сайте очень большие таблицы. Мы насторожились: что за таблицы такие, что занимают все место на сайте. В общем, получили хорошее мотивационное напутствие и задачу.

Делайте по живому… Только аккуратно!

Удивились, задумались… Что ж… 

Началось

Перекрестились, запустили обновление — не устанавливается. Версия php сайта — 5.6, а нужна минимум 7.1. Предлагаем заказчику в 15:00 обновить версию. Администратор сайта соглашается, но… сделать сам и в 20:00. То есть, когда уже никого не будет на работе.

Даже при таком первичном «обследовании» мы уже точно знаем, что обновление будет сложным и с максимальной вероятностью из-за ошибок сайт будет недоступен для посетителей. Рабочий день закончится — в нештатной ситуации техподдержку оказать не получится, по крайней мере быстро. Предупреждаем администратора, но ответа от него не получаем.

Что ж… 19:20. По коням! Мы всем штабом отправились к женам и детям, к теплым очагам и сытным трапезам. В общем, рабочий день закончился.

И вот, утром следующего дня, ровно в 9:00 приходит смс-клич от гендира:

Алярм! Сайт сломался!

Совпадение? Не думаем.

В 9:30 получаем письмо от администратора: php обновили — сайт повис. Срочно собираем группу проекта в 09:20. Ставим администратору задачу: Сделать откат версии php на прежнюю 5.6! К 12:00 откатили все изменения — сайт заработал.

Продолжается

Делаем в Битриксе «мониторинг производительности» — хотим разобраться с совместимостью версий. Это был ящик Пандоры. Тест вскрыл такое количество ошибок, что стало даже удивительно, как сайт работал до сих пор и неудивительно, почему повис.

Пишем об этом администратору и получаем ответ настоящего русского человека:

И так работало все. Так всегда было, исторически сложилось.

Приятно, что в нашей стране все-таки чтят традиции.

Ремарка 2.0

Решили сделать копию на своем сервере: быстро, не ждать уже согласования сметы на тестовые работы, ответ администратора, переписки.  Обычно у нас простой безотказный принцип: создали, протестировали, внедрили. В этот раз сделать сразу не могли — до проблемы заказчик был против копировать свой сайт на любой другой сервер

Начали создавать копию сайта, чтобы перетащить к себе на сервер — опять беда: в базе данных 11 «кривых» таблиц. Попробовали запустить хотя бы так: сайт повис — база данных отвалилась.

Администратор замахнулся, взметнул копье:
— А кто запустил процесс исправления таблиц?
Мы в полной боеготовности, отражаем удар:
— Если делать — делать хорошо! Что это за сервер такой, что простое восстановление таблиц повесило сайт!

Бились-бились и добились-таки. С горем пополам перетащили копию сайта вместе с ломаными таблицами к себе на сервер — разбираемся.

В пятницу приходит сообщение. В 20:00… 

Весь день с утра у нас не работает обмен с 1С: заказы не приходят, товары не приходят, наличие не синхронизируется.

Уже в 20:30 мы отреагировали и запросили лог обмена. Могли бы и вовсе сесть разбираться. Но пока ждем ответа от администратора.

To be continued… 

Крылов напоминает

Мораль сей басни такова — для всех:

  1. Перед работами добиться от клиента нюансов: любые детали облегчают работу, уменьшают количество бессмысленных итераций и переливания из пустого в порожнее. Есть ли другие подрядчики или сторонние исполнители, какую часть работ они выполняют. С кем из их команды можно взаимодействовать, кто со стороны клиента контролирует и отвечает за работу всех подрядчиков.
  2. Идти на риск, если это выгодно делу и не ждать утверждений с заказчиком и другими сторонами. В нештатных ситуациях брать ответственность: создавать, исправлять, внедрять — не дожидаясь согласований. Главное — успеть предотвратить провал.
  3. Напоминать клиенту, что свои действия в проекте нужно согласовывать со временем работы подрядчика, ибо чревато простоем бизнеса. Напоминать клиенту, что предупреждать подрядчика в максимальной полноте обо всех нюансах — вот это хорошо.
  4. Заметка самим себе: всегда тщательно изучать сайт заказчика и отыскивать возможные скрытые «грабли».
  5. В веб-индустрии нет «нерабочего» времени. Но все-таки лучше, когда оно есть.

В этот раз мы смогли ограничить все сложные работы только самописным скриптом обмена с 1С. Но и это еще не конец — у нашей истории есть продолжение, скоро и его опубликуем. В конце главный герой всех укладывает на лопатки и побеждает силы зла.

Вот такие не очень странные дела. Почему не очень? Потому что ожидаемо: чем дальше продвигается проект, тем сложнее исправить ошибки в самой основе. И ожидаемо, что сообща результат лучше и проще прогнозируем.

Упрощенная схема нашей работы такая: создаем отточенную концепцию, создаем и анализируем тестовый проект внедряем решение, дополняем-расширяем постепенно. И внедряем тогда, когда все участники проекта в сборе и готовы в случае чего сразу же побеждать нештатные ситуации. Или как мы их называем — нештатчики.

Всем внимательности и синергии. И меньше нештатчиков.