Один день в профессии "Разработчик"

РОМАН МАНЦЕВ, старший разработчик

Роман трудится в компании почти 12 лет. Без преувеличения можно сказать, что вся наша разработка TM выросла на его глазах. К кому, как не к Роману лучше обратиться, чтобы узнать что-нибудь из истории компании, а также про профессию разработчика.

 

Роман, привет! Каково это работать в одной компании так долго?

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

А какой была разработка 12 лет назад?

Компания зарождалась как типичный стартап. Тогда мы все занимались всем, что умели и могли. За каждым из проектов были закреплены небольшие команды, всего по несколько человек каждая, включая тестировщиков и технического писателя. В те годы, по мере появления различных задач, мне приходилось работать над любым компонентом TM, даже включая написание страниц технической документации. А разработка Linux части TM тогда происходила ещё внутри локальных виртуальных машин VMWare, что придавало процессу, мягко говоря, особенный сложноописуемый колорит.

Что изменилось за это время?

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

Над какой версией TM ты начал работать, когда вышел на работу?

Я начинал работать над версией TM 3.0, когда она была ещё только в самом начале своего пути. Мне даже частично довелось познакомиться с версией TM 2.5, которую разрабатывали параллельно со стабилизацией версии TM 3.х.

Давай теперь поговорим о профессии. Как ты стал разработчиком?

Я сомневаюсь, что смогу точно вспомнить, с чего конкретно началось моё увлечение программированием. Возможно, с одного из уроков информатики в средней школе, когда мне стало неинтересно делать простенькие задачки из школьной программы, и я шариковой ручкой в тетрадке сделал набросок примитивной компьютерной игры, потому что быстро печатать на клавиатуре я тогда ещё не умел.

Как попал в «ИнфоВотч»?

Однажды я отправил несколько резюме в разные компании, среди которых была «Лаборатория Касперского». Я не очень надеялся на приглашение туда, потому что опыта в создании драйверов для Windows у меня практически не было, а заниматься исключительно копанием в коде различных зловредов мне не очень хотелось, потому что это весьма специфический вид деятельности, сильно отличающийся от обычной разработки ПО. Однако вскоре меня пригласили на собеседование, потому что оказалось, что мой набор знаний довольно хорошо подходит под требования для вакансии в её дочерней на тот момент компании «ИнфоВотч».

В чем заключается твоя работа?

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

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

Сейчас основными рабочими языками являются C++ и Lua, в былые времена при доработке различных компонент TM доводилось активно использовать C#, PL/SQL, Python и т.д.

Какие есть плюсы и минусы в твоей профессии?

Если к делу подходить серьезно, то профессия диктует определённый образ жизни. Она не позволяет ровно в шесть часов вечера отключать голову и со спокойной душой уходить домой, напрочь забывая о работе. Не раз бывало, что для решения какой-то проблемы приходилось сидеть за компьютером до поздней ночи, просто, чтобы не потерять уникальную нить мышления, а не потому что поджимали сроки.

Что такое хороший код? Как его отличить от плохого?

Хороший код зачастую очень легко отличить от плохого – хороший код обычно существует где-то там далеко, почти что в мифах, и мало кто его видел живьём. А в реально существующем коде почти всегда можно найти повод для критики, ну или же работает он не совсем так, как это от него требуется.

Попробуешь описать, как выглядит сам процесс написания кода?

Со стороны этот процесс, очевидно, выглядит весьма скучно и непонятно. Разработчик может целый час сидеть и монотонно набирать буквы и цифры, которые описывают совершенно рутинные действия программы. А ещё можно тот же час сосредоточенно вглядываться в экран с 20-30 строчками кода и пытаться понять, почему однажды тёмной-тёмной ночью в тёмной-тёмной серверной на чёрном-чёрном сервере они вдруг взяли и выдали совершенно не тот результат, который должны были.

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

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

Есть ли место творчеству в работе разработчика?

В профессии разработчика есть огромный простор для творчества, и именно этот простор является тем соблазном, который нередко приходится преодолевать профессионалам, чтобы сосредоточиться на решении конкретной поставленной задачи.

Подпишитесь на рассылку INFOWATCH