Айрат, разработчик Dynamics AX из Казани, в Neti с 2012 года. Он начинал с Navision, потом перешел в Axapta и стал работать на зарубежных проектах. Айрат рассказывает:

  • почему перешел из Navision в Axapta;
  • как «накосячил» на первом проекте;
  • как начал работать с иностранными заказчиками;
  • чем австрийские коллеги отличаются от голландских;
  • стоит ли идти в «аксаптеры».
Как стать разработчиком Dynamics и работать на зарубежных проектах

Айрат, разработчик Dynamics AX из Казани, в офисе Neti

 

Как стал разработчиком Navision

— Айрат, ты работаешь в Neti уже давно — с 2012 года. Какой у тебя бэкграунд?

— Я учился на факультете «Вычислительная математика и кибернетика» К(П)ФУ. Мы не фокусировались на конкретном языке программирования, хотя нас знакомили с Pascal, Java, PHP. Мы изучали алгоритмы — базу, которая применима в любом языке. Считаю, что это то, что нужно: в некоторых университетах, наоборот, больший упор делают на практику, а на теорию отводят мало времени. Из-за этого студентам бывает тяжелее перейти на новый язык.

До Neti я работал в двух местах. Сначала писал игры в Delphi на языке, основанном на Pascal, потом в консалтинговой компании занимался проектами внедрения Microsoft Dynamics NAV. Перейти с Pascal на Navision было легко — в NAV разрабатывают на языке C/AL, который тоже основан на Pascal. Во втором месте я работал около года. Задачи нравились, но руководство совсем не ценило сотрудников: нам говорили, что нас легко заменить, зарплату не повышали. Сначала один коллега ушел оттуда в Neti, потом другой, третий — все потянули друг друга. Я консервативный, не люблю перемены, поэтому перешел в Neti одним из самых последних.

 

Из Navision в Axapta

— Когда ты пришёл, тоже занимался Navision?

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

Примерно через год в компании объявили набор стажеров в отдел Dynamics AX. Я и еще несколько желающих записались на вводный курс по AX 2009, который проводил коллега. Два месяца мы занимались по вечерам, в свободное от основной работы время. На занятиях я увидел, что в Axapta по сравнению с Navision гораздо больше простора для творчества, и когда курс закончился попросил перевести меня в направление Dynamics AX. Там мне начали давать реальные задачи. Сначала совсем простые, потом все сложнее и сложнее.

— Почему именно Axapta, а не 1С?

— Я смотрел на работу еще и с экономической точки зрения. AX — непростая система с более высоким, по сравнению с 1С, порогом вхождения, поэтому я подумал, что программисты Axapta зарабатывают больше 1С-ников. То же самое с Java и .NET-разработчиками. В идеале после университета я хотел работать Java или C#, но в вакансиях с этими языками требовали минимум 3 лет опыта, а стажеров не брали.

— И получилось, что ты стал «аксаптером»…

— Да, но у X++ (язык программирования в AX) синтаксис похож и на Java, и на C#, так что нельзя сказать, что мечты не сбылись.

— Помнишь первый проект в направлении AX?

— Меня посадили на техподдержку проекта от московского интегратора. Правда, не помню какого конкретно. Тогда я «накосячил» по неопытности. От консультанта со стороны заказчика прилетела задача обновить данные в системе. Я сделал, а потом оказалось, что их нельзя трогать и бывалым «аксаптерам» об этом известно. А я не знал: раз программа позволяет обновить данные — значит, можно. Заказчик тогда сильно ругался, хотел даже заменить меня на другого разработчика, но мой руководитель из Neti уладил конфликт и меня перевели на новый проект. Дальше уже легко пошло.

— Ты рассказал о промахе по неопытности. А опытные программисты ошибаются?

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

Как стать разработчиком Dynamics и работать на зарубежных проектах

Айрат на корпоративе Neti, весна 2019 года

 

Зарубежные проекты: Голландия, Испания, Австрия

— Направление Dynamics AX работает нет только с российским, но и с западным рынком. У тебя были зарубежные проекты?

— С 2017 года я практически непрерывно задействован на зарубежных проектах. Работал с заказчиками из Голландии, Испании, Болгарии. Сейчас удаленно решаю задачи интегратора из Австрии.

— А как ты попал на зарубежные проекты? Что для этого нужно?

— Самое главное — знать английский язык. Я знал более-менее хорошо. А еще, когда перевелся в направление Dynamics AX, сказал руководителю, что если есть зарубежный заказчик, то я готов с ним поработать.

Как стать разработчиком Dynamics и работать на зарубежных проектах

Амстердам, Нидерланды, 2017 год

— Откуда знание английского?

— Сначала учил в университете. Потом пришел в Neti и стал ходить на курсы английского языка от компании. Занимался до прошлого года.

— Каково это — общаться с заказчиками на английском?

