
PowerFLOW a.s.
- Popis
- Rozvoj a údržba low-code / no-code platformy založenej na technológiách Camunda a Form.io pre riadenie a dohľad nad firemnými a výrobnými agendami a procesmi.
- Typ projektu
- Zákazkový — tím
- Začiatok
- december 2022
- Koniec
- júl 2025
- Adresa projektu
- https://powerflow.cz
- Zručnosti
O projekte
Naskočenie do projektu no-code/low code platformy založenej okolo technológií ako Camunda (7.xx), Form.io, Zeebe, framework Spring.
Štart
V čase začatia tejto spolupráce projekt:
- vzniká ako samostatná entita a oddeľuje sa od svojej materskej firmy NOTIX s.r.o. s veľkými ambíciami a vyhliadkami do budúcnosti, ktoré vyžadujú ešte dosť veľa práce na nových funkcionalitách jednak daných plánom na rozvoj produktu, ale aj požiadavkami už existujúcich zákazníkov a čiastočne aj splácanie technologického dlhu ktorý je niekedy nevyhnutný na prepožičanie času a naplnenie biznisových cieľov.
- len nedávno začal fungovať ako nová iterácia verzie 3, kde sa udiali dosť zásadné ale potrebné zmeny pre fungovanie niektorých hlavných súčastí aby boli umožnené budúce implementácie a rozširovanie produktu
V tomto čase ako prvé začínam opravou a doplňovaním automatizovaných integračných testov, ktorých sú kvantá a na základe ktorých sa učím koncepciu, funkcionality a rozsiahlu codebase a architektúru platformy.
Postupne v tíme preberám zodpovednosť aj za riešenie zákazníkom hlásených incidentov alebo interne testovacím oddelením.
Rozbeh
Do konca prvého roka pôsobenia dostávam na zodpovednosť aj rozsiahlejšie implementačné celky (30+ MDs) na základe analytického zadania.
Podpora pre zákazníkov a testingom reportované incidenty funguje v tíme na báze dvoch skupín vývojárov a dvojtýždenných striedačiek.
Prichádza nové vedenie a posila na obchodné aktivity, ale hlavne sa taktiež rožširuje vývojový tým a vzniká osobitné DevOps oddelenie a začínam sa čiastočne zúčastňovať aj na na aktivitách ako:
- migrácia hlavnej mikroslužby (kto vymyslel ten názov mikroslužba, niekedy je to moloch) z frameworku Spring na Spring Boot
- oddelenie sa od infraštruktúry materskej firmy
- vzniká DevOps oddelenie
- migrácia z BitBucket na GitHub
- migrácia CI/CD z Jenkins + BitBucket na GitHub Actions
- migrácia z "interného cloudu" - železo v datacentre vo vlastnej správe do Microsoft Azure
- opustenie on-premise, platforma už vyžaduje Kubernetes cluster
- upgrade knižníc a zastaravajúcich súčastí ktorým končí podpora ako napríklad:
- MongoDB
- verzie databáz Oracle a Postgres
- Komponenty, ktoré používajú legacy kód materskej firmy
- Otázka ohľadne podpory Camunda 7.xx a nový licenčný model pre 8.xx
Kríza a začiatok zmien
Pred koncom druhého roka pôsobenia sa však atmosféra a realita prakticky zo dňa na deň mení bez predošlých varovných signálov
- ako tím začíname vnímať že obchodné aktivity pri väčších zákazníkoch vyžadujú podstatne viac času
- došlo k nevyhnutnému rozhodnutiu o redukcii kapacít tímu
- podľa môjho vnímania nebola do tímu komunikovaná žiadna včasná informácia o potenciálnych organizačných alebo kapacitných zmenách, na ktorú by sa členovia tímu mohli včas pripraviť
- v priebehu tohto obdobia časť kolegov odišla dobrovoľne. Z rozhovorov, ktoré som s niektorými z nich viedol, som nadobudol dojem, že ich rozhodnutie súviselo aj s tým, ako vnímali zmeny vo vedení a zmenu spôsobu komunikácie
- myslím si že konečná redukcia kapacít bola podstatne vyššia ako by som očakával pre projekt takejto komplexity
Samota a výzva
Pred koncom druhého roka ostávam na projekte ako jediný vývojár. Z udalostí, ktoré nastali nie som vôbec štastný a taktiež rozmýšlam nad odchodom. Naskytá sa ale jedinečná príležitosť skúsiť pozíciu rovno seniora / tech leada a ustáť to, nabrať nové skúsenosti a schopnosti. Ak by som to nezvládol, nevyčítal by som si to, mal by som vážne pochybnosti o udržateľnosti projektu.
Počas nasledujúcich 8-9 mesiacov moja práca vyzerala nasledovne:
- bugfixing a zákaznícke incidenty
- analýza
- štúdium vecí, ku ktorým na internete, dokumentácií a fórach moc toho nie je, lebo to nie sú generické veci čo ľudia bastlia aj podomácky
- vrátenie podpory na on-premise prostredie - kompletné nasadenie k menšiemu zákazníkovi
- vytvorenie lokálneho docker-compose pre lokálny debug a testovanie
- vytvorenie virtualBox image s funkčnou platformou + hotswap lokálne zbuildeného zdrojového kódu pomocou virtualBox shared folders pre ešte jednoduchší lokálny debug a spustenie platformy
- posledný mesiac revízia a opravy dokumentácie (confluence), dokumentácia postupu a procesov nasadzovania a vydávania verzií k jednotlivým zákazníkom, zaúčanie nového vývojára
Záver
Po 9 mesiacoch som začal vnímať že:
- síce som sa niektoré nové veci naučil, ale cítim že rastiem len zlomok toho čo v kolektíve, len zarastám do legacy codebase projektu
- Drvivú väčšinu času s testermi trávime prácou na L1 až L3 zákazníckej podpore ktorú vnímam ako ubíjajúcu a frustrujúcu ak nie je striedaná s inými aktivitami
- po ďalších 9 mesiacoch sa moje pochybnosti o udržateľnosti projektu nezlepšili
- vzhľadom na znásobenú náročnosť a objem práce som očakával aj určité zvýšené ohodnotenie, nie pizza party, nie len prísľuby do budúcnosti
- do práce som už vstával vyslovene s odporom, v takomto nastavení mysle nesmie človek čo sa chce rozvíjať zotrvávať
- je vysoká pravdepodobnosť vyhorieť a nabehnúť na režim "robím len do výšky odmeny" namiesto "robím čo zvládnem ale očakávam pozitívny dopad na budúcnosť"
- je to čas za ktorý môže človeku ujsť vlak za lepšou príležitosťou