19 октомври, 2019

Борислав Танев е един от главните двигатели зад софтуера на Wattbike – най-точното тренировъчно колело, което проследява резултатите на потребителите след всяка тренировъчна сесия и помага в постигането на по-добри резултати. Продуктът се използва не само от феновете на спорта, но и от олимпийски шампиони при подготовка за предстоящи състезания. Научете от Борислав, един oт създателите на Tumba Solutions Ltd., какво означава да работиш с хъс и страст, неговата история за едно колело, което се оказва проектът на мечтите му.

Как Wattbike се превърна в твоя проект – мечта?

Преди 4 години получихме възможност да помогнем на Wattbike с осъвременяването на техния цялостен продукт. Wattbike са малка, но добре известна английска компания в колоездачните среди. Продуктът, който създадоха преди около 15 години бързо се наложи в тренировъчните среди, защото предложи сигурен, добре измерим и предвидим начин на тренировка в голям диапазон на спортисти от високо ниво. Той е проектиран и направен да даде точните метрики на професионалистите с гранулярността, която изискват в интервалите, които само те могат да достигнат. Използван е не само от колоездачи, но и от ръгбисти, футболисти, боксьори – все спортове, в които експлозивната мощ е важна.

Аз, бидейки любител колоездач, още от самото начало добре познавах бранда и продукта. За мен да работя по този продукт бе като сбъдната мечта, комбинирах любимите си неща и хобита в една цел и фокусирах енергията си в направата на продукт, който с удоволствие бих ползвал.

Началото на нашата съвместна история с Wattbike бе просто. Те тъкмо бяха пуснали на пазара втората итерация на тренировъчната си конзола Wattbike Performance Monitor ModelB. С нея те отваряха платформата си за интеграции с външни продукти с отворени стандарти като ANT+ Speed and distance profile и Power profile, но в същото време поставиха основата, с която може да надграждат лесно продукта си. Нашата първа цел бе да изградим придружаващо колелото приложение, с чиято помощ потребителите могат да записват характерните за Wattbike метрики на своите тренировъчни сесии, а като бонус да бъде изграден и прототип на програмен продукт за структурирани тренировки, който да бъде представен на The Cycle Show през септември 2015г.


[work in progress, 2015]

Какви бяха предизвикателствата, които срещнахте тогава?

Още в самото начало стана ясно, че данните, които колелото генерира са твърде много за да бъдат предадени в суров вид през BLE протокола за комуникация и се наложи да осъществим директна комуникация с електронните инженери в екипа с цел да разработим механизми как да нямаме загуба на точност при пренос на данните. Работата по продукти, които изискват синхронизиране на различни по естество екипи е винаги интересна, на мен лично ми помогна много да разширя знанията в области, които съм застъпвал само академично в ТУ-София. Досега с практиката и проблемите, които се решават от другата страна на клавиатурата, лично за мен, помага на всеки софтуерен разработчик да разбере, че не всичко е дискретно, съществуват и електрически сигнали, на които трябва да бъде обърнато сериозно внимание и ако в една сфера нещо е лесен за решаване проблем, то в друга може да бъде физически невъзможен.

Какво може да направи един програмист, за да бъде винаги в крак с последните технологии в динамично променящия се ИТ сектор?

Програмирането е една силно динамична професия, всяка година се раждат нови технологии и умират стари. Има технологии и принципи доказани във времето, но средата в която се прилагат еволюира или се променя (дори изчезва) напълно, принципите също еволюират. За да може един програмист да е актуален и способен във времето, той не трябва да спира да чете, да се учи, да трупа опит от трудовете на великани. Дори и да пише само за една единствена платформа или да е тясно специализиран на ниско ниво, няма никаква сигурност че платформата му ще живее колкото него (или нея). За сметка на това е абсолютно сигурно, че ако платформата е жива, то тя ще се развива, на моменти дори и радикално.

Как технологичния сектор оказа влияние на избора ви на технологии за разработка?

През 2014 година Apple, обявиха новия си език за програмиране Swift, на всички ни стана ясно къде е фокуса на тази голяма компания и накъде смята да развива платформите си, не че Objective-C ще умре, но няма как да си програмист в платформата на Apple без да си добре запознат със Swift и програмните принципите, които иска да наложи. Точно в този момент започвахме и нашият съвместен път с Wattbike и едно радикално решение, от рода на какъв програмен език да бъде изграден даден продукт, бе взето от Apple.

