kolmapäev, 26. aprill 2017
Ergonoomika
reede, 21. aprill 2017
Tarkvaratehnika???
Kas Sina tead, mis on tarkvaratehnika? Olen küll juba mõnda aega IT alal toimetanud, aga kui ma seda sõna esimest korda kuulsin/lugesin, ei osanud ma seda kohe kuidagi seostada sellega, mis see olema peaks. Esimese hooga mõtlesin, et see on sarnane hübriid nagu mehhatroonika - mehaanika ja elektroonika. Ehk siis tekkis sarnane paralleel tarkvara ja riistvara. Aga nagu selgus, nii see asi ei ole.
Mis siis on tarkvaratehnika? Kõige lihtsamini oleks seda paari sõnaga kokku võtta vast nii, tarkvaratehnika on tarkvara arendusmeetod. Või teine variant on otsetõlge, tarkvara inseneeria (software engineering) mis on samuti veidi mõistetavam. Veidi veel asja seletuseks. Tarkvaratehnika ei tegele koodi/tarkvara loomisega, vaid paneb paika, kuidas tarkvara luua. Milliseid protsesse, protseduure kasutada.
Vanimaks ja tänini suuremates ettevõtetes kasutavaks takrvaratehnika meetodiks on kosemudel. Kosemudeli puhul läbitakse kõik tarkvara arenduse juurde käivad sammud - nõuded, analüüs, disain, programmeerimine, testimine, rakendamine - üksteise järel. Arenduses on kindlad etapid. Näiteks koodi kirjutamine ei alga enne, kui disain on lõplikult paigas ja omakorda disaini ei tehta enne, kui on analüüs tehtud jne. Kõik arenduse sammud on rangelt paigas.
Teiseks levinumaks meetodiks on agiilne ehk väle, paindlik arendamine. Agiilse arendusmudeli puhul ei võib näiteks testimine alata juba analüüsi tegemisel. See tähendab seda, et testija on juba analüüsi tegemisel protsessi kaasatud ning nõustab analüütikut. Samamoodi disainer ja programmeerija. Lisaks on agiilse arenduse puhul väga olulisel kohal kliendiga suhtlus.
Kosemudel ja selle tuletised ja edasiarendused on siiani päris paljudes vanemates ja suuremates ettevõtetes kasutusel, kuid väiksemad ja värskemad nagu on näiteks startupid kasutavad peamiselt mõnd agiilset arendusmudelit. Tihti võetakse mingi algul kõige enam sobiv mudel ja siis ajajooksul kohandatakse seda vastavalt oma äranägemisele. Üheks põnevamaks selliseks näiteks on Spotify arendus.
Spotify arendus sai alguse 2008. aastal. Kuna alguses oli küllaltki väike meeskond, mis tarkvara arendusega tegeles võeti kasutusele scrum arendusmudel. Kuid ettevõtte ning töötajate arvu kasvades hakkasid scrum'i reeglid ja tseremooniad arendus protsesse piirama. Sellele järeldusele jõudes arendati scrumi eeskujul endale sobiv mudel, mis andis igale meeskonnale suurema vabaduse ise valida, kuidas töö tehtud saab. Kuid et selline mudel, kus kõik meeskonnad võivad vabalt valida, kuidas nad mingit probleemi lahendavad, peab ikkagi suur pilt olemas olema. Juhid peavad suuna paika panema. Vastasel juhul hakkab iga tiim ise suunas liikuma ja sellest head nahka ei saa.
Spotify engineering culture
Lisaks võib võtta Spotify ka üheks väga õnnestunud ärimudeli valikuga tooteks. Tegu on freemium (Free && Premium) ärimudeliga, mis omakorda on veel tarkvara kui teenus ärimudel. Ehk siis tarkvara pakutakse nii tasuta kui ka tasulise kuupõhise tasuga teenusena. Arvestades, et Spotify saab edukalt selliste hiidude, nagu on Google ja Apple, vastu, on nad oma ärimudeli hästi valinud.