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

Vananenud lahenduste märkimine Kotlinis

Vahepeal selgub uus ja parem viis kuidas, mingeid probleeme lahendada. Peale uue lahenduse realiseerimist saab selle küll kohe kasutsuel võta, aga tekkib küsimus, et mida teha kohe kõigi teiste kohtadega, mis kasutavad eelmist ja nüüdseks aegunud lahendust. Üks variant on võtta aega ja uue ...

Probleemide tükeldamine

Tarkvaaraarenduses on vana ja levinud arusaam, et suured probleemid või ülesanded on vaja lahutada väiksemateks ja hoomatavateks tükkideks. Enamasti on kõik sellega nõus, kuid selle põhimõtte rakendamine igapäevases töös on oluliselt raskem kui teoorias. Väljamõeldud näidisolukorras on lih ...

Paralleelsete muudatuste muster

Paralleelsete muudatuste muster aitab liidestes (interface) teha muudatusi selliselt, et need on alati tagasiühilduvad. Selleks jagatakse muudatusete tegemine 3 faasi: laienda, migreeri, koonda. Vahel kutsutaksegi seda ka "laienda ja koonda" mustriks. See on alternatiiv näiteks liideste ve ...

Tagurpidi Conway manööver

Tagurpidi Conway manööver tähendab seda, et organisatsioon või meeskond ehitatakse üles selliselt, et nende struktuur kajastaks soovitud tarkvara arhitektuuri. See põhineb Conway seadusel, mis ütleb, et infosüsteemide arhitektuur peegeldab organisatsiooni enda ülesehitust ja suhtluskanalei ...

Lõplik ja lõputa mäng

Paljusid tegevusi saab käsitleda kui lõplikke või lõputa mängudena. Lõpliku mängu puhul on teada mängureeglid ja defineeritud olukord, mille saabumisel mäng lõppeb ja üks osalejatest on mängu võitnud. Probleem on aga selles, et inimesed mängivad paljusid mänge lõplike mängudena, mis tegeli ...

Kotlini tühjad tüübid

Kui Java's on meetodi tagastustüübiks, mis mitte midagi ei tagasta, tühitüüp void, siis Kotlinis on tühje tagastustüüpe kaks - Unit ja Nothing. Unit - Sisaldab ainult 1 väärtust, mis indikeerib, et meetod lõpetas oma töö edukalt. Seega mingit muud lisainfot tagastada ei ole võimalik Nothin ...

Kotlini platvormitüüp

Javas võivad kõik muutujad lisaks defineeritud tüübile ka viidata null ehk tühjale väärtusele. Kuna aga Kotlinis käsitletakse null'itavad tüübidefinitsioone eraldi (need märgistatakse ? sümboliga), siis oleks Kotlinist Java objektide kasutamine väga tüütu - alati tuleks koodis kasutada kas ...

Märkmete salvestamiseks Obsidian

Aeg-ajalt koguneb teadmisi, mis oleks mõistlik üles märkida. Kasutasin varasemalt paljusid erinevaid tooteid samaaegselt - OneNote, GMail mustandid, Google Docs failid ning juhuslikud tekstifailid arvuti kõvakettal. Kuid probleeme hakkas tekkima märkmete leidmisel. Teadsid, et kusagile sai ...