Вопросы-ответы

Общая информация

На чем специализируется ваша компания?

Разработка и техподдержка сайтов на Битрикс, Symfony. Специализация на технически сложных всоконагруженных веб-проектах.

Занимаетесь ли вы продвижением (SEO, контекст, SMM)?

Нет

Количество лет разработки на 1C-Битрикс

16 лет (С 2006 года)

Количество реализованных проектов на 1C-Битрикс

Более 200

Примеры самых крупных проектов с full stack разработкой (без учета дизайна) за последние 2 года. Опишите, что делали на проекте.

Несколько ссылок на крупные проекты в нашем портфолио, выполненные в последнее время, с подробным описанием выполненных работ:
https://maximaster.ru/portfolio/ecommerce/tickets-fc-zenit/
https://maximaster.ru/portfolio/ecommerce/fitomarket/
https://maximaster.ru/portfolio/ecommerce/etudesite/ 
https://maximaster.ru/portfolio/ecommerce/portal-yokohama/  

Судя по описанию проектов вы в них почти не использовали битрикс. Я правильно понял? Суть в том, мы на нашем проекте не хотим пока уходить от битрикса, т.к. это вызовет удорожание стоимости проекта, а функциональность плюс минус останется такой же. Поэтому хотелось понять, вы до сих пор работаете с битриксом или уже почти отказались пот проектов на нем? Вам интересно разрабатывать и поддерживать проект на битриксе с учетом ограничений CMS?

Выше перечислены наиболее крупные проекты, которые были реализованы нами в последнее время. Как правило, крупным проектам не хватает функциональности Битрикса, и приходится существенно ее дорабатывать, но тем не менее проекты остаются в архитектуре Битрикса. Помимо этих проектов нами разрабатываются и многие другие попроще, где функциональность не выходит за рамки стандартной Битриксовой. Т.е. с нашей стороны нет никаких проблем разрабатывать и поддерживать такие проекты. Почти все проекты в нашем портфолио сделаны полностью на Битриксе.

Если у вас есть фиксированная ставка в час, укажите ее значение. 

Часовая ставка индивидуальная, в зависимости от сложности задач, условий сотрудничества и т.д.

Количество сотрудников в компании

25+

Юридические моменты

Есть ИП или ООО?

ООО «Максимастер»

Есть возможность ЭДО?

Есть аккаунты в СБИС и Диадок.

Вы готовы перед началом работ подписать соглашение о неразглашении конфиденциальной информации?

Готовы

Время работы

В какие часы вы будете доступны для связи с указанием часового пояса?

Рабочее время с 9:00 до 18:00 по МСК

Какое в среднем время обратной связи вы бы могли обещать нам в случае нашего обращения (не формально, а фактически)?    

Зависит от типа задач, количества текущих задач и их приоритетов. 
Как правило, придерживаемся следующего времени реакции:

  • Авария – до 5 минут
  • Срочная - 1-2 часа
  • Высокая - 1-4 часа
  • Нормальная - в течение рабочего дня
  • Низкая - в течение рабочей недели

Вы готовы брать важные задачи в выходные дни?    

Наш стандартный договор предусматривает работу во внерабочее время по удвоенной ставке.

О вашей компании

Чем вы гордитесь в своей работе? Почему вы считает себя лучше других разработчиков/компаний?

Мы обладаем расширенным уровнем компетенции «Крупные корпоративные внедрения», которую выдает «1С-Битрикс». На данный момент таким уровнем обладают только лишь 20 партнеров из 20 000.

Какие у вас слабые стороны? Над чем стоит поработать?    

Мы мало работаем над продажами, в основном сарафанное радио. Стоит поработать над разными каналами лидогенерации.

Можете ли вы при необходимости предоставить контакты ваших клиентов для получения обратной связи по работе с вами?    

Да, можем передать контакты тех клиентов, которые не будут возражать.

Организационные вопросы 

В какой системе задач вы обычно работаете с заказчиками? Нужна ли она вам? Или можно ограничиться общим чатом?    

