Ведущий инженер-программист компании «Контур» Александр Клепинин рассказывает, что такое инженерная культура, как узнать, насколько хорошо она развита в компании и что поможет чувствовать себя увереннее на новом рабочем месте.
«Контур» — это экосистема продуктов для бизнеса. С 1988 года продукты «Контура» помогают клиентам тратить меньше времени на рутину, делают общение с ведомствами проще и прозрачнее.В компании уже много лет развивают сообщество для программистов, проводят масштабные конференции и совершенствуют систему мотивации. Это помогает поддерживать инженерную культуру на высоком уровне.Хекслет давно сотрудничает с «Контуром» — проводит партнерские программы и помогает студентам попасть на стажировку в компанию. Чтобы узнать подробнее об условиях и направлениях стажировки, переходите на сайт компании.
Что такое инженерная культура
Чтобы сервисы было легко развивать и масштабировать, разработчикам нужно писать понятный и чистый программный код. Сами продукты должны быть покрыты тестами и иметь хорошую производительность. Если сервис соответствует этим критериям, значит у компании высокая инженерная культура и качественный продукт.
Инженерная культура — это ценности и внутренние правила, которыми человек руководствуется во время работы. Она заставляет его поступать определенным образом и чувствовать ответственность за результат. Еще такая культура помогает вливаться в новый коллектив и адаптироваться к задачам, а это важно для начинающих программистов.
Как понять, какая в компании инженерная культура: высокая или низкая
Спросите на собеседовании, есть ли в командах общепринятые практики
Узнайте, по каким принципам в компании пишут код, какие приемы используют, есть ли у команды единое понимание того, как она должна функционировать.
Например, команда «Контура» сформировала практики с помощью единого информационного пространства: собрала код и полезную информацию по задачам в Git, YouTrack, Jira и других сервисах, которые помогают наладить работу. С их помощью команда может ориентироваться в коде и понимать процессы.
Важно, чтобы в команде проводились неформальные активности — поездки на природу, посещение баров или игра в кикер после работы. Они помогают сформировать единый настрой и работать более слаженно.
Также если в первые дни работы никто из коллег не включился в адаптацию новичка, не дал познакомиться с процессами, и ему просто поставили кучу задач — скорее всего, инженерная культура в компании отсутствует.
Разберитесь в технических процессах
Посмотрите, как в компании устроена система именования, какие есть правила оформления кода — расстановка скобок, табуляций и более неочевидные вещи, вроде того, как выражать свои мысли в коде. Так вы поймете, какими принципами стоит руководствоваться при кодировании. Если единых правил нет, это должно насторожить: скорее всего, такой код в итоге будет сложно читать и развивать.
Для хорошего технического процесса важно проводить код-ревью. В команде «Контура» проверка кода двухуровневая. Первый раз код смотрит новичок — так он знакомится с правилами написания и понимает, как пишут коллеги. Еще он высказывает замечания, устраняет ошибки, если их находит.
Следующая фаза — код-ревью от опытного разработчика. Он выявляет ошибки предыдущего ревьюера и находит те, которые тот не заметил. То есть замечания получают и автор кода, и первый ревьюер. Такой процесс помогает быстрее включить джуна в работу и прийти к единому видению кода.
Если в команде не практикуют код-ревью, скорее всего, вам будет сложно разбираться в чужом коде. Каждый член команды будет руководствоваться своими принципами, а обслуживать и развивать продукт будет тяжелее.
Узнайте, есть ли в команде архитектор
В компаниях с развитой инженерной культурой в каждом продукте должен быть архитектор, который глобально смотрит на развитие продукта и принимает стратегические решения. Если такой человек есть, он может транслировать свое видение команде, формировать общую цель и ориентир в развитии, создавать ту самую командную культуру.
Если в команде такого человека нет, скорее всего, активное развитие продукта будет невозможным из-за внутренних противоречий в коде, написанном разными людьми с разным представлением о глобальных целях.
Узнайте про возможность обучаться внутри компании
Спросите, как в команде развивают разработчиков. Может, коллеги проводят семинары, где каждый делится интересными мыслями и подходами в программировании. Или компания устраивает большие конференции для разработчиков, где можно выступить, послушать коллег и обменяться опытом.
Например, в «Контуре» регулярно проводятся внутренние конференции разработчиков, где можно обменяться новостями развития продуктов экосистемы компании. Также компания участвует в других программистских мероприятиях — организовывает их или помогает программистам попасть туда в качестве выступающих или участников.
Итог
Инженерная культура — не самое очевидное понятие для джуна без опыта работы. Но именно она помогает легко масштабировать код и экологично общаться внутри команды.
Лучше всего узнать что-то об инженерной культуре еще на этапе собеседования. Задать все интересующие вопросы, попытаться погрузиться в процессы и понаблюдать за будущими коллегами на командном собеседовании. Так не придется чувствовать себя потерянным в период адаптации и разбираться в непонятном коде коллег.
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях.