Сергей Ботвинко
Старший разработчик цифровых сервисов автоматизированного рабочего места, г. Новосибирск

Когда работаю над проектом – веду записки сумасшедшего

В МегаФон я пришел в 2008 году в знакомое для себя направление – техподдержку. Хорошо помню времена, когда каждый филиал жил обособленно: свои домены, свои серверы. Когда только началось создание федеральной структуры ИТ, попробовал себя в администрировании серверов. Поддерживал разные системы – VDI, UTAG, изучал их взаимодействие. Во время очередной волны преобразований вернулся в техподдержку, но уже на должность эксперта развития техподдержки. Отдел занимался внедрением и развитием сервисов, помогающих техподдержке и сотрудникам компании. К тому моменту у меня был опыт взаимодействия с пользователями, работы с железом, администрирования серверов. Погружаться во что-то новое не планировал, но у каждого в жизни бывает такой шанс.

«Сразу согласился, хоть и изучал профессию с нуля»

Когда мне предложили стать разработчиком, сразу согласился, хотя изучать профессию пришлось с нуля. Осваивал языки программирования, взаимодействие сетевых систем, искал на профильных форумах идеи и советы. Здорово выручало понимание того, как выстроены процессы в МегаФоне. Одно дело разработать алгоритм взаимодействия, совсем другое – решение, которое встроится в налаженные бизнес-процессы конкретной компании.

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

Но больше всего мне запомнилась разработка mega4you. Разработка сервисов GreenMarket, приобретение сертификатов от поставщика Giftery и виртуальных карт от поставщика Подарок в Квадрате. Я писал алгоритмы учета покупок товаров и формирования отчётов по покупкам. Для начала пришлось разобраться с сутью и экономикой проекта, первичными и вторичными процессами. Сложная и интересная задача, подарившая ценный опыт.

Необходимые качества – упорство и умение отдыхать

Когда приходят с запросом «добавьте кнопку для выгрузки отчета», программист всегда оценивает, какой объем работы стоит за небольшой иконкой. Некоторые решения настолько негибкие, что для добавления простого функционала необходима полная переработка. Поэтому написание кода – завершающий этап. Первое, что необходимо сделать разработчику, – тщательно продумать архитектуру: вникнуть в суть, взвесить разные подходы, проанализировать способы организации баз данных, синхронизацию с продуктами, которые используются в компании. И обязательно спрогнозировать, как трансформируются запросы заказчиков через несколько лет, какой функционал понадобится, как изменится взаимодействие с другими системами. Это большая аналитическая работа.
У меня есть тетрадь, в которую записываю идеи, приходящие в голову по текущим задачам. Все страницы исписаны стрелочками, блок-схемами, короткими пояснениями. Называю это записками сумасшедшего: через пару месяцев после сдачи проекта не сразу могу разобраться в логических связях.

Какими качествами должен обладать программист? Упорством. Иногда заказчик приходит с нечетким запросом и вместе с ним нужно терпеливо идти к четкому ТЗ. Если что-то не получается, нельзя опускать руки, пока не отработаешь все рабочие гипотезы. Иногда в голове прокручивается так много сценариев, что сложно заснуть. Поэтому еще один важный навык – умение отдыхать и отвлекаться. Это дает свежий взгляд на, казалось бы, тупиковый путь. Мне для перезагрузки помогают прогулки по парку.

В программировании много творческого и динамичного

Считается, что программирование – монотонный и скучный труд. Это неправда. В нашей работе много творческого и динамичного. Каждая рядовая задача – это сплав креатива, логики и опыта. А у нас еще много нетривиальных. Добавьте к этому скорости, с которыми происходят изменения: пользователи постоянно ждут улучшений, новых возможностей, гибкости. Мне сохранять продуктивность позволяет разносторонний опыт работы в МегаФоне.

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

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