В данный момент работаем в системе Redmine, в планах перейти на Tuleap. Система постановки задач является основным инструментом взаимодействия по задачам. Мессенджеры, телефоны, почта и т.п. могут использоваться как второстепенные инструменты коммуникаций, но результаты таких коммуникаций в любом случае должны быть отражены в одном месте (в системе постановки задач).

Как можно избежать ситуаций, когда заказчик описал задачу, программист разработал ее и внедрил, а на моменте тестирования оказалось, что функциональность ведет себя не так, как ожидал заказчик?    

Прежде чем приступать к выполнению задачи, разработчик сперва анализирует ее, задает уточняющие вопросы, после чего формирует техническое задание на задачу, т.е. как он ее видит, при этом стремится убрать из первичного описания задачи все неоднозначности. И это формализованное техническое задание предоставляется заказчику на согласование. И только после согласования ТЗ на задачу и ее оценки, разработчик приступает к ее разработке. Т.о., разное понимание задачи заказчиком и разработчиком сводится к минимуму.

После выполнения работы заказчик говорит исполнителю, что его не удовлетворяет качество и логика работы функциональности. Кто виноват в этой ситуации?    

Логика работы однозначно прописывается в ТЗ, которое формируется перед тем, как приступать непосредственно к разработке, и согласуется с заказчиком. Если разработанная логика не соответствует описанной в ТЗ, то естественно функционал будет переделываться нашей стороной за свой счет, но, как уже отмечалось, мы вникаем в задачу на первом этапе (написание ТЗ), и все недопонимания, если они есть, разрешаются, как правило, на этом этапе. Что касается качества разработанного кода, то мы в работе стремимся придерживаться всех современных тенденций и стандартов разработки. В частности, весь разработанный код проходит через код-ревью другим сотрудником, как правило, более опытным, после этого отдается на проверку заказчиком на тестовом адресе, и только после этого возможен перенос на боевой сервер. Поэтому ситуации с некачественно разработанной функциональностью также маловероятны. Если, тем не менее, от заказчика поступают какие-либо жалобы на качество разрабатываемого функционала, то к каждому такому обращению подходим индивидуально, привлекаем к анлизу других специалистов, вплоть до технического директора. Также по желанию заказчика возможно привлечение к каждой задаче тестировщика для дополнительного тестирования.

Какие этапы вы закладываете в свой график работ при разработке новой функциональности?  

Жизненный цикл задачи у нас такой: Создание задачи, Первая реакция на задачу, Передача задачи исполнителю, Процесс оценки (включая написание ТЗ), Процесс согласования оценки, Выполнение задачи, Код-ревью, Тестирование, Перенос, Тестирование на продуктовой среде, Финализация, Гарантийная поддержка.

Как можно предотвратить проблему, когда мы разработали какую-то функциональность (например, страница товара), выложили ее на сайт, и на следующий день получили сообщение от пользователя, что не работает другая функция, например, заказ товаров в корзине?    

В первую очередь необходимо грамотно разработать архитектуру проекта. Нередко при передаче проекта от других подрядчиков первичный анализ показывает, что архитектура проекта чрезмерно усложнена и запутана, поддержка такого проекта действительно несет за собой риски затронуть одну функциональность при разработке/доработке другой. Поэтому важно в работе использовать программное тестирование (юнит тесты, регрессионное тестирование и т.д.). Когда большая часть проекта покрыта авто-тестами, то подобные ситуации обнаруживаются практически моментально, что не приводит к непредсказуемым последствиям, все выявляется еще на тестовом хосте. Но авто-тесты это дополнительная трудоемкость к выполнению задач, а заказчик не всегда готов доплачивать за эти работы.

В выходной день клиент обнаружил, что сайт упал по неизвестным причинам. Он пишет или звонит вам, вы находитесь на рыбалке с приятелем. Что делать?    

В случае аварии проблема обычно связана с работой сервера, т.е. это вопрос по админской части. На такие случаи даются прямые контакты системного администратора. Он доступен практически 24/7 для решения подобных аварийных проблем. 

Вы занимаетесь мониторингом серверов? Сможете взять на себя ответственность за настройку и обслуживание сервера? Например, чтобы если он «упал», то вы бы раньше нас узнали об этом и приняли соответствующие меры.

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

