Често сравняват програмирането с готвенето и това не е случайно. За да носи наслада и удовлетворение, крайният продукт и в двата случая се нуждае от задължителни съставки като експертни познания, години практика, креативност, смелост да експериментираш, постоянно тестване и „готвачи”, които наистина обичат това, което правят. Но присъда за успеха или неуспеха на готовото блюдо даваме ние, потребителите.
Процесът никога не е лесен, но се усложнява още повече, ако продуктът е предназначен за 3.5 милиона „кулинарни критици”, колкото наброява световната общност на Progress от разработчици. Използвайки пакетите от UI компоненти на компанията, за да създадат с тях своите качествени, икономични и бързи приложения, те първи забелязват техническите несъвършенства, задават най-щекотливите въпроси и връщат най-безпощадната обратна връзка.
За да разберем повече какво е усещането да програмираш за програмисти, как се създават и надграждат подобни продукти и каква е мотивацията на един разработчик да се развива в тази динамична посока, се срещаме с Иван Тодоров, главен софтуерен инженер в екипа за Progress Telerik UI for .NET MAUI, Стефан Мариянов, главен инженер „Техническа поддръжка” в Progress KendoReact, и Панайот Цанков, старши главен софтуерен инженер в Progress Visual Studio Extensions, а разговорът ни започва от…
Пътищата, които водят към Progress
Преди да се присъедини към компанията, Иван разработва бизнес приложения за крайни клиенти. Подобен тип работа често е рутинна и за да се разнообрази, Иван започва да създава готови модули, които да се ползват на различни места и от повече колеги. „Така се роди идеята да потърся реализация в компания, която се занимава с разработката на компоненти, предназначени за програмисти.” Намира я преди 13 години в лицето на Progress, като без притеснение започва от най-ниското ниво — това на junior програмиста, за да добие опит с палитрата от технологии, операционни системи и устройства, преди да продължи напред.
Панайот, от своя страна, има опит в областта на уеб технологиите и през 2009 г. успешно прехвърля натрупаните познания на позицията Front-end developer в Progress. Паралелно с това се гмурка в .NЕТ океана и работи по тясно специализирани десктоп компоненти.
„В един момент се отвори възможност да се пренасоча към мобилни разработки, като за целта имахме вътрешни onboarding лекции за новите технологии като iOS, Android и open source. По-късно се включих в проучване как AR и VR могат да се използват в бизнеса и познанията ми дойдоха много на място.”
В момента Progress вече има AR и VR компоненти на пазара, а Панайот работи по Visual Studio Code Extensions, ориентирани към web разработчиците като част от Visual Studio Extensions екипа на Progress.
Историята на Стефан също ни звучи позната. От малък проявява интерес към новите технологии, но той истински се разпалва по време на курсовете на Telerik Academy, на които се записва през 2015 г. След това веднага започва да прилага наученото на практика в Progress. Преминава последователно през няколко екипа като специалист „Техническа поддръжка”, като веднага прави уточнението, че „Това е много специфична позиция в нашата компания, защото е силно техническа.
Клиентите ни са други програмисти и ние ги подкрепяме при създаването на техните приложения. От нас се изисква да сме много добре технически подготвени.”
За изграждането на нужната експертиза помага динамиката на работата, свободата сам да избере технологията, с която да работи, както и подкрепата на по-опитните му колеги, която води и до по-бързото му професионално развитие. Работата му е интересна и защото постоянно комуникира с клиентите на KendoReact, разрешава сложни инженерни проблеми, разработва компоненти и приложения и прави демонстрации на техните функционалности и възможности да бъдат комбинирани в друг краен продукт.
Като лего, но за напреднали
Пакетите от UI компоненти на Progress представляват професионално създадени и готови за използване „заготовки“, които целят да облекчат живота на всеки програмист, независимо в кой сектор работи. .NET MAUI например е framework за разработка на междуплатформени приложения, който Microsoft все още изгражда. За да успее един такъв framework, той се нуждае от широка гама от готови визуални компоненти, които разработчиците да използват, за да не пишат код за всяка отделна платформа. От друга страна, създаването на подобни компоненти е дълъг и сложен процес, затова Microsoft предлага базата, а доставчици като Progress и екипът на Иван в частност сътворяват нужния набор от визуални „блокчета”.
Целта е с един-единствен код бързо и лесно да се изградят приложения за различни платформи, които в същото време да се държат така, все едно са програмирани за всяка една от тях. „Като продукт сме първи на пазара и имаме най-богатия набор от готови решения, с които програмистите създават своите приложения. Поставили сме си амбициозната задача да предоставяме zero-day поддръжка за .NET MAUI — с излизането на всяка нова версия пускаме нова версия на нашите компоненти.” Това изисква сътрудничество с разработчиците от Microsoft на ежедневна база, защото технологията е нова и компонентите на Progress се развиват паралелно с нея, „а очакванията към тях са същите като очакванията към нещата, които създават Microsoft.”
Стефан подчертава, че бързината на компонентите също е приоритет при разработката им. KendoReact например се използва от компании, които работят с огромен набор от данни и за тях бързината на компонента е от първостепенно значение. Към момента библиотеката на KendoReact предлага над 100 UI компонента — от бутончето до data grid-а и графиката, а най-използваният компонент за последната седмица е изтеглен над 50 хил. пъти. „Всеки ден стотици хиляди хора в цял свят програмират с тази технология. Ако разработчикът трябва сам да напише един data grid, това може да му отнеме месеци, а с нашите компоненти е готов за няколко дена, защото предлагаме готови продукти, които се конфигурират лесно. За мен това е нещо уникално, което можеш да изживееш на много малко места”, казва Стефан.
Visual Studio Code също е сравнително нова идея, като в тази ниша доскоро няма пазарен лидер, но Microsoft вече привлече голяма част от програмистите. До момента Панайот и колегите му от Visual Studio Extensions са таргетирали предимно за .NЕТ девелопъри, но предстои да достигнат и уеб средите, за което работят върху Visual Studio Code Extensions за Progress KendoUI. Освен това в екипа на Панайот използват и поддържат много системи в Progress, като се грижат за целия процес — от това готовите компоненти да бъдат пакетирани и предложени на клиентите до свързването с техните акаунти и машини.
„Уеб продуктите ни носят духа на съвместната работа, типична за общността на разработчиците, и моята задача е така да подредя системите, които изграждат Visual Studio Code екстеншъните, че да могат всички web екипи в Progress да допринасят към тях. UI компонентите на Progress предоставят строителните блокове за всяко модерно приложение. Visual Studio и Visual Studio Code екстеншъните разширяват функционалностите на работната среда и подобряват продуктивността на програмистите, използващи нашите UI компоненти.”
Но как се раждат тези полезни блокчета?
Инженерните екипи в Progress обогатяват библиотеките си от компоненти, следвайки няколко доказали се в практиката посоки. Първата е активното вслушване в нуждите на програмистите, за което екипът по техническа поддръжка играе ключова роля. „Имаме близо 97% удовлетвореност на клиентите и я поддържаме на това ниво, откакто съм в Progress. Винаги се опитваме да дадем повече от себе си и да помогнем на клиента. Това отношение се е превърнало в манталитет на съпорт организацията в цялата компания,” казва Стефан.
Панайот допълва, че филтърът между техническия съпорт и разработчиците в Progress е много изтънен, което позволява обратната връзка да стига навреме до инженерите, за да знаят в реално време какви са нуждите на клиента. През 2020 г. екипът по техническа поддръжка е отличен в категорията Pushing the Envelope за иновативния си подход при разрешаването на клиентските проблеми, а през 2019 г. компанията е включена в топ 10 за най-добър уебсайт за техническа поддръжка. И двете награди са присъдени от глобалната Association of Support Professionals.
Следващата стъпка е навременният отговор на нуждите и предложенията на клиентите, за да могат да постигнат своите бизнес цели. „Това е сложен процес, защото често работим с технологии, които не са завършени и техните проблеми рефлектират и при нас. Качеството е процес — постоянно пускаме нови продукти на пазара и паралелно с това подобряваме вече съществуващите. В същото време разработчиците на софтуер са едни от най-взискателните клиенти и изискванията към качеството на продукта често са същите, каквито са и очакванията към самия .NET framework,” допълва Иван.
Програмистите в Progress следят под лупа и световните тенденции и стандарти, за да са една крачка пред тях и да предложат продукти, преди потребителите гласно да са ги поискали. Това изисква не само техническа експертиза в различни области, но и отвореност към иновациите и активно споделяне на знания и опит. За целта в компанията редовно организират вътрешни хакатони, сесии и презентации, на които споделят и експериментират с различни лични хрумки, част от които впоследствие програмистите по света използват и под формата на нови визуални компоненти.
Не на последно място иновации се раждат само от хора, които наистина се наслаждават на това, което правят. „От години съм фен на известна марка слушалки, които в един момент ни станаха клиент”, споделя Панайот. „Невероятно е, когато компании, чиито продукти ползваш, идват при теб, за да ги направиш още по-добри.” Добавя, че днес едно от големите предизвикателства е преминаването към open source и това, което отличава Progress на пазара, е че програмистите знаят какво получават срещу своите пари — експертен технически съпорт, бърза реакция, която често е критична, сигурност за собствените си разработки и не на последно място – получават времето и отдадеността на българските инженери.
„Идваме заради технологиите, оставаме заради хората”
На фона на огромния избор от IT работодатели и възможности за работа не само у нас, нямаше как да не попитаме какво ги задържа на едно място толкова дълго време. Веднага ни поправят, че само мястото на работа е едно и също, но същността ѝ е в постоянно движение.
За Иван възможността за хоризонтално развитие е ключов фактор, защото „Един специалист, ако реши да се развива като програмист, дори да има най-голямата експертиза днес, след пет години знанията му вече няма да са актуални. Това се случва, когато човек работи само за един продукт и с една технология. При нас това го няма, защото винаги сме в крак с най-новите технологии и можем да мигрираме между различни проекти и екипи. Продуктите ни са cutting-edge и така работим по нови и актуални неща. Това ми позволява да се развивам като специалист, да не стоя на едно място и винаги да имам актуални знания и опит на пазара на труда.” Разнообразието от нови технологии съвсем естествено води до придобиването на нови знания, конструктивен сблъсък с нови проблеми и решения и не на последно място — избягване на синдрома на професионалната скука.
Стефан добавя, че работата му е интересна и заради факта, че работи не само с нова технология, но с такава, каквато лично той иска: „Проявих интерес да се занимавам с React и получих точно тази възможност. Разбира се, има много предизвикателства в работата ми, но това обичат да правят хората като мен — всеки ден да решаваме различни проблеми и да имаме разнообразие от клиенти и продукти. Това е друга причина, която ме задържа в Progress.”
Накрая пак опираме до самите хора в компанията като най-големият мотиватор служителите да останат в нея — колегите, които „винаги са изключително приятелски настроени и склонни да помагат със знания и свежи идеи”, опитните специалисти, които дават сериозно рамо за бързото израстване на „новаците”, и мениджърите, които не отказват обучения и менторство.
Панайот обобщава: „Първото нещо, което ме доведе в Progress, бяха технологиите и възможността да се развивам. В един момент обаче спираш да обръщаш толкова внимание на технологиите и започваш да обръщаш внимание на хората, защото усещането за общност и екипност е огромно. За тези години завързахме приятелства, отгледахме деца, дори си направихме детски център. Тук програмистите не си говорим с компютъра, а с хора. Големите продукти се създават от големи екипи, в които на първо място всички трябва да умеем да общуваме и да сме човечни.”
Ако и вие не се страхувате да създавате продукти за програмисти в екипи от човеци, вижте какви са актуалните кариерни възможности в Progress в Job Board-а на DEV.BG.