Използването на изцяло нов програмен език, който току що е излязъл и откриването на какво е способен винаги е интересно, дори някак мога да го сравня с хакването и разчоплянето на нова джаджа, с която сте се сдобили. Бързо стана ясно, че езикът е много способен и дава свобода на програмиста да изгражда приложения по начин различен, от който е свикнал на Objective-C. В този момент искахме да се срещнем и комуникираме с хора, които също сега откриват този нов език, искаме да споделяме проблемите си и да чуем как други решават своите и така някак естествено се роди и #SwiftSofia meetup. На пръв поглед две несвързани помежду си теми, а една се яви като катализатор на другата.


[първи #SwiftSofia Meetup]

През този период от време още доста гореща тема бе и Functional Reactive Programming. На пръв поглед започваме нов проект, избрали сме нов програмен език със силно изразени функционални принципи, налага се да обработваме и конвертираме големи потоци от сигнали и да реагираме на тези сигнали, то тогава и решението да изградим тези нови продукти на принципите на Functional Reactive Programming не бе трудно. Базирането на продукта на Functional Reactive Programming ни позволи още и логиката, която е отговорна за контролиране и комуникиране с колелото да бъде идентична и за двете мобилни платформи iOS и Android.

Разкажи ни за процеса по създаването на тренировъчната платформа.

След изграждането на основите и след публичната демонстрация какво може да се очаква от специализираното приложение за структурирани тренировки към Wattbike, дойде момента то да бъде изградено като продукт готов да бъде пуснат на пазара. Преминахме от едно простичко приложение-концепция, което записва данните от колелото към продукт за тренировки, следене на прогреса и тренировъчни планове. Продукт, който е използван от световни и олимпийски шампиони, готвейки се за следващия сезон и състезание, както и просто от хора, които искат да подобрят физическото си състояние или се възстановят след травма.

Чрез съветите и насоките, които дадохме за развиването и изграждането на продукта бързо успяхме да спечелим по-водеща роля, това доведе до повишаване на нашите отговорности, но и свобода да вземаме решения за бъдещото развитие на продукта. След няколко месечна усилена работа през февруари 2016 година успяхме да направим едновременен пуск за двете мобилни платформи. И след този момент работа по продукта удвои…

Как екипът успя да изгради инфраструктура способна да расте и да се развива?

Очаквано след пуска на тренировъчната платформата използваемостта на продукта се повиши. Инфрастуктурата, която бе изградена от екип във Wattbike, да поддържа и управлява съдържанието и потребителите с големи скокове започна да се приближава до лимита си. Съвсем логично следващата стъпка към развитието на продукта бе да се изгради скалируема инфраструктура и API способно да се разраства лесно и в същото време да е достатъчно гъвкаво, че да позволява добавяне на различни модули с нови функционалности.

Имахме пред себе си избора да направим нещо добре познато старо или да се огледаме как са се развили услугите в различните Cloud доставчици. В този момент Google Cloud Platform бе набрала вече сила и се бе доказала в индустрията. В същото време kubernetes бе вече една стабилна платформа, която по лесен начин решаваше един сложен проблем, а именно как да се постигне 0 downtime при нов deployment, но най-вече това което ни хареса в k8s бе, че средата изцяло може да бъде описана с конфигурациони файлове, които да бъдат под version control и така неусетно, нещата за които сме чели като infrastructure as a code станаха обозрими и лесно постижими.

Докато изграждахме новото API за продукта, работата по мобилните приложение не спря, дори темповете, с които се искат нови функционалности се увеличиха. Радвам се, че сме успели така да изградим екипите и хората в тях, че да са достатъчно гъвкави. През този период от време голяма част от хората в компанията са дали част от своята експертиза там където е било необходимо в момента когато е било необходимо. Ако нямахме гъвкава структура нямаше да можем да направим исканото от нас или поне не с този бюджет.

Интересен малък детайл е, че API логиката също е базирана на Functional Reactive Programming принципите. По този начин успяхме да направим така че хората в екипа да могат свободно да работят по всички компоненти на продукта.

 

 

Все повече хора използват продукта и така се стигна до един прекрасен декемврийски ден на 2016г., в който в 5 сутринта, спряхме старата инфраструктура, мигрирахме данните към новата и в 8 сутринта новото API заедно с обновените мобилни приложения бяха достъпни за потребителите.

Към днешна дата новата инфраструктура е обработила 11 пъти повече тренировъчни сесии от колкото са били в момента на миграцията или ако го обобщим към време на тренировка е сравнимо с 151 човекогодини.

Какво е различното и иновативното в Wattbike?

Интересното в продукт като Wattbike, е че след всяка постигната цел, идва следващата по-амбициозна от предната. За времето, което сме заедно успяхме да премахнем границите в различните инженерни екипи, комуникацията е свободна и директна между хората защото всички преследваме една цел – да направим съвършеното и най-точното тренировъчно колело.

Точно това се случи през 2017 година. И това не е хвалба без покритие.

Силните страни на съществуващото до момента колело са: неговата здравина, точност, предвидимост, автономност и почти никаква поддръжка. То е прекрасен продукт за тренировъчни зали и натоварванията, на които апаратурата в подобни зали е подложена, не е проблем за него.

Wattbike като компания се насочи да направи изцяло нов продукт фокусиран върху домашния потребител, който взима най-добро от сегашно, разширява възможностите му, добавя съвремени отворени комуникационни протоколи за лесна интеграция с останалия свят и не на последно място да го направи красиво и да прилича като истинско колело.


[първи оперативен прототип]

Новият агресивен вид на колелото показва скорост, показва резултати след тежка работа, показва че това е инструмент за тренировки използван от златни олимпийски медалисти. Wattbike бе в процес на цялостна смяна на визията си във всички аспекти, от хартиени и видео материали, online визия и цялостно визуално преправяне на използваните от потребителите продукти, което включва и използваните до момента мобилни приложения.

 

 

Наложи се да работим паралелно по няколко направления, по изчистване на техническите характеристики на новото колело, създаване и тестване на механизми за контрол на новите тренировъчни възможности, а и в същото време да преправяме визията на потребителските приложения. В този момент за наше щастие успяхме да работим с Иван Гинев от Cog Graphics. Да работиш със способен дизайнер, който успява да преведе дизайнерския език на един brand book на лесни за изпълнение презентационни инструкции и концепции е голямо улеснение за всеки един програмист. Той също се оказа запален колоездач и това му даде допълнителна мотивация.

И през лятото на 2017 година с един синхронизиран пуск, успяхме да пуснем на пазара новата цялостна визия на компанията. Остана ни само да довършим функционалност за новото дълго очаквано колело, или поне така планираме.

Имаше ли други нововъведения, които промениха посоката на проекта?

В продължение на много месеци преди това знаехме, че Wattbike работят по нова метрика за измерване на ефективността на педалиране заедно с д-р Барни Уейнрайт. Ситуацията така се получи, че в този момента данните доказаха теорията на д-р Уейнрайт и ние имахме всичко необходимо за да може да вградим този нов механизъм наречен Pedal Effectiveness Score (PES) в продукта.

Как работата с д-р Уейнрайт оказа влияние на разработката?

Работата с учени е един интересен опит, за да можем да конвертирате една теория в практиката имахме доста разговори и дискусии как да можем практически да “олекотим” изчисленията, така че да можем в реално време при всеки един оборот да пресмятаме неговата ефективност без да губим никаква точност. И всъщност се справихме доста бързо, месец по-късно след пуска на ребрандирането успяхме да пуснем и тази нова метриката на пазара.И всъщност се справихме доста бързо, месец по-късно след пуска на ребрандирането успяхме да пуснем и тази нова метриката на пазара. И това за компания като Wattbike със слоган Obsessed With Performance и Data in Our DNA бе доста голямо събитие. Те за разлика от други продукти със своя метрика, те нямаха лукса да бъдат с “плаваща” точност и не базирани на публикуван и доказан научен труд. Знаят, че продукта им се ползва от професионалисти и всичко, което се добавя с него трябва да бъде от полза и на най-добрите в света.

Това събитие бе доста голямо през тази година, но най-голямото все още предстоящо. От нас се искаше само да завършим и пуснем в производство новото колело. Следващите няколко месеца бяха доста интензивни, с промени и усъвършенствания в последния момент, всеки един от колегите, работещи по този продукт, даде нещо от себе си, но резултата е впечатляващ.

През септември 2017 година Wattbike Atom бе обявен и пуснат за покупка в същия ден…

Ще ни разкриете ли какво да очакваме от Wattbike в бъдеще?

За да спазим традицията, следващото нещо, което сме подготвили отново надминава предходните във всяко едно отношение. С още по тясна работа с колеги от целия свят успяхме да постигнем чудеса. През април 2019 година ще започне писането на следващата глава от историята на тренировъчните продукти, а останалите да му мислят 🙂

 

View this post on Instagram

 

A post shared by Wattbike (@wattbike) on

Интервюто проведе Вяра Стефчева.

Тагове: , , , , , , , , , , , , , , , , , , ,