Привет, Хабр!

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

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


Когда хотел рассказать про занятный проект, но там опять NDA

Меня зовут Иван, я технический менеджер (Java) в КРОКе. И сегодня я постараюсь немного приоткрыть завесу тайны и рассказать о том, как у нас в целом работается разработчикам, которых около 350 человек, а также о текущих вакансиях (Java, PHP и фронтенд). Подробности – под катом.

Сам я попал в КРОК случайно, пришёл в 2012 на второе занятие курса по Java, которые тут проводились. Мне сразу понравился и сам курс (полезность и подача материала), и компания в принципе. В тот момент я еще был в одном НИИ (работал там техником, получил диплом, стал инженером и проработал 4 года в общей сложности), и у меня на руках был оффер от другой компании. Что поставило меня перед вот таким выбором:

– идти в некую компанию на C++ в качестве регуляра, потому что C++ я знал неплохо;
– идти в КРОК на Java, но на позицию джуниора и изучать все практически с нуля.

После недолгих терзаний и курса, о котором говорил выше, пошел ва-банк – выбрал КРОК.

Самым первым проектом, над которым мне довелось поработать, была автоматизация документооборота для одного крупного государственного проекта (и – да, близкое знакомство с NDA). Это немного поражало – приходишь такой из НИИ с гордым знанием адресной арифметики и венгерской нотацией, а тут тебе сразу java, CamelCase, BPM, ECM и прочие приятные уху названия, которые после ржавого* мира С кажутся чем-то волшебным.

Над самим проектом мы работали довольно долго, потому что количество итераций было, прямо скажем, неслабым.

Первое время задавал очень много вопросов коллегам — как тут вообще принято работать, чтобы впитать в себя не только сами знания, но и принципы работы со стеком именно в КРОК. Коллеги шли на встречу и помогали советами, выделяя мне целые часы. Я довольно быстро абсорбирую знания, поэтому уже через год проапгрейдился с джуниора до регуляра, а еще через год пришел новый level up — до ведущего разработчика. Компания позволила побыть и архитектором, и тим лидом, и техническим пресейлом. Сейчас – технический менеджер.

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

Я выбрал третий вариант, сейчас управляю командой разработки из 7 человек. Проведя тут несколько лет и сравнив карьерные пути других ребят, могу сказать, что это не исключение из правил — вот так вырасти за пару лет, а скорее, нормальная для КРОК ситуация. Кто-то выбирает горизонтальное перемещение между командами – сменить back-end и front-end и наоборот, – без проблем.

Есть люди, которые готовы лет 10 работать над одним крупным проектом (а такие масштабируемые проекты тут есть, и немало) и развиваться внутри него. Есть те, кто предпочитает расти на разных проектах, постоянно расширяя экспертизу. Оба подхода приветствуются.

Что интересного мы делаем в КРОК


Недавно был большой проект «Электронное правосудие» – он включал в себя работу с Мосгорсудом и 35 районными судами Москвы. Масштабы задач – мое почтение. Над проектом одновременно работали около 400 человек.

Пару лет назад мы начали работать над автоматизацией документооборота компании СИБУР.

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

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

Другой случай – проект, связанный с электронной подписью. В ряде государств ГОСТы на ЭП имеют одни и те же номера, но при этом реализации настолько разные, что де-факто становятся несовместимыми. Если в РФ поставщик решений криптографии — это компания КриптоПро, то в Беларуси – поставщик иной.

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

Мое рабочее место и коллеги


Вместо больших привычных опенспейсов на 100 человек у нас кабинеты на 5-10 человек. Поэтому мое рабочее место выглядит так:




Один из главных помощников

Познакомлю вас с коллегами. Вот, например, Женя, технический менеджер (Java, фронтенд).





Кстати, о фронтенде. Для крупных проектов мы используем CROC WebClient. Это фреймворк, который применяется для создания эффективных и эргономичных интерфейсов для клиентских приложений, которые работают по принципу «тонкого» клиента в современных брау��ерах. Функции системы позволяют поддерживать работу на рабочих станциях и мобильных устройствах, работать в различных разрешениях браузеров и с touch-интерфейсом.

Слово Жене:

