*Тeкстът е предоставен от Milestone Systems Bulgaria
Milestone Systems е датска компания, разработваща софтуер за видео мениджмънт и наблюдение. Вече 25 години компанията заема лидерска позиция в своята индустрия чрез постоянна иновация и стремеж за успех.
Основният продукт на Milestone Systems, XProtect® е ядрото на нашата отворена платформа. Екосистемата изградена около нея позволява съвместимост на най-широка гама от IP камери, енкодери и цифрови видеорекордери в сравнение с други конкурентни решения. Това прави Milestone Systems предпочитан партньор, гарантиращ сигурност и надеждност благодарение на иновативните си технологични решения.
Основно конкурентно предимство на Milestone Systems XProtect® е безалтернативното портфолио от над 13 000 интегрирани устройства. За развитието на това портфолио се грижи Device Integrations unit-a, който е изцяло базиран в софийския офис на Milestone Systems.
Следвайки историческите стъпки на компанията към иновации и подобрения, Device Integrations Unit-a, създава екипът Driver Framework, фокусиран върху разработването на нови концептуални решения за интеграция на устройства и модернизиране на архитектурата, чрез внедряването на най-модерните софтуерни технологии и инструменти.
За целите, предизвикателствата и постиженията на Driver Framework екипа и Device Integrations Unit-a разказват Максим Запрянов, Senior Principal Software Engineer и Красен Колев, Senior Engineering Manager.
Разкажете ни повече за Unit-a?
Driver Framework екипът е част от Device Integrations Unit-а, който е съставен от шест инженерни екипа. Ние се грижим за интеграцията на видео камери, сензори и хардуерни устройства с нашия основен продукт Milestone XProtect®.
Екипите ни се състоят от 5 до 7 инженери. Всеки екип има свободата да избира модела си на работа, както и до голяма степен технологиите и инструментите, с които да работи.
В Driver Framework екипа следваме принципите на Agile Software Development модела и използваме итеративно-инкрементален процес на разработка като инвестираме консистентно в continuous improvement и CI/CD.
Едно от най-големите постижения на екипите от Device Integrations Unit за изминалата година е достигането на 13000 официално поддържани устройства в екосистемата на Milestone XProtect®. Това е внушителна цифра, която сама по себе си говори за мащаба и важността на приноса на тези екипи.
Широкото портфолио от поддържани устройства осигурява многообразие, гъвкавост и свобода при разработването на дизайна и имплементацията на решения за нашите клиенти. Това е и една от основните причини да сме лидери на пазара за VMS решения в световен план.
Каква е целта на Driver Framework екипа?
Основната цел на екипа е да създаваме и поддържаме софтуерната основа, върху която надграждат останалите екипи в отдела. Създаваме микросървиси, библиотеки и всякакви инструменти, улесняващи интеграцията на нови устройства в Milestone XProtect®. Занимаваме се с мрежова комуникация, мултимедия, компресия и пренос на видео, аудио и мета съдържание.
Какви технологии използвате в Driver Framework екипа?
В нашият екип за Integrated Development Environment (IDE) основно използваме Visual Studio 2022, и се стремим да използваме максимума от възможностите му. Така улесняваме и ускоряваме процеса на разработка и поддръжка на проектите ни.
За CI/CD и VCS използваме Azure DevOps и Git, като скоро планираме да преминем и към GitHub Enterprise. Използваме CI/CD, за да разработваме нашите проекти по-лесно, по-бързо и с по-малък риск при бъдещи проекти.
Автоматизацията на build процеса и изпълнението на тестовете ни носи увереност в промените, които правим. Още при Pull Request-а знаем дали една промяна е покрила зададените от нас стандарти за качество, както и дали е удовлетворила всички наши тестове.
В момента разработваме проекти на C++, като се стараем да използваме C++ 20 стандарта. Най-новият стандарт ни позволява да пишем кода си с по-малко зависимости към външни библиотеки. Също така, кодът е по-лесно четим и разбираем.
Голяма част от помощните методи, които сме имали в миналото, вече сме заменили с функции от стандартната библиотека. По този начин намаляваме написания от нас код и тестовете за него. В бъдеще имаме планове за проекти, в които ще включим други програмни езици и технологии, за да използваме най-ефективното решение за конкретната цел.
За build система разчитаме на CMake и ninja. Това ни дава гъвкава система, на която можем да разчитаме за различни проекти, използващи различни технологии, и които са предназначени за всички платформи. Интегрираме CMake във Visual Studio, за по-лесна разработка и за да имаме възможност да използваме всички инструменти на IDE-то на Microsoft. Гъвкавостта на CMake ни позволява да имаме лесна за настройка build среда, която да използваме на нашите build агенти.
За управлението на използваните от нас пакети (както вътрешни, така и външни), се доверяваме на vcpkg. Това е сравнително нов packet manager, но с подкрепата на Microsoft и голямата общност от поддръжници, ни дава нужната стабилност. Чрез vcpkg интегрираме в проектите си едни от най-популярните библиотеки като boost, gRPC, gTest, Protobuf и OpenSSL.
Основен принцип на работната ни философия е „максимум функционалност, с минимум код и минимум dependency-та“. Целим се да открием най-доброто решение за всеки проблем и да не преоткриваме вече готови решения. Опитваме се да бъдем в крак с новостите, особено когато става въпрос за използване на технологии и експериментирането с тях.
Какви са най-големите предизвикателства, пред които сте се изправяли?
Най-големите предизвикателства, пред които сме се изправяли, са били свързани с модернизиране на архитектурата на съществуващите решения за интеграция на устройства, както и с промяната на начина ни на мислене и работа, позволявайки на екипа да еволюира по естествен път и да бъде прогресивен по отношение на технологии и модел на работа. Естествено, за справянето с тези предизвикателства винаги сме имали пълната подкрепа на технологичната организация на Milestone Systems, която ни е предоставяла необходимите ресурси и свобода на действие.
Каква е вашата рецепта за успех?
Driver Framework е екип, в който окуражаваме експериментите, не се притесняваме да изпробваме нови подходи на работа, технологии и инструменти. Стремим се всеки проект да позволява бързо събиране на обратна връзка от самото си начало и това ни дава гъвкавост при взимането на решения за следващите стъпки. За нас всеки проект носи добавена стойност, било то с постигнати цели или с научени уроци, които ни помагат да надграждаме и да ставаме по-добри в бъдеще.
Какви са вътрешните ви мотивации и driver-и, които ви мотивират да продължавате?
Смятаме, че вътрешната ни мотивация е породена от възможността да бъдем част от успеха на Milestone Systems в глобален план, като създаваме модерни технологични решения, използвайки най-съвременни технологии и концепции. Друг основен мотиватор е културата на учене и експериментиране в Milestone Systems, която позволява на всеки един от екипа непрекъснато да развива своите умения и да преодолява нови предизвикателства.
В момента Driver Framework екипът е във фаза на растеж и активна инвестиция в развитието му. Очакваме този екип да продължи да бъде фундаментът на Device Integrations unit-a, като за целта се стремим да разраснем екипа не само количествено, но и качествено, привличайки софтуерни инженери с разнообразен професионален опит и умения.