01.11.2013
Новая «СКАУТ-Платформа» глазами разработчика
1. Какими тремя эпитетами ты характеризуешь новый продукт, над которым так интенсивно трудились специалисты отдела разработки ПО СКАУТ? Что ты вкладываешь в эту характеристику?
Ответ: Для меня этот продукт, прежде всего, расширяемый, интегрируемый, стабильный. Расширяемость - это основная функция продукта, ведь в дальнейшем его предполагается расширять плагинами. Интегрируемость – это ключевое преимущество, то, на чем сделан особый акцент при создании, ведь современная информационная система должна легко вписываться в существующую ИТ-инфраструктуру предприятия. И, наконец, стабильный, так как он обеспечивает функционирование элементов даже при системных сбоях.
2. Сколько времени ты работал над «СКАУТ-Платформой» и в каком режиме?
Ответ: Два года назад я пришел в ГК «СКАУТ» как раз для реализации этого проекта. Начало работы проходило по стопам разработки старого продукта. Но с того момента, как изменился подход менеджмента, началась более активная работа. Мы нацелились на конкретную дату релиза. Был определён набор функционала, который нам действительно необходим, отсечено всё лишнее. И, начиная с того времени, чем ближе был срок релиза, тем более интенсивным был наш режим.
3. Какие технологии использовались при разработке? В чём их преимущества?
Ответ: Мы использовали передовые технологии:.NET 4.5, REST, MSMQ, TLS, WPF/Silverlight, SPA, СПИК, SPF. Преимущества этих технологий в том, что клиент получает выбор из нескольких клиентских приложений на разных платформах и возможность написать своё с помощью СПИК или SPF.
4. Какие задачи тебе пришлось решать со своими ребятами во время работы над продуктом?
Ответ: С точки зрения реализации, интересной и нетривиальной была алгоритмика. Мы разрабатывали мощную расширяемую систему статистик, которая была нацелена на точность вычислений. Диспетчеризация многопоточных вычислений, оптимизация большого количества графики на картах. Всё это дало нам хороший опыт отказоустойчивой разработки, работы с высоконагруженными системами. Интересной была работа с расширением «СКАУТ-Платформы», которое предназначено для интеграции с другими системами - СПИК. Через него доступна практически вся информационная база нового продукта. Мы снабдили СПИК подробной документацией с примерами и «рецептами» разработки. Таким образом, даже начинающий программист сможет в приемлемые сроки написать собственного клиента для «СКАУТ-Платформы». При разработке веб-версии нового продукта «СКАУТ-Клик» мы использовали технологию SPA (Single Page Application). Это позволяет уменьшить объем трафика и повысить отзывчивость приложения. Набор используемых компонентов (Knockout, Less, Durandal и другие) позволяет обеспечить работу на широком спектре платформ и браузеров, начиная от мобильных телефонов и планшетов и заканчивая браузерами стационарных ПК. Примечательно, что «Клик» получает данные от «СКАУТ-Платформы» через доступную всем интеграторам технологию СПИК, демонстрируя тем самым открытость нового продукта.
5. Как боролись со сложностями? Что больше всего выручало при разработке?
Ответ: Были организационные сложности. Во время работы над проектом пришлось менять методологию. Когда я пришёл в СКАУТ, мы организовали переход на SCRUM. Но ближе к релизу SCRUM перестал работать, и мы перешли на KANBAN. Таким образом, мы адаптировали методологию под текущий поток задач (подробнее о переходе на KANBAN в своем интервью расскажет руководитель Отдела разработки ПО ГК «СКАУТ» Алексей Резвов).
6. Какими решениями, находками ты особенно гордишься?
Ответ: Я считаю, что мы в полной мере можем гордиться нашей системой статистик. Преимуществами этого решения являются гибкость и расширяемость, которые позволяют эффективно управлять потоками расчета. Так, например, вместо общей фильтрации движений и стоянок была предложена двухуровневая: подробная и укрупнённая. Это позволило поднять точность вычислений на новый уровень. В 3-й версии СКАУТ вычисления определялись настройками фильтрации. Теперь же алгоритм вычислений усложнился. «СКАУТ-Платформа» сначала определяет все микропериоды стоянок и движений, проводит на них расчёты, а потом объединяет их до укрупнённых периодов. Таким образом, клиент получает предельно точные и при этом очень удобные для восприятия расчёты, которые визуально не перегружены избыточными данными.
Ещё одно очень достойное решение – система кэширования. Она не использует блокировки и имеет встроенную систему индексов, что позволяет существенно поднять производительность без потери надежности. Также очень сложным и интересным моментом была разработка SPF – системы расширения функциональности «СКАУТ-Платформы» с помощью плагинов. На этой системе теперь построен весь функционал.
7. Приходилось ли тебе раньше принимать участие в проектах подобного масштаба?
Ответ: Прежде чем приступить к работе над «СКАУТ-Платформой», я разрабатывал промышленный программно-аппаратный комплекс оповещения, который впоследствии был успешно введён в эксплуатацию на нескольких предприятиях страны, а также промышленную систему документооборота. Безусловно, этот опыт позволил мне успешно справиться с текущими задачами и подготовить выпуск продукта в установленные сроки.
8. Какие решения, находки нового продукта можно использовать в других областях разработки, не связанных с мониторингом транспорта?
Ответ: Название продукта «СКАУТ-Платформа» уже подразумевает, что она может расширяться в любую сторону. В настоящее время у нас на ядро «Платформы» ставится предустановленный функционал, связанный с мониторингом транспорта. Однако мы можем на основе нового продукта разработать плагин, который не будет заниматься транспортным контролем. Например, возможности «СКАУТ-Студио» позволяют использовать карты без набора функций мониторинга, вплоть до создания собственного геоинформационного продукта. В будущем любой разработчик на основе нашей платформы сможет реализовать свои собственные продукты, а также легко интегрировать Платформу с SAP, 1С и другими системами.
9. Расскажи о самом ценном опыте, который ты получил в качестве тим-лида проекта.
Ответ: Это был интересный опыт, прежде всего опыт управленческий. Много совершенно разных людей. Если раньше мне приходилось работать в более типичных условиях с более подходящими мне разработчиками, то здесь был ряд сложностей, которые было очень непросто разрешать. Частично мне помогли тренинги, которые проводили специалисты по обучению нашей компании. Было интересно разбираться в организационной работе. Тот же самый SCRUM сильно адаптировался и постепенно модифицировался под нас. Любопытный опыт я получил и в качестве преподавателя. Приходилось много обучать новичков, подбирать индивидуальные программы, чтобы все разработчики выполняли нужные задачи и равномерно развивались. Для этого был даже инициирован специальный проект внутри нашего отдела - «СКАУТ-Семинар», который позволял давать базовые основы сразу всем, а не каждому по отдельности. Это такой комплексный фундаментальный подход, который относится в целом к системе обучения программистов в СКАУТе. Мы стремимся углублять базовые знания, чтобы человек всегда понимал, что он делает и зачем. Это не набор минимальных навыков работы, которые год от года устаревают. Нам нужно было обучить людей, которые смогут работать с любого рода технологиями хорошо и правильно. Это и нам хорошо, и им в будущем пригодится.
10. В чём отличие новой «СКАУТ-Платформы» от 3-й версии СКАУТ?
Ответ: Вскоре после начала работы мы поняли, что у нас получается немного улучшенный аналог Системы СКАУТ 3. Да, технологически мы шагнули далеко вперед. Система была более надежной, современной и производительной. Но, с точки зрения пользователя, получилось, практически, то же самое. Несмотря на то, что СКАУТ 3 на сегодня является одним из лучших решений для определенного круга задач, развитие его функционала ограничено архитектурой и технологиями. СКАУТ-Платформа изначально создавалась как новая версия, даже имела рабочее название СКАУТ 4. Однако полтора года назад мы поняли, что требования рынка быстро меняются и переориентировали разработку. Приглашались сторонние консультанты, полностью менялся весь подход. Появилось понятие «продуктовый менеджер», родилась продуктовая разработка, Началась разработка для конкретных людей и удовлетворение их индивидуальных потребностей. Соответственно, под эти задачи подстроился процесс разработки. В будущем нас ждёт ещё более масштабная реорганизация. В первую очередь, мы сами будем расширять «СКАУТ-Платформу», у нас определено много векторов для расширения: совершенствование системы статистик, новая система событий, наращивание производительности, увеличение возможностей для сторонних разработчиков. Это совершенно новый подход относительно наших прежних продуктов.
11. Что для тебя лично значит этот проект?
Ответ: Прежде всего, это был колоссальный опыт. Проект очень масштабный, интересный, очень многогранный. В этот проект я невероятно много вложил, как профессионального, так и личного. Он дал мне то, чего мне так долго не хватало – это возможность сразу сделать хорошо, а не как придётся. При этом меня не загоняли в какие-то жёсткие рамки, от которых никуда не денешься. Примечательно, что вместе с проектом рос я, росли наши разработчики, росла компания в целом. В результате, у нас получился нужный, полезный и ценный продукт.
12. Разработку какого программного продукта ты планируешь возглавить после релиза «СКАУТ-Платформы»?
Ответ: Моя роль в проекте сейчас и после реорганизации будет более явно выделена в качестве архитектора. Я в этой роли участвую со всех сторон: не как тим-лид конкретной команды, а как некое связующее звено между отдельными разработками. Будут сформированы новые команды со своими тим-лидами. Моей задачей будет поддержка всей платформы в некоем едином и правильном техническом состоянии. Проект «СКАУТ-Платформа» можно расширять до бесконечности. Поэтому мы планируем разрабатывать на его основе новые классные продукты.