
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ákazka — viacero subjektov, tímový projekt
- 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 dochádza k určitým zmenám pomerov a zvratom v obchodných aktivitách. Toto má za následok nútenú redukciu kapacít a časť tímu odchádza dobrovoľne z vlastného rozhodnutia.
Je to obrovská škoda, tím naozaj fungoval ako nefalšovaný startup a každý jeden do toho dal viac ako by od neho požadoval uzavretý kontrakt. [EDIT] S niektorými ľudmi sa stretnem na nasledujúcom projekte a rád by som sa aj s ďalšími na ďalších projektoch.
Samota a výzva
Na projekte nakoniec ostáva za backend jediný vývojár s najnižšou hodnosťou obyčajného pešiaka - ja. Uvažujem taktiež o odchode ale aj o príležitosti posunúť sa a musieť riešit problematiky, ktoré boli doménou seniorných vývojárov a analytikov.
Počas nasledujúcich 8-9 mesiacov moja práca vyzerala nasledovne:
- bugfixing a zákaznícke incidenty
- príprava a vydávanie service packov a jednej novej verzie
- technická analýza, HLD, návrh pridania určitej zákazníkom požadovanej funkcionality alebo zmeny správania
- štúdium vecí, ktoré sa v dokumentácií a fórach moc nenachádzajú alebo sú predmetom plateného supportu pre danú platformu
- vrátenie podpory na on-premise prostredie - kompletné nasadenie platformy 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é 2 mesiace aj účasť na prijímacích pohovoroch pre ďalšiu posilu, resp. náhradu
- 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 obklopený ďalšími kolegami a seniormi, ktorí predávajú vedomosti, skúsenosti a posúvajú človeka do nových výziev - 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é ocenenie zásluh okrem pochvalných slov predovšetkým formou zvýšeného ohodnotenia
- začínam pociťovať že nie každá výzva je výzvou, ktorú treba v živote prijať a zdolať
- niekedy je lepšie ísť bojovať na iné pole
- možno mi zatiaľ odchádza vlak za lepšou príležitosťou
- podstatná zmena firemnej kultúry
Post mortem
- po ukončení hlavnej činnosti pre túto spoločnosť ďalej ešte cca 6 mesiacov poskytujem konzultácie v objeme cca 0.5 až 1 FTE za týždeň