Наличие фреймворка существенно упрощает работу разработчика. Разрабы обычно делятся на направления: джава, дотнет, фронт. Но далеко не во всех ИТ-компаниях есть такое деление. Честно говоря, у нас тоже оно появилось не сразу. Например, есть стереотипы, мол, если знаешь дотнет – то знаешь веб.

Тем не менее далеко не все разрабы любят заниматься вебом. Для менеджеров это проблема. Веб-клиент отчасти решает ее — закрывает кучу рутинных задач и немного упрощает жизнь.

В большинстве продуктов у нас свой дизайн и свои компоненты, и для их поддержки и доработки нужны люди. Джависты не очень хотят в этом развиваться, поэтому тут нужны именно люди под чистый фронтенд. Тем не менее, кому интересно быть full-stack, то это приветствуется.

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

Работаем по двухнедельным спринтам, разработчики физически находятся в 8 разных регионах РФ. В начале каждого спринта ребята ставят общие цели, набрасывают задачки и распределяют их по разработчикам, отдельный день – на оценку и планирование. Потом состав спринта корректируется при необходимости. Каждый день по 15 минут небольшие собрания по webeх, в конце спринта — ретроспективы. Все всплывающие организационные трудности обсуждаем и лечим уже в следующем спринте, ничего не копим. Почему по webex – на Хабре уже как-то был пост о том, что у нас целый набор офисов разработки по стране. Например, в этом проекте у меня задействованы целых 7 офисов – от Краснодара до Иркутска. К слову, в компании есть возможность раз в год переместиться на пару недель в другой офис и поработать оттуда.

Раз в месяц — общее демо, где вся команда может посмотреть, чего добились и куда дальше двигаться.

Работ по фронтенду достаточно – можно прийти конкретно на этот проект, но можно в любое время перевестись на любой другой. Фреймворк у нас один и тот же, поэтому каких-то сложностей с межпроектыми переходами нет.

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



А вот Андрей, эксперт направления разработки ПО. Эксперт, как упоминал выше – это название должности, пару лет назад он стал первым в департаменте, кто решил развивать карьеру не в управлении разработкой, а в наращивании экспертизы в технологиях. Когда я только пришел в КРОК, мне посчастливилось поработать в команде Андрея, который занят в основном в R’n’D проектах и в которой нечасто появляются вакансии для начинающих разработчиков. Тем ценнее, что один из двух его значков наставника достался Андрею от меня, а мне полученные в процессе рекомендации позволили динамично развиваться в качестве разработчика в дальнейшем.



Кстати, если присмотреться, на столе у Андрея лежит кепка с лого подкаста «Разбор Полётов» — известного подкаста для настоящих IT-шников. Самые внимательные заметят, что это не простая кепка, а раритетная, и логотип на ней — винтажный. Андрей участвует в разборе с 2013 года, когда его впервые записали на JavaOne в Сан-Франциско.



Плюс Андрей – постоянный участник и член программного комитета всех трех ведущих Java-конференций в стране: Joker в Санкт-Петербурге, JPoint в Москве и JBreak в Новосибирске, поэтому у него сразу несколько уточек в помощниках. В этом году он сам выступил с докладом на JPoint.



Ну и конечно, многим джавистам он наверняка знаком как лидер московского сообщества java – разработчиков. Десятки участников сообщества примерно раз в месяц собираются на встречу с ведущими экспертами из мира джава послушать доклады и пообщаться в неформальной обстановке. Если еще не бывали на Московском JUG, приходите на одну из ближайших встреч. Ниже приведу ссылку на группу с анонсами встреч.


Фото с одной из встреч в офисе КРОК

Идем дальше. Вот место техмена Алексея, который работает с PHP-разработчиками.



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

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

Довольно быстро мы поняли, что в работе над этим проектом необходимо применять гибкие методолог��и разработки. Внешняя площадка является, по сути, лицом судебной системы, поэтому было особенно важно демонстрировать промежуточные версии портала заинтересованным лицам. В итоге процесс удалось выстроить так, что можно было отпустить часть команды в отпуск и не переживать, что кто-то что-то не сделает.

