Знаете ли, че един от най-обещаващите продукти с отворен код за мащабно управление на Kubernetes в света се разработва от SAP Labs България? Или това, че местният отдел е въвел идея за междуекипна проверка на код, към която проявяват интерес в Германия и Израел? Поглеждайки назад към първите години на софийския офис, инженерите тук също са създали и инструмент за анализиране на паметта на Java приложения, който днес се използва от милиони разработчици по света. Всички тези иновации са се случили паралелно с непрестанното развитие на SAP Cloud Platform, платформа-като-услуга (PaaS), която до днешен ден е помогнала на повече от 17 хил. корпоративни клиенти да развият своите приложения в сигурна облачна компютърна среда, управлявана от SAP. Идеята за този продукт също се е зародила в България и в момента голяма част от местния екип работи върху него.
По какъв начин SAP Labs България постига тези значими в глобален мащаб резултати? И какви са технологиите, процесите и практиките, използвани за това? Именно това са темите, които ще разгледаме в тази статия.
Open-source култура
Още от самото начало екипът на SAP Labs България е активна част от обществото на open source софтуер, както когато става въпрос за принос, така и за интеграции на решения с отворен код, които са част от SAP продукти.
“Около 80% от SAP Cloud Platform е базирана на отворен код. На ниво инфраструктура, ние работим с Kubernetes. Поради тази причина, наред с Java, Golang става все по-важен за нас. Когато става въпрос за бази данни, използваме PostgreSQL, Redis, и MongoDB, а за уеб сървър – Apache Tomcat. Мисля, че общо в нашите проекти сме интегрирали повече от 300 технологии с отворен код. Приносът ни към обществото на open-source софтуер обаче е по-интересната част,” ни разказва Стоян Велев, Старши мениджър на екипи за разработка на софтуер в SAP Labs България.
Gardener е софтуер с отворен код за управлението на мащабни Kubernetes клъстери, който е създаден в партньорство между офисите на SAP Labs в България и Германия. Може да бъде използван за автоматизацията на управлението на хиляди хетерогенни клъстери от Kubernetes на различни облаци, като например Google Cloud, AWS, Azure, и vSphere.
“Всички основни облачни платформи предлагат Kubernetes като услуга. Съществуват обаче много бизнеси, които имат нужда от лесно конфигуриране, инсталиране и мониторинг на не 1, 2, или 10 инстанции, а на стотици или хиляди такива. До скоро нямаше продукт с open-source софтуер, който да им позволява да разрешат този проблем. Затова, заедно с колегите от Германия, решихме да създадем такъв. В момента около една трета от продукта се разработва в България и аз лично вярвам, че това е един от най-обещаващите и иновативни проекти на SAP на световно ниво,” споделя Стоян.
Други примери за иновативни инструменти с отворен код, които са разработени с активно българско участие са OpenUI5 – уеб фронт-енд JS библиотека за разработката на мащабни, модерно изглеждащи уеб приложения и Java Memory Analyzer, който помага на разработчиците да анализират и оптимизират използваната памет.
Споделяне на знания
Споделянето на знания е друга културна нагласа, приета от екипа на SAP Labs България. На вътрешно екипно ниво, опитни колеги често провеждат обучения и всеки е готов да помогне на останалите с менторство или споделяне на съвети по различни теми. В същото време, има около 200 души в компанията, които доброволстват да прекарват своето свободно време, работейки по образователни инициативи извън организацията, преподавайки курсове в университетите, или представяйки теми пред обществото от разработчици на различни срещи. SAP Labs България стои зад “Роботика за България” – програма, която помага на учители да създадат клубове по роботика в училищата, като предоставя на учениците оборудване, менторство и възможности да участват в състезания по роботика. Друг интересен проект е SAP GeekyCamp – безплатна ИТ академия за гимназисти.
Пренасяйки това отношение към непрекъснатото подобряване и учене на по-оперативно ниво, SAP Labs България са създали така нареченото “tech excellence community”. Мисията на това общество е да надгради техническото ниво на инженерите в компанията чрез независими peer проверки на код и документиране на добри и лоши практики.
“Всяко едно парче код бива преглеждано независимо от двама колеги от два различни екипа – това води до по-голямо ниво на обективност и, в голяма компания като SAP, помага с междуекипното синхонизиране, тъй като хората научават с какво се занимават останалите. Ние започнахме тази инициатива преди много години и с времето привлякохме вниманието на мениджърите на SAP в Германия и Израел, които поискаха техните инженери също да се присъединят,” споделя Стоян.
От идея до пускане на пазара
Едно от най-големите конкурентни предимства на SAP днес е това, че международната компания е пазарен лидер в развиването на бизнес приложения от деселителия. Затова компанията може да покаже на потенциални клиенти редица успехи в оптимизирането на бизнес процесите на най-добрите компании в различни индустрии.
Много от продуктите на SAP са плод на ко-иновация с клиенти. В най-ранните фази, това се случва чрез много канали – от събития за технологии и бизнес, където клиенти на SAP споделят обратна връзка за идеи, до по-таргетирани инициативи, целящи да открият какви проблеми имат клиентите и каква част от тях искат да разрешат.
“Не може да иновираш без да се срещнеш с хората, чиито проблеми се опитваш да разрешиш,” заявява Стоян. Методологии, които са фокусирани върху клиента, като например дизайн мислене, също се прилагат в SAP – включително работилници с клиенти, итеративно прототипиране, и тестове с реални потребители.
Scaled Agile
Веднъж щом продуктът е създаден, следва мащабиран agile процес, който се използва за непрекъснатата доставка на подобрения. Имайки предвид мащаба на продуктите на SAP, обикновено са необходими няколко екипа от няколко различни локации, за да бъде разработен един продукт. Например 1400 души от България, Германия, Израел, и Индия работят само по ядрото на SAP Cloud Platform, а още няколко хиляди допринасят за разработката на целия продукт – като всеки един от тях използва lean-agile методология в най-чистата ѝ форма. България беше една от пилотните държави на SAP, които имплементираха agile методологиите – още през 2006. “Едно от най-готините неща е супер бързата обратна връзка – всяка итерация продължава две седмици, така че всеки 14 дни, можеш да забележиш подобрение и бива пусната нова версия на платформата,” разказва Стоян.
От гледна точка на организационната структура, в SAP има три нива продуктови мениджъри. Главният Продуктов Мениджър (Chief Product Owner) е отговорен за визията и стратегията на целия продукт, а отделно всяка продуктова под-структура има отделен ръководител (Area Product Owner), който работи с няколко екипа от разработчици, всеки от които си има собствен продуктов ръководител (Product Owner).
В SAP Labs България, екипите са създадени по крос-функционален начин и общо взето всички роли, необходими за развитието на един продукт, са събрани на едно и също място – продуктовият мениджър, Scrum ръководителят, софтуерните архитекти, разработчиците, дизайнерите на потребителско изживяване и хората, следящи за осигуряване на качество – обединени от предприемачески дух и мисия да се достави висококачествен софтуерен продукт.
Разгледай отворените позиции в SAP Labs Bulgaria тук.