*Текстът е предоставен от AMPECO
AMPECO e българска компания, основана преди 3 години. Тя разработва изцяло cloud-базирана софтуерна платформа за управление на зарядни станции за електрически автомобили, която се използва от над 35.000 станции на 6 континента.
Зад международния пробив на компанията стои визията на шестима основатели и посветеността на над 50 колеги, между които опитни ръководители на проекти, back-end, front-end и full-stack софтуерни инженери, продуктови мениджъри и др. Екипът постоянно се разраства, защото AMPECO се развива в ниша от глобалния бизнес, която е в процес на свръхрастеж и търсенето за продукта на компанията е огромно.
Не само нишата на електромобилността отличава компанията – надали в България има много други компании, които използват за работа в екипа метода на pair programming толкова интензивно, колкото AMPECO. При този тип програмиране двама разработчици работят заедно и едновременно решават обща задача. Използването на подхода в ежедневната работа гарантира качеството на кода. В тази статия ще разкажем в детайл какви са другите ползи от pair programming за екипа и компанията – но и какви са недостатъците на подхода.
В търсене на качествени решения
В свое скорошно интервю за DEV.BG Александър Алексиев, CTO и съосновател на AMPECO, разказа, че задачите, които решават инженерите в компанията са основно „интересни”. От една страна причината за това е индустрията, която тепърва се формира и постоянно създава нови казуси. От друга – писането на повтарящия се код обикновено се автоматизира.
Интересните задачи същевременно изискват качествени решения. Основателите на компанията още в самото начало решават да работят по метода на pair programming, за да оптимизират работата в компанията, но се сблъскват с проблем. В AMPECO работното време е гъвкаво и се оказва трудно двойките програмисти да се синхронизират. И все пак, както и много други методологии, концепции и технологии, наложени в компанията, и pair programming се развива до успешно работещ модел за колегите в екипа след няколко итерации.
„Пробивът дойде, когато решихме двойките да са гъвкави и взаимозаменяеми”, казва Алекс. „Окей е колега да влезе на мястото на друг, ако някой се разболее или е в отпуска. Окей е също един колега да работи сам известно време, докато другият отиде да си вземе детето от детска градина или училище например.”
„Авторът е Жоропетър”
Как точно се случва процеса на pair programming в AMPECO? Двама софтуерни инженери работят едновременно по един и същ проблем. Само един от тях държи клавиатурата и пише кода, другият гледа кода и по думите на Алекс „мисли с две стъпки напред”. Между двамата колеги постоянно има диалог.
Таймер отчита минути, предварително определени от двойката. „Когато таймерът звънне, единият колега вдига ръцете от клавиатурата и другият буквално трябва да продължи мисълта му”, казва Алекс.
Според него интензивното използване на pair programming наистина помага за качеството на кода, защото той се преглежда постоянно ад-хок. Подходът елиминира и възможността програмистите в AMPECO дълго време да се движат в грешна посока. „Двамата колеги брейнстормват във всеки един момент”, казва още Алекс. „Така в крайна сметка задачата е направена от двамата и не можеш да кажеш, че решението идва от Жоро или Петър, защото авторът в крайна сметка е Жоропетър”.
Kaкви са недостатъците
Алекс казва, че често му се задава въпросът дали при pair programming подхода не се губи време на двама колеги. Според него обаче практиката на AMPECO показва, че скоростта по-скоро е една и съща спрямо времето, което двама програмисти биха отделили на даден проблем.
В същото време обаче качеството се повишава значително. „При интересните задачи лимитиращият фактор не е скоростта, с която един разработчик може да пише на клавиатурата”, допълва Алекс. „Лимитиращият фактор е намирането на качественото решение. Възможността за брейнсторминг с колега решава този проблем.”
И все пак при pair programming го има недостатъкът, че заради постоянната комуникация между двамата колеги, подходът би бил неприложим в голям отворен офис. „В момента обаче, работейки от вкъщи (home office), като че ли „пречим” само и единствено на съседите”, смее се Алекс.
Постоянно развитие на всеки в екипа
CTO-то на AMPECO допълва, че именно пандемията е единият важен фактор защо програмирането по двойки се възприема много положително от екипа на компанията. „Колегите казват, че така се работи по-приятно, като със сигурност това се дължи и на факта, че сме изолирани един от друг”.
За Алекс има и друга важна причина – много компании използват pair programming с обучителна цел на млади програмисти. При AMPECO в него участват двама опитни инженери, което има стойност за тях, защото всеки в двойката взима опит от другия и така общото ниво на екипа се развива.
Допълнително, подходът на компанията двойките да са гъвкави допринася за това експертизата да не остава в главата само на определени колеги. Или както казва Алекс Алексиев: „За нас в AMPECO e абсолютен приоритет знанието в екипа да се споделя.”