А в 1991 году у нас появились первые настоящие персональные компьютеры, работа на которых тоже шла поочерёдно. На них установили первую версию КОМПАСа образца 1989 года. В последствии, мой хороший друг-программист сделал огромную работу и конвертировал алгоритмы в библиотеку КОМПАС. Что удивительно, библиотека до сих пор актуальна, продолжает развиваться и входит в поставку системы. Это даёт мне некое основание чувствовать себя немного причастным к становлению АСКОН.
Вы были знакомы с АСКОН в период зарождения компании, а когда пополнили ряды сотрудников?
В 2000 году я увлёкся web-мастерингом, несколько лет программировал сайты. А коллеги из Курганского центра разработки систем управления инженерными данными (сейчас - АСКОН-Курган), появившегося в 1994 году, располагались на Курганмашзаводе, где я начинал работать. И им захотелось сделать web-версию ЛОЦМАН:PLM. Наняли меня по договору, я сделал, результат всем понравился, и я попросился на постоянную работу. И с 2003 года я в АСКОН.
Изначально я развивал web-клиент, вышла вторая версия, но в то время технологии web не позволяли создать полноценный рабочий интерфейс такой сложности, и проект понемногу затих. Программировал разные задачи. Даже занимался разработкой на PL/SQL для Oracle.
В какой-то момент появилась необходимость перенести инсталлятор ЛОЦМАН:PLM на стандартный Windows Installer. Со временем пришло понимание, что весь набор продуктов АСКОН требует единого подхода к развёртыванию и настройке у клиентов. И мы придумали «Единый инсталлятор комплекса»: чтобы установка интегрированных продуктов происходила корректно, нужна была целостность. В процессе работы ко мне стали присоединяться коллеги, и образовалась группа единого инсталлятора комплекса (ЕИК).
Шло время, приходил опыт, у группы стали появляться другие задачи, мы набрали компетенций в разных вопросах и научились решать проблемы массового обслуживания. Написали продукт «Центр обслуживания комплекса» (ЦОК).
Расскажите подробнее, чем занимается ваше подразделение,?
Мы работаем для тех IT-специалистов, которые сопровождают системы АСКОН на предприятиях. Пишем продукты для техподдержки, делаем инсталляторы и диагностические системы, чтобы системные администраторы справлялись с распространением и настройкой программ. Нам нужно добиться, чтобы системы правильно настраивались, правильно применялись и исправно работали. Многие идеи поступают от пользователей, в том числе когда мы приезжаем на заводы и общаемся с нашими клиентами.
С 2015 года вы работаете в Коломенском центре разработки. Что изменилось после переезда?
В Коломне я продолжил свою курганскую работу, но у меня стало больше коммуникаций. Если там я лично общался в основном с разработчиками ЛОЦМАН:PLM, то здесь мой круг расширился до всех подразделений. Большинство программистов — интроверты, а для меня личное общение бесценно. Да и в общении в разы быстрее решаются вопросы. Не каждый человек может донести свою мысль в письменном виде. Сейчас я ведущий программист, и в моём подчинении три человека. При этом, я активно программирую сам, не только руковожу, но и делаю, поэтому часто приходится перераспределять задачи и ресурсы.
Чем так затянуло программирование?
Интересно справляться с задачами, которые перед нами ставят. Только половина современных программистов понимают, что программирование ориентировано на определённую задачу и должно способствовать экономии ресурсов. Второй же половине задачи не интересны, они увлечены программированием как таковым, и это, как я думаю, издержки профессии.
Современное программирование зачастую не приносит пользы: программистов стало слишком много, и каждый хочет придумать что-то своё. Одно дело — времена монополистов и проприетарных владельцев, когда правила диктовали только большие фирмы или связанные с ними команды, а open source внёс некий хаос. Достойный проект может начаться на одном языке, а с изменениями в команде его реализаторов код тоже меняется, и это всё тащит за собой такие баги, что потом уже и не вспомнить, где возникла ошибка. Впрочем, это моё личное мнение.
Изначально мы занимались прикладными вещами, которые были нужны в работе, не рассматривая программирование как отдельную отрасль, потому что это — просто инструмент. В арсенале настоящего мастера много инструментов, и он волен выбирать, каким из них работать.
Как помогаете влиться в работу новичкам?
Среди тех, кто приходит к нам на должность программиста, мы проводим конкурсный отбор. А после начинаем обучать. Но учит, как правило, сама жизнь, и учатся те, кто хочет учиться. Своим подчинённым я ставлю задачи. Если что-то непонятно, нужно изучить материал, разобраться в нём, попробовать протестировать и написать. Это обычная программистская рутина, но кто не справляется с ней, тот не остаётся в профессии. Если у человека есть желание двигаться, он найдёт силы и возможности. Бывают разные исполнители. Есть те, которые делают всё, о чём их просят, но сам предмет деятельности их не особо интересует. Или, человеку интересен предмет, но у него недостаток воображения и он не может сам поставить себе задачу. Поэтому любой коллектив мы стараемся организовать по принципу баланса: чтобы были хорошие исполнители и те, у кого развито воображение. Иногда это может сочетаться и в одном человеке.
На собеседовании у меня одно требование к кандидатам — потенциал развития, потому что в остальном все люди разные. Но истинный интерес всегда виден. Впрочем, у нас был один кандидат, которого мы не разглядели. Его приняли, но он не прошёл испытательный срок. На собеседовании всё было отлично, он говорил правильные слова, у него было почти идеальное резюме. Начали работать, поставил ему задачу. Результата не было, начал узнавать, что он сделал. Отвечает: в этом я не разобрался, сделал, как смог. Разговаривали на разных языках. Спрашиваю — кивает, а на самом деле ничего не понимает. Поэтому испытательный срок очень важен, на нём можно проверить, что человек умеет и как умеет, есть ли перспективы развиваться дальше.
Ну и каждая работа должна приносить удовольствие. Это важно для того, чтобы у тебя получился крутой результат, который понравится и тебе самому, и окружающим. Тем, кто не получает удовольствия от работы, надо разобраться в себе. Возможно, не хватает природного таланта в конкретном деле: значит, человек просто не на своём месте.
Что делать, когда пропадает вдохновение?
Придумать что-то новое. Как правило, новое нужно изучить. Например, новую технологию. Нужно уделять обучению или самообучению хотя бы час рабочего времени в день — это всегда возможно. Часто это происходит непроизвольно: появляется задача, которую ты просто не понимаешь. А иногда изучаешь что-то на будущее, потому что можешь столкнуться с этим через некоторое время: лучше разобраться, как это работает заранее, чтобы после сэкономить время.
Но у меня никогда не пропадало вдохновение к работе, потому что в ней нет рутины. Конечно, я занимаюсь рутинными вещами наподобие инсталлятора, но сейчас уже пришло мастерство, я знаю, как выполнять эту работу и параллельно могу думать о других вещах. А задачи по проекту ЦОК требуют включения воображения — как сделать так, чтобы было круче. Поэтому, в целом моя работа всегда была интересная и разнообразная.
Я сталкивался с людьми, которые долго и уверенно сидели на одной теме. Они — крутые специалисты, но уставали делать одно и то же: например, бесконечное формирование справочников, как за конвейером. Знакомый аналитик формировал лет восемь. Он чудесно знал все ISO и ГОСТы, но я бы сошёл с ума. А программирование классное само по себе. Даже однотипные задачи каждый раз решаются по-разному, поэтому я и говорю, что нужно думать головой. Суть в том, что кроме алгоритма есть ещё и реализация. А реализаций может быть пусть и не бесконечное, но n-ное число.
Когда человек делает, не думая, по старым шаблонам в голове либо по первому образцу, который нашёл в интернете, он упускает возможность получить новое, очень красивое решение задачи. Или же элементарно простое и понятное. Поэтому, даже если задача повторяется, даже если я уже когда-то решил её нормально, всегда нужно пробовать по-другому. Старый рабочий код может быть хорошим, но уже непригодным, и лучше его не трогать. Важно, чтобы решение нравилось самому, так как я не встречал программистов, которые любят чужой код.
Как успевать при индивидуальном подходе к каждой задаче?
Всегда есть несколько разнотипных задач. Если ты на чём-то запнулся, в этом нет ничего страшного: ты просто ещё не придумал, как сделать правильно. Нужно вовремя расслабиться и переключиться на другую задачу. Потом в голове всё выстроится, и решение придёт само.
Плохая черта — сразу же приступать к полученной задаче, не обдумав. Человек считает, что знает, как нужно делать, у него старые паттерны. А в результате получается, что он просто потратил время, и после начинает переделывать. Хорошо, если будет желание начать заново, потому что переделки гораздо хуже, они — источник багов.
Есть ещё один секрет: я не программирую дома с 2010 года, у меня даже компьютера нет. Потому что взял для себя правило: заниматься работой в личное время — неправильно. Если человек работает в личное время, значит, он не успевает на работе. А если он не справляется на работе, значит, он либо не может правильно распланировать своё рабочее время, либо ошибся в оценке сложности задачи. В АСКОН никто не заставляет сотрудников выбиваться из сил, у нас очень лояльная в этом отношении компания. Но самое сложное — подобрать человека так, чтобы в рабочем режиме он выполнял свои обязанности почти на 100% с учётом форс-мажоров.
На что сейчас направляете основные ресурсы?
Сейчас наша самая большая задача — это переход на Linux. Задача актуальная и для нас, и для предприятий. Каждый день приходится разбираться в новой информации. Для конечного пользователя переход не должен быть болезненным, поэтому мы пишем программы с учётом этой реальности. Сейчас мы не столько генерируем идеи, сколько собираем компетенции, консультируем людей и обучаем их. Беда в том, что многие не понимают, как работать на Linux, что тут другая идеология. Зачастую старая идеология застревает в голове, и попытки сделать так, как раньше, не прокатывают. Нужны новые подходы, новые реалии, следование новым, ранее неизвестным правилам.
Благодаря чему получается расширять горизонты профессии?
Многие думают: сменю работу, стану программистом, войду в IT. Посмотрю курсы на YouTube, быстренько выучусь. На самом деле, чтобы стать настоящим программистом, нужно лет десять. Хотя, как исключения, бывают люди, которые рождаются программистами. Но талант, это половина успеха: нужен опыт, желание и настойчивость. Очень повезёт, если рядом окажутся старшие товарищи, которые смогут помочь: работа в коллективе даёт хорошие результаты.
Когда я пришёл работать на завод, доставал коллег вопросами и часто выводил их этим из себя. Почему? Тогда было тяжело получить информацию: требовалось оперативно, а мы располагали только огромными толстенными распечатками в книгах. Позже я понял, что в этом заключается одно из качеств руководителя: знаниями необходимо правильно делиться. Делать это спокойно и выдержанно, но при этом заставлять думать, наводить на правильный путь решения задачи, вместо того, чтобы демонстрировать готовый пример. Нужно помнить о том, что воспитание нового поколения программистов АСКОН лежит на тех людях, которые обладают знаниями и умениями и готовы вкладываться в последователей.
С какими языками вы работаете?
В основном мы с коллегами пишем на C#. Но всё зависит от поставленной задачи, поэтому с появлением новых задач будет видно, что нужно изучать.
Когда в компанию приходит новичок, важен набор знаний, которыми он владеет. Если есть задача работать с базами данным, а человек умеет писать на C#, это классно. Нормальный программист будет писать на чём угодно, привычка и знание синтаксиса важны, чтобы не тратить время на то, где поставить скобочку.
Вообще, могу дать совет программистам: если можно сделать просто, делайте просто, не нужно искусственного усложнения. Часто замечаю позицию: «делать просто — не по фэн-шую». Человек реализует сто интерфейсов, тысячу абстракций для того, чтобы сложить две цифры. Ещё важно писать понятный код, чтобы он был читаемым и чтобы в нём мог разобраться любой.
Вы трудитесь в АСКОН более 20 лет. Не возникало ли желание попробовать себя на новом месте?
Не задумывался об этом. Разве что когда очень устаю, хочется пойти в дворники. Там всё просто и понятно, да и результат виден сразу. Наверное, сейчас я на своём месте.