Hosszútávú sikerek
Az idei Országos IT Megmérettetésen kategóriamenedzserként vettünk részt egy számunkra különösen fontos témával, ami nem más, mint a Technical Debt Management.
A többi kategóriával ellentétben mi nem egy programnyelvet, frameworköt vagy algoritmusokat akartunk megtanítani a verseny résztvevőinek.
Úgy látjuk, hogy kevesen oktatják azokat a képességeket, amelyek hosszú távon igazán meghatározzák egy fejlesztő és egy csapat sikerét.
Például, hogyan bánunk legacy-rendszerekben a kódbázisainkkal akkor, amikor már nem frissek, nem szépek, vagy nem ideális körülmények között születtek. Hasonlóan nagy kihívást jelent a komplex, robosztus, nagy rendelkezésre állású rendszerekkel való munka is, hiszen
ezekben bármiféle nem kívánt módosításnak is óriási üzleti következményei lehetnek.
Az elhanyagolt konyha esete
A Technical Debt (technikai adósság) olyan, mint egy elhanyagolt konyha. Minden megvan a főzéshez, de a rendetlenség, a tompa kések és a koszos pult miatt minden lépés időigényes és frusztráló. Ugyanez történik egy elhanyagolt kódbázissal is:
a funkcionalitás működik, de minden változtatás egyre több energiába és költségbe kerül.
Uncle Bob egy olyan szakmai példakép sok szoftverfejlesztő számára, aki könyveiben gyakran ír, előadásaiban pedig sokszor beszél arról, hogy mi vezethet egy fejlesztőcsapat lelassulásához és mit tehetünk hosszú távon a stabil munkatempó fenntartásáért.
Szavaival élve a szoftvereknek két értéke van: a viselkedésük és a szerkezetük. Tapasztalatunk szerint az utóbbi, tehát
az architektúra a fontosabb, mert ez teszi lehetővé azt a rugalmasságot, amire a mai üzleti világban elengedhetetlenül szükség van.
Egy rendszer lehet ma működőképes, de ha a felépítése rossz, a jövőbeli üzleti igényeknél azonnal akadállyá válik. A technikai adósság súlyát gyakran csak a fejlesztők érzik, miközben az üzleti döntéshozók számára láthatatlan marad. (Pedig valójában nem láthatatlan – csak átalakul.)
A technikai adóssággal terhelt kód a mindennapi munka során organikusan, szinte észrevétlenül születik meg, ezt sok év tapasztalat után szándékosan, kontrollált módon reprodukálni nem triviális. A feladatok készítése során vissza kellett nyúlnunk korábbi időszakokhoz, önreflexión keresztül elemezni a saját hibáinkat, és az azóta bekövetkező változásokat is, hiszen a legacy-kódot jellemzően mi magunk írtuk. A hosszútávú együttműködésben hiszünk, tehát folyamatosan fejlesztjük, támogatjuk és supportáljuk is a rendszereinket – legyen az idővel akár egyre nagyobb kihívás. Pontosan
ezt a felelősséget szerettük volna megmutatni a feladatokon keresztül.
Laci bácsi, a nyugdíjas programozó
Ezeket a gondolatokat szerettük volna a versenyzők elé tárni minél gyakorlatiasabb formában, tehát
elméleti tudás helyett konkrét, problémásan felépített kódbázisokon keresztül.
Hamar kiderült, hogy ilyen jellegű feladatokat létrehozni és megfogalmazni kifejezetten nehéz. Fel kellett ismernünk, mennyire nagy fába vágtuk a fejszénket. Óvakodtunk attól is, hogy a téma túlságosan száraz legyen. Ezért született meg Laci bácsi karaktere: az irodaházban portásként dolgozó nyugdíjas programozó, aki évtizedek óta fejleszt, mindent „jól megoldott”, viszont közben felhalmozta a technikai adósságot, mert nem figyelt a kódbázis fenntarthatósági, továbbfejleszthetőségi kérdéseire.
A feladatokban a versenyzők az irodaház mindennapi feladatait megoldó kódbázisokkal találkoztak:
- parkolókezelés,
- kölcsönnyilvántartás,
- digitális jegyrendszer.
A kódbázisok tele voltak rejtett csapdákkal: elavult kommentekkel, hibás feltételekkel, rossz egyenlőségvizsgálatokkal, félrecsúszott és túltervezett absztrakciókkal.
Ezek látszólag programozói hibáknak tűnhetnek, hiszen helytelenül működő szoftvert, hibákat eredményezhetnek. Sokkal fontosabb viszont az a tény, hogy ezzel együtt lelassítják a csapatot és elveszik az időt a valódi értékteremtéstől.
Minden ilyen rejtett csapda lassabb reakciót és magasabb fenntartási költséget jelent a mindennapokban –
pontosan azt, amit egy üzleti környezet a legkevésbé engedhet meg magának.
Programozóként ezeket minden esetben kivédeni sem lehet, hiszen gyakran félinformációkból, feltételezésekből dolgozunk. Annak ellenére, hogy a legjobb szakmaisággal állunk az előttünk álló feladatokhoz, döntéseink idővel elavulhatnak a változó körülmények hatására.
Laci bácsi és az irodaház története, a narratíva segítette a megértést, a problémák pedig nagyon is ismerősek voltak: sok junior fejlesztő először itt találkozott tudatosan ezekkel a jelenségekkel, a tapasztaltabbak pedig pontosan tudták, miről van szó. Reményeink szerint ezzel
olyan tudást adtunk a résztvevők kezébe, amelyet a saját munkájukban és karrierjük során hasonló helyzetekben is hasznosítani tudnak.
Feladatainkkal és Laci bácsi kalandos irodaházi mindennapjaival itt ismerkedhetsz meg.
Ritkán kerül felszínre a téma
A megmérettetésen résztvevők visszajelzései jelentették a legnagyobb megerősítést a számunkra:
a fenntartható, hosszú távon karbantartható szoftverek kérdése nemcsak fontos, hanem kifejezetten érdekli a közösséget.
Visszaigazolást kaptunk a feltételezésünkre, miszerint ritkán kerül felszínre ez a téma, pedig minden szoftver esetén fontos ennek szem előtt tartása.
A mai üzleti környezetben ez az egyik legnagyobb kihívást jelentő kérdéskör.


