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á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