https://maximaster.ru/services/admin/ 
https://maximaster.ru/services/web-servers/
https://maximaster.ru/services/monitoring/
https://maximaster.ru/services/backup/

Что будете делать в ситуации, когда выполнили свою работу, а клиент задерживает оплату? Он говорит, что у него кассовый разрыв и, к сожалению, сможет рассчитаться с вами только через 1 месяц.    

Стараемся с клиентами поддерживать нормальные человеческие отношения, при возникновении такой ситуации входим в положение и можем подождать. Можем попросить написать гарантийное письмо.

Каких специалистов вы могли бы привлечь для работы над проектом, если клиент готов полностью передать свой сайт вам на разработку и поддержку?    

Дизайнера, фронтендера, веб-программиста, тестировщика, системного администратора. В зависимости от объема задач специалистов может быть несколько.  

Вы были бы готовы взять на себя полную ответственность за разработку, тех поддержку и поддержание работы сайта? То есть сыграть роль аутсорс IT департамента? Или вы все-таки рассматриваете себя как исполнителя, который сделает свою работу и дальше не отвечает за работу системы? 

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

Есть у вас ли какие-то требования к клиенту?    

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

Технические вопросы    

Есть ли у вас опыт работы с системами контроля версий? Если да, то как обычно организован этот процесс?    

Да, более того, это обязательное требование. Все проекты ведем через систему git. Соответственно, если на проекте не развернут git, то его разворачиваем в первую очередь. Затем создается основной тестовый хост, хосты разработчиков.
Разработанная функциональность после код-ревью заливается на основной тестовый хост, где заказчик проводит тестирование. После одобрения правки выносятся на боевой. Эти переносы осуществляет ответственный по проекту.
В случае, если по проекту работает несколько команд разработчиков, то процесс естественно усложняется, тут уже индивидуальный подход.

Какую git систему контроля версий вы будете использовать для работы над проектом заказчика (свой сервер, облако, на вашей стороне или на стороне заказчика)?    

Как правило, используем свой гит-репозиторий на своем сервере. Но есть проекты, где гит-репозиторий на стороне заказчика. Т.е. можно и так, и так.

Предоставляете ли клиенту гостевой доступ к репозиторию? Есть ли там какой-то интерфейс для просмотра изменений?

Мы хостим репозиторий проекта в Gitlab. Если над проектом работает команда, то каждое изменение обычно оформляется в виде Merge Request, который имеет веб-интерфейс для просмотра всех сделанных изменений в рамках этого Merge Request, а также содержит обсуждение разработчиков в процессе Code Review, если этот процесс используется на проекте. При необходимости можем организовать доступ.

Представим, что вы работаете на проекте с другим разработчиком. Вы разрабатываете каталог товаров, а он блог. Как вы организуете процесс разработки и деплоя кода на продакшен по этим двум функциональностям?    

Точка выноса на боевой сайт должна быть только одна. Т.е. нужно будет определиться, кто будет главным разработчиком. И все правки будут стекаться ему, и уже главный разработчик будет выносить все правки на боевой (при условии, что никаких конфликтов при слиянии правок не случилось).

Используете ли вы в своей работе тестирование? Если да, то какое?    

Сквозные ручные и автоматические тесты (selenium-webdriver), автоматические unit-тесты (phpunit, jest) 

На битриксе это все на практике применяется?

Редко, но применяется. Для сквозных тестов без разницы, что внутри.
Касательно unit-тестов - если строго следовать подходу, который требует Битрикс, то написание unit-тестов затруднено, хотя и в ограниченном объеме возможно. Чем больше отходим, тем больше покрытие можно обеспечить.

Оцените от 1 до 5 ваш опыт настройки и администрирования сервера для Битрикс приложения. Опишите, почему вы так считаете.    

5
Многолетний опыт работы, опытный системный администратор, компетенция «Системное администрирование», присвоенная нам компанией «1С-Битрикс» после прохождения очного экзамена нашими системными администраторами

Какая максимальная нагрузка на сервер была у приложений, с которыми вы работали?    

800 000 – 1 300 000 хитов в сутки

Оцените от 1 до 5 ваш опыт разработки на Битриксе. Опишите, почему, вы так считаете.    

