Septembri alguses tegelesin ma kooli kõrvalt enda hoole alla antud rakendustele viimaste paranduste tegemisega. Kuna suur live oli ära, minu rakenduste juures sai töö otsa, uued arendused lükkusid välistel põhjustel edasi ning kogu osakonna töömahud alanesid märgatavalt, tekkis inimeste ülejääk ning paljud arendajad saadeti üle teistesse osakondadesse. Seetõttu tuli osakonna juht esmaspäeva, 9. septembri õhtul minu tuppa ning teatas, et minu vastu tunneb huvi siseveebi osakond.

Samal neljapäeval korjasin oma asjad kokku ning kolisin neli korrust allapoole ülejäänud siseveebi meeskonna juurde.* Lühidalt kokku võttes oli olukord niisugune: Kogu suve olid uut siseveebi ehitanud samuti TTÜ-st praktikal olnud Karl ja Lilia. Praktika lõppedes viidi Karl aga täielikult üle teise osakonda. Siseveebi osakonda saabusid hiljuti ka kaks uut praktikanti, kes on Polütehnikumist ning kellel puudus igasugune kokkupuude meie poolt kasutusel olevate programmeerimiskeelte ja raamistikega, seetõttu oli vaja juurde ka ühte pisut kogenumat arendajat, kes tegeleks suuremate ülesannetega ning õpetaks samal ajal ka nooremaid.

* - Siit tuleb ka selle postituse pilt. Et blogi kujundus ebasümmetriline poleks, panen iga postituse pildiks mingisuguse antud perioodil tehtud foto ning seekord pole mul võtta midagi paremat kui esimesel päeval tehtud pilt soolatopsist. Leiba paraku võtta ei olnud, niiet soolaleivapidu ei toimunud...

Kui MTA tiimi kirjeldamine oleks võtnud mitu postitust ning seetõttu ma eriti kedagi nimepidi ei nimetanud, siis siseveebiga on lihtne: Meie nö. projektijuhiks on firma raamatupidaja, projekti arhitektiks on Siim, kes oli muuseas Karli ja Lilia praktikajuhendajaks. Arendajaid on kokku neli: Lilia, mina ja kaks uut praktikanti.

See on minu jaoks värskendav kogemus, kuna tiim on väikesem ning kõik teised arendajad on ligikaudu sama vanad kui mina. Seetõttu on suhtlus vabam, kuna projektijuht ei ole IT-inimene, on ülesannete kirjeldused ähmased ning selle nädala keskel oli üks olukord, kus rääkisime üksteisest täiesti mööda, kuid õnneks lahenes ka see olukord sõbralikult. Arendus põhineb SCRUM-il, ühe sprindi pikkuseks on üks nädal. On aru saada, et meeskond vastab rohkem minu tasemele, kuna kui MTA-s oli mul koosolekutel vaevu midagi öelda, siis siseveebi igahommikustel SCRUM standupidel kipun ma olema üks aktiivsemaid.

Minu esimene nädal kulges tehes veaparandusi ning lõpptulemusena on uus siseveeb nüüd seisus, kus selle võiks praktiliselt kohe kasutusse võtta. Seejärel saabus aeg uute arenduste jaoks ning kõigepealt määrati minu nimele minu vana osakonnajuhataja “tellitud” süsteemid. Suundusin oma vanasse “koju” ning läksin temalt täpsemaid süsteemikirjeldusi küsima. Kuna süsteemid nõuaks muudatusi ka teises firmasiseses rakendustes, leppisime kokku kohtumise selle arendajaga, mis pidi esmalt toimuma esmaspäeval, kuid lükkus lõpuks edasi kolmapäeva. Kohtumine kestis poolteist tundi, mistõttu ma ei jõudnud ühte loengusse, ning lõpp-otsuseks jäi, et muudatused jäävad “seedimisele” kuni oktoobrikuu alguseni.

Kuna veaparandusi tehes olin avastanud mitmeid tehnilisi puudujääke, tegelesin koosolekute jms vahel nende parandamisega: näiteks olid frontendis paralleelselt peal kaks Babeli versiooni (põhjuseks see, et nad muutsid vahepeal enda package-te nimesid), kusjuures kasutusel oli neist vanem. Samuti olid kasutusel HTML a tagid kohtades, kus oleks võinud kasutada React Routeri link tage, laeti lehe sisu asemel uuesti kogu leht.

Üks konkreetne tehniline ülesanne, mille lahenduse eest sain kiita nii projekti arhitektilt kui ka ülejäänud meeskonnalt, oli seotud andmebaasipäringutega: Meeskonna lehekülje kuvamisel oli backendi logidest näha, et andmebaasile tehakse väga palju päringuid. Kõigepealt laeti ühe päringuga kõigi isikute andmed ning seejärel laeti eraldi iga isiku oskused ja profiilipilt. Isiku oskuste laadimine tehti seejuures sama HTTP päringu käigus ning seetõttu võttis see päring aega keskmiselt 1.5 kuni 2 sekundit, mida on niisuguse ülesande jaoks liiga palju. Muutsin isikute laadimise päringut, et selle käigus võetaks kaasa ka isikute oskused. Kuna Oracle SQL ei toeta array andmetüüpi, muutsin oskused päringu sees komadega eraldatud stringiks. Seejärel oli vaja see string tagasi masinale kergesti loetavale kujule viia ning mu soov oli, et seda ei peaks tegema manuaalselt service-i sees, vaid selle teeks automaatselt ära andmebaasi mappimiseks kasutusel olev MyBatis. Natukese googeldamise järel selgus, et nõnda ongi võimalik teha, seega kirjutasin vastava MyBatise type handleri. Seejärel pidin tegema ka mõne muudatuse frontendis ning töö tasus end kindlasti ära: antud päring võtab nüüd aega vaid murdosa sekundist. Profiilipiltide laadimise jätsin pärast katsetamist praegusele kujule, kuna need laetakse peale lehe kuvamist eraldi HTTP päringutega ning nende sama päringuga kaasa panemine pikendaks lehe laadimisaega hoopis ~10 sekundini.

Üleeile (reedel) sain uue ülesande, andmaks raamatupidajatele võimaluse valida, missuguse ettevõtte (Icefire-i alla kuulub mitu ettevõtet) palgal töötaja on ning missugune on tema töölepingu vorm. Vastavalt töötaja firmale ning töölepingu vormile peaks muutuma ka muu funktsionaalsus, näiteks lähetusele saatmine ja puhkused. Ma ei ole veel jõudnud ülesandesse põhjalikult süveneda, kuid tegemist peaks olema minu seni kõige mahukama ülesandega (latt ei ole kõrgel).

Mitmel erineval põhjusel (ma pole postitustega olnud piisavalt aktiivne, ma olen septembris kohal käinud keskmiselt 0.75 kohaga ning mul pole siiani lihtsalt olnud piisavalt mahukaid ülesandeid, millest rääkida) teen ma nädala või kahe pärast veel ühe “tavalise” postituse, kus räägin täpsemalt praegu pooleli olevast arendusest, ning seejärel võtan praktikaperioodi eraldi kokku.