Scrum ja Kanban

Arendajana kuuleb tihti agiilsete raamistike nimesid nagu Scrum ja Kanban. Kuna enamus ettevõtteid tavaliselt ei kasuta ühtegi neist täiesti puhtal õpikukujul, vaid ainult osasid elemente, siis võibki jääda segaseks, et mida nad täpselt tähendavad või mille poolest erinevad. Scrum Detail ...

IntelliJga muudatuste võrdlemine

IntelliJ pakub koodimuudatuste võrdlemiseks 2 erinevat reziimi: kõrvuti- ja koondvaade. Mõistlik on nende vahel varieerida vastavalt olukorrale. Kõrvutivaade Mõistlik kasudata siis, kui muudatused hõlmavad korraga mitut rida. Näiteks on defineeritud uusi meetodeid või olemasolevaid suures ...

Spring Boot andmebaasi testimine

Andmebaaside testimiseks Spring Boot raamistikus käivitatakse tihti kogu rakenduse kontekst. See aga võib kaua aega võtta, ning muu hulgas käivitada ka antud olukorras mittevajalikke teenuseid, nagu Kafka sõnumite kuulamine või ajastatud tööd (cron job). Selliste olukordade lahendamiseks p ...

Palgaläbirääkimisest

Palgaläbirääkimised on enamike inimeste jaoks ilmselt ebameeldiv tegevus, mida võimalusel lükatakse edasi nii palju kui võimalik. Samas on edukate palgaläbirääkimisete aluseks harjutamine ja ei saa eeldada, et kõnelused lähevad väga hästi kui seda tehakse näiteks kord 5 aasta järel. Seega ...

Retro koosolek

Retro koosolekud, ei ole ainult Scrum raamistikku kuuluv tegevus, vaid seda koosoleku formaati võivad kasutada kõik meeskonnad, et muuta enda tööprotsesse paremaks ning õppida iseenda kogemustest. Retro koosolek peaks keskenduma pigem meeskkonna koos toimimisele ning protsessidele ja vähem ...

Laiuti ja sügavuti teadmised

Inimkonna teadmiste eksponentsiaalne kasv on tekitanud olukorra, kus mingist valdkonnast aru saamseks tuleb kaua sügavuti tutvuda juba varasemalt olemasolevate teadmistega. See tekitab väga sügavat spetsialiseerumist, kus inimeste teadmised on küll väga põhjalikud, kuid piiratud kitsas val ...

Kotlini invoke() operaator

Kotlinis on olemas operaator nimega invoke. Kui klassis defineerida see operaator, siis on koods võimalik kutsuda klassi instantse välja ilma meetodi nime defineerimata. Kui klass teeb ainult ühte tegevust ja klassi enda nimi on piisavalt arusaadav, võib kaaluda invoke() operaatori definee ...

Kotlini vaikeväärtused JSONi deserialiseerimisel

Kotlinis vaikeväärtuste lisamine võimaldab andmeobjekte muuta ning lisada välju koos piirangutega, et antud väli ei ole kunagi väärtustamata (null). Selline lahendus töötab väga hästi näiteks andmebaasist loetavate andmetega, kuna andmeobjektide loomise üle on täielik kontroll ning väärtus ...

Ajagraafikute konflikt

Arendajate ja juhtkonna ajaplaneerimine toimuvad väga erinevalt. Kui arendajad teevad süvenemist vajavat tööd, siis nende päevaplaan koosneb suurtest töötegemise ajablokkidest. Katkestus sellise bloki keskel tähendab, et suur osa sellest läheb raisku. Peale katkestust ei ole võimalik tööd ...

Goodharti seadus

Marilyn Strathern üldistas kunagi Goodhart'i ütluse nii tabavat, et seda hakati kutsuma Goodhart seaduseks. Tõlgitul võiks see kõlada umbes nii: Meetrika ei ole enam hea mõõde, kui sellest saab sihtmärk. Sisuliselt järeldub sellest, et ohtlik on valida meetrikaid, millega kvantifitseeri ...

Kotlini tüübialias

Kotlinis on võimalik defineerida andmetüübi nimedele aliaseid ja seega viidata samale tüübile teise nimega. See on väga praktiline kui olemasolev tüübinimi on juba väga pikk ja lohisev. Näiteks: Või anda näiteks primitiivsetele andmetüüpidele olukorda paremini kirjeldav nimi: Kuna tüübi ...

Testkeskkonna taastamine

Üritades tarkvara ehitamise protsess üle viia GitHub Actions keskkonda, tekkis probleem integratsioonitestidega, mis järku enam ei töötanud. Esialgu kahtlustasime pikalt probleemi kasutuses oleva SpringBoot embedded Kafka või Wiremockiga. Aga lõpuks selgus, et viga oli hoopis Ping veebires ...

Cynefin raamistik

Cynefin raamistik lahterdab olukorrad kategooriatesse, mille abi on kergem mõista, et kuidas sellisetel juhtudel reageerida ning toimuvat tõlgendada. Raamistik jagab olukorrad 2 gruppi: ettearvatavad ja ettearvamatute põhjuste ning tagajärgedega. Olukordade kategooriad: Segadus (Confusion ...

IntelliJ jooksutuskeskkonnad

Mõnikord on tarvis tarkvara testimiseks jooksutada ka mujal, kui enda lokaalses keskkonnas. Selle jaoks on IntelliJ olemas jooksutuskeskkondade valik - Run Targets. Sellega saab näiteks kasutades Windowsi kompileerida tarkvara hoopis Linuxi keskkonnas (Windows Subsystem for Linux). Või joo ...

Teisi pärssivad tegevused

Soovides olla abivalmis ja meeskonna tööd võimedav kolleeg, võime märkamatult kalduda tegevustele, millel on tegelikult hoopis vastupidine efekt - see võib pärssida nii inimeste, kui ka tervikuna meeskonna arengut. Ideede generaator Lahendust vajavate probleemide meeskonnaga arutamisel on ...