Späť
PowerFLOW

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ň