— Первое время было тяжело и страшно. Я стеснялся говорить на английском, сначала пытался сформулировать фразы в голове. Но потом подумал: «Я не носитель языка и не должен говорить идеально. Если скажу неправильно, что мне сделают? Двойку поставят? Мы тут совсем другим занимаемся». После этого стало проще, и чем больше я практиковался, тем легче было выражать мысли на другом языке. Сейчас языкового барьера у меня нет.

— Были ли у тебя командировки за рубеж?

— Да. В 2017 году мы с коллегой ездили на неделю в Нидерланды. В 2018 году у меня было две командировки: на три недели в Испанию и на четыря дня в Австрию.

Как стать разработчиком Dynamics и работать на зарубежных проектах

Гранада, Испания, 2018 год

— Расскажи поподробнее. Чем тебе запомнились эти поездки?

— В Голландию мы поехали знакомиться с командой. Офис заказчика находится в маленьком городе Эттен-Лёр. Коллеги-голландцы очень гостеприимные — они нас постоянно куда-нибудь водили после работы: в рестораны, гулять, один раз вечером мы съездили в Амстердам. Было классно! Еще там произошел забавный случай. Мы пришли утром  в офис и узнали, что на заправке около нашего отеля кого-то подстрелили. Мы такие: «В смысле?». Мы думали, что в Голландии — низкий уровень преступности, а в таком маленьком спокойном городке вообще все тихо-мирно. И тут — бац, прямо рядом с нами стреляли в человека.

Как стать разработчиком Dynamics и работать на зарубежных проектах

Эттен-Лёр, Нидерланды, 2017 год

— Давай перейдем к Испании. Что ты там делал?

— Я приехал в Гранаду на внедрение Axapta зимой 2018 года. Там тоже хорошо приняли, но срочных задач было очень много и мы засиживались допоздна. У меня день рождения 14 февраля, и в этот день, я прекрасно помню, мы работали до 10 или 11 вечера. Коллеги мне тогда сказали: «Не переживай, когда будет посвободнее, мы отведем тебя в ресторан». И сдержали обещание. Через несколько дней мы пошли в рыбный ресторан.

— Испанию посмотреть не получилось?

— Получилось, были же выходные. Времени погулять по Гранаде и съездить в соседние города хватило.

Как стать разработчиком Dynamics и работать на зарубежных проектах

Город Малага, Испания, 2018 год

— Чем запомнилась командировка в Австрию?

— Вместе со мной вникать в проект приехал разработчик из Германии. Австрийцы, в отличие от голландцев и испанцев, нас никуда не звали: все семейные и после работы они уходили по своим делам.  Мы с парнем из Германии были предоставлены сами себе и по вечерам гуляли по Вене.

— Какой проект тебе запомнился больше всего?

— Как раз австрийский. Он длился с 2018 года и недавно закончился. Мы внедряли коробочное решение для мусороперерабатывающей промышленности. Я немного поработал над самой «коробкой», но большую часть времени дорабатывал модуль под запросы скандинавского заказчика. Например, мы придумывали, как использовать композитные data entity для incremental push. Композитные data entity состоят из простых data entity. В Dynamics 365 FO простые data entity могут использоваться для интеграции данных из Axapta в другую систему. При этом в первый раз мы отправляем из AX во внешнюю систему все данные, а в последующие передаем только новый массив данных. Такая выборочная передача — и есть incremental push. Но с композитными data entity incremental push не работает. Вместе с австрийскими коллегами мы разработали механизм обхода и сделали отдельную искусственную таблицу, которая хранит данные об изменениях.

Как стать разработчиком Dynamics и работать на зарубежных проектах

Вена, Австрия, 2018 год

 

Стоит ли идти в Axapta

— Тебе не надоедает целый день писать код?

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

— Думал ли ты когда-нибудь перейти в другую область?

— Да. В идеале нужно знать еще один язык программирования, тот же Java или C#, потому что сегодня есть спрос на Axapta, а завтра его может не быть.

— А есть предпосылки к тому, что Axapta станет неактуальной?

— Уже была ситуация, когда спрос на AX падал. Несколько лет назад вышла последняя версия Microsoft Dynamics 365 FO, которая изначально была только облачной, а российское законодательство запрещает хранить данные не в России. Из-за этого многие клиенты не хотели внедрять новую Axapta. Старые версии им тоже не подходили: зачем переходить на систему, которую невозможно обновить? Сложности с AX возникли не только у нас, но и в Европе, где были проблемы с законом о защите персональных данных. В итоге Microsoft сделал и облачную версию программы, и классическую, которую можно разворачивать на своих серверах, а также реализовал некоторые технические решения для соответствия законодательству. Все стало нормально, но это был первый тревожный звоночек о том, что работы в Axapta может не стать.

Еще руководитель дивизиона Dynamics часто говорит, что разработчики скоро будут не нужны — в системе все будет делаться настройками. В чем-то я с ним согласен: с каждым обновлением функционала в программе становится больше. С другой стороны, по опыту могу сказать, что клиентам часто требуются нестандартные решения. Мне кажется, что работа будет, но ее может становиться меньше, так что нужно иметь запасной вариант.

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