5
Многолетний опыт работы с данной системой (с 2006 года), в том числе проекты большой сложности.

Приходилось ли вам заниматься интеграцией сайта с 1С? Если да, то что в этой задаче самое сложное?    

Да, практически во всех проектах требуется интеграция с 1С. Каких-то особых проблем не возникает. 
Но поскольку у нас нет 1С-специалистов, то ожидаем сотрудника, ответственного за 1С, со стороны Заказчика. Если такой сотрудник есть и выполняет все инструкции Битрикса и наши, то никаких проблем с интеграцией нет.

Приходилось ли вам заниматься разработкой крупного e-commerce проекта на Битриксе? Если да, то какие задачи пришлось решать в этом проекте?    

Да, много e-commerce проектов в портфолио, в том числе и крупные. Выше уже приводились ссылки на них.
Также много других проектов можно увидеть в портфолио, большинство из них на Битрикс.
https://maximaster.ru/portfolio/ecommerce/

Приходилось ли делать SEO каталог с посадочными под комбинации фильтров? Например, через такое расширение https://marketplace.1c-bitrix.ru/solutions/sotbit.seometa/

Мы стараемся не использовать сторонние решения из маркетплейса. Связано это с их вопиюще низким качеством исполнения. Разработчики таких решений обычно заботятся о том, чтобы выпустить готовое решение, которое будет работать на стандартной поставке битрикс, не особо задумываясь о возможности расширения или поддержки. Но если в проекте все стандартно, то не будет проблемой установить данное или подобное расширение. Как не будет и проблемой написать свое решение под индивидуальные требования.

Оцените от 1 до 5 ваш опыт верстки. Опишите, почему, вы так считаете.    

5
Большое количество разработанных проектов, в том числе и на современных технологиях.

Оцените от 1 до 5 ваш опыт дизайна. Опишите, почему, вы так считаете.    

3-4
Дизайн не наша сильная сторона.
Т.е. если ставится задача «максимум креатива», то с такой задачей самостоятельно не справимся, но если нужен добротный, технически правильный дизайн проекта, то вполне возможно реализовать.

Можете поделиться проектами, где вы делали дизайн? У нас есть дизайнер, но всегда удобней, если все делается в одном месте, поэтому интересно, какая у вас компетенция.

Вот несколько ссылок из нашего портфолио на интернет-магазины, дизайн которых полностью разрабатывался нами:
https://skiwax.ru/
https://affresco.ru/
https://tessuti-ital.ru/ 
А вообще у нас большой опыт работы с дизайнерами, которые находятся на стороне заказчика. Опыт показывает, что если у заказчика есть дизайнер, с которым уже сложился положительный опыт работы, то такая схема эффективна. 

Если бы вы искали Битрикс разработчика для личного проекта, какие знания были бы для вас самыми важными?    

  • Уверенное владение 1C-Битрикс, PHP актуальных версий. Уверенные знания в HTML/CSS + Javascript, понимание аспектов работы LAMP стека, умение самостоятельно его настроить с помощью Linux Shell.
  • Опыт разработки функционала на 1С-Битрикс, реализация готовых модулей и решений под эту платформы.
  • Понимание и опыт хотя бы поверхностного применения теоретических аспектов современной веб-разработки (SOLID, DRY, Design Patterns, PHP-FIG PSR's).
  • Умение работать в команде и поддерживать коллег, опыт использования инструментов для коллективной работы (git, gitlab/github/bitbucket или аналоги, redmine или аналоги).
  • Опыт проектирования оптимальной схемы баз данных для РСУБД и умение составлять оптимальные запросы к ней.
  • Умение грамотно разбить задачу на составляющие, оценить трудозатраты и соблюдать поставленные сроки.

Готовы ли вы выполнить тестовое задание или показать пример решения задачи из какого-то текущего вашего проекта?    

Наше портфолио однозначно характеризует наш опыт, необходимости в тестовых заданиях не видим. Можем подробнее рассказать про опыт работы по любому проекту из нашего портфолио, в том числе по техническим деталям.
Также можем оценить/выполнить несколько боевых задач просто по счету, без заключения договора на техподдержку.