Первоначально портал создавали с учетом того, что им будут пользоваться граждане РФ. Но со временем на портале стали работать еще и нерезиденты. И если ты, например, гражданин Беларуси, то при работе с электронной площадкой уже сложности – русского паспорта и СНИЛС нет. Поэтому в рамках сопровождения проекта портал был доработан с учетом интересов иностранных граждан.

О выгорании




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

Мы взяли и начали свою Java-школу в рамках таких активностей. Кто-то делает видеоролики с уроками, которые может посмотреть любой из КРОКовцев в рамках Корпоративного университета (просто подписываешься на интересную лекцию и смотришь прямо с рабочего места). Например, я недавно записал лекцию по лучшим практикам в ведении java кода.

Оказывается, запись видеолекции – не самая быстрая и тривиальная задача, как я изначально предполагал.

Также у нас есть школа тренеров (наращиваем навыки сотрудников по самостоятельной презентации своих знаний), есть технический факультет (обмен опытом между департаментами).

Плюс, помимо уже упомянутых корпоративных блокчейн-проектов, а также занимаюсь созданием инструмента для быстрой интеграции на Java. По сути это продуктовая разработка.
И тут нам очень помогает опыт внутрикорпоративного акселератора – навыки, связанные с тем, как вообще подходить к разработке продукта, customer development и прочее – все это было получено именно в акселераторе и успешно применяется сейчас на многих проектах.

Речь идет о трехмесячной интенсивной программе, своего рода встряске продукта, который ты выносишь на акселератор, и мозгов команды, которая над ним работает. На протяжении всей встряски за командой закреплены два трекера – один от КРОК и один от внешней команды профессиональных продуктологов. Акселератор позволяет воспитывать внутри компании продуктовые команды, которые в дальнейшем могут работать либо над своими продуктами, либо над продуктами компании. Например, мы с моей командой работали над проектом химчисток для тренажерных залов. Спойлер – тема не взлетела, но опыт все получили знатный.

Agile


Обычно, когда пытаешься написать, как тебе круто работается там, где работается, надо обязательно упомянуть agile. Упомянем и тут.



«Слово в слово»: по agile не работаем.

Да, мы собираемся, рисуем план на пару недель, что будем делать и как, когда будут поставки – и, в общем, на этом все. Мы не следуем догмам в этом плане, просто берем те инструменты, которые востребованы. Работаем короткими итерациями, обсуждаем скоуп, проводим синхронизационные митинги, общее владение кодом и прочее – это естественно.

Planning poker вот не прижился вообще. Есть просто опытные люди, которые могут понять, сколько займет тот или иной проект. Ну и оценка – это ответственность самого исполнителя. Кто берется делать задачу, тот и ставит сроки. И отвечает за них.

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

Вакансии


Я обещал в самом начале поста рассказать о некоторых наших вакансиях – вот они. Сразу отмечу, что все вакансии не ограничены только Москвой – таких людей ищут и в регионах.

Инженер-разработчик Java


Про то, что интеграция у нас на Java, я писал. Вакансия на это направление подразумевает работу с интеграционными решениями, а также разработку ПО под заказ.
Если вам интересно поучаствовать в проектах по разработке коммерческого ПО, систем документооборота, интеграционных решений или поразвивать фреймворк (и у вас высшее техническое + опыт в разработке ПО от 1 года) – подробности здесь.

PHP-разработчик


Основные задачи – разработка и проектирование веб-служб, а также модулей и подсистем веб приложений. Подробные задачи и требования – на странице вакансии.

Frontend Developer


Делать интерфейсы с учетом того, что использовать их будут в корпоративных и публичных системах на десятки тысяч пользователей. Можно приходить как с готовым высшим, так и будучи студентом, главное – практический опыт от 2 лет и знание указанных технологий.



Если есть вопросы насчет каких-то из этих вакансий или условий работы у нас в целом – пишите в комментариях, буду рад на них ответить.

Ссылки:


Прошлый пост про наши офисы разработки по стране.
Подкаст с участием Андрея про жизнь разработчиков в КРОК, записанный в Иркутске, в гостях у @golodnyj.
Группа jug.msk.ru ВКонтакте.
Анонсы встреч в полном объеме тут .
Моя почта для вопросов – ipopkov@croc.ru.