Thursday, April 25, 2019

11. nädal - Arendus- ja ärimudeli arvustus mõne firma/projekti näitel

Kahjuks peab nentima, et ma ei teadnud enne kursuse materjalide lugemist eriti midagi ei tarkvara arenduse- kui ka ärimudelitest. Agiilse tarkvara arenduse (Scrum) valisin ma eelkõige selle pärast, et see on väga levinud (mis tähendab, et selle tundmine tuleb edaspidi kindlasti kasuks). Ärimudeliks valisin ma tarkvara kui teenuse.

Scrum-i puhul võtsin ma näidiseks Salesforce-i. See tundus eriti huvitav, sest nad ei kasutanud mitte Scrum-i algusest peale, vaid nad alustasid kosemudeliga. Nad tundsid omal nahal, et miks kosemudelit enam eriti palju ei kasutata ja miks agiilsed mudelid nii populaarsed on. Alguses oli neil nii väike meeskond, et kõik arendajaid mahtusid ühe laua taha ära, mis muutis ka tarkvara arendamise lihtsamaks. Kui nad aga kasvasid ja nende pilvepõhised teenused järjest keerulisemaks muutusid, hakkasid ka probleemid ilmnema. Näiteks kui nad alguses tegid 4 korda aastas suuremaid versiooniuuendusi, siis aastaks 2006 (millal nad Scrum-ile üle hakkasid minema) suutsid nad vaevalt ühe uuenduse aastas teha. Arvestades et pilve üks suuremaid eeliseid ongi see, et uuendusi lisada on väga lihtne (sest kõik kasutavad serveris olevat versiooni), siis hea märk see ei olnud. Nad vaatasid, et praegune süsteem lihtsalt ei tööta. Peale Scrumile üle minekut toimuvad nende uuendused täpselt plaanipäraselt (4x aastas).

Mida see Scrum endast siis täpselt kujutab? Selle lahti kirjutamiseks tuleks üks (või isegi mitu) eraldi postitust teha nii et ma panen siia lihtsalt ühe video, mis seda seletab (video on ingl. keeles).

Tulles nüüd tagasi Salesforce näite juurde, siis Scrum andis neile 3 suurt eelist: läbipaistvuse ning motivatsiooni ja tootlikkuse tõusu. Väikese meeskonnaga on lihtne olla läbipaistev aga suurega muutub asi keeruliseks. Seda probleemi leevendab pidev suhtlemine... olgu see siis kas igapäevaste lühikokkuvõtetena, tabelina seinal (mis näitab kui kaugel keegi järjega on) või iga Sprindi lõpus tehtava kokkuvõte näol. Läbipaistvuse kohapealt on silmapaistev see, et nad näitavad klientidele viimase 30 päeva jooksul toimunud probleeme (mida tavaliselt firmad üritavad varjata). Kui alguses tegi asju lihtsamaks fakt, et üks inimene (või grupp) tegi kõik otsused, siis suuremates projektides hakkas see arendajate loovust piirama. Scrum aitas sellega, et vastutus (ja sellega kaasnev otsustusõigus) jagati meeskondade vahel ära. Loomulikult pidid nad üldist plaani järgima aga vähemalt oli neil mingisugune kontroll oma töö üle ja ei pidanud ülevalt poolt tulevat "Jumala sõna" ootama. Kolmas eelis tuli ka Salesforce enda jaoks üllatusena. Nimelt Scrum andis töötajatele veidi rohkem kontrolli ja jagas töö väiksemateks osadeks...  tänu sellele tekkis palju tihedamini selline tunne, et nad saavutasid midagi. See suurendas töö rahulolu mis omakorda suurendas tootlikust.

Nagu alguses mainitud sai, valisin ma ärimudeliks tarkvara kui teenuse (Software As A Service, edaspidi SAAS). Lühidalt võib öelda, et SAAS on tarkvara (õigemini selle kasutusõiguse) pakkumine teenusena. Teisisõnu... sa maksad kuumaksu (vms.) ja selle eest saad sa ligipääsu nende serveris olevale tarkvarale (tavaliselt läbi veebibrauseri). Nagu igal asjal taeva all, on ka siin omad plussid ja miinused. Plussideks oleks näiteks sellised asjad nagu platvormist sõltumatus, inimeste vahelise koostöö soodustamine (katsu panna 5 inimest ühte wordi/exceli faili korraga muutma), asukohast/arvutist sõltumatus jne. Samamoodi on siin ka omad miinused... nagu näiteks fakt, et nende teenuste kasutamiseks peab tavaliselt internetiühendus olemas olema (mille kiirus võib mõjutada teenuse kvaliteeti), brauseri probleemid (mõni asi ei tööta IE peal näiteks või nõuab mingit pluginat vms.) ja siis muidugi igasugu seadusandlikud nõuded (näiteks kus/kes võib hoiustada delikaatseid isikuandmeid jms.) Selle kohta toon ma kohe ühe näitena Euroopa isikuandmete kaitse üldmääruse, mis ütleb, et kolmandatesse riikidesse võib edastada isikuandmeid ainult siis kui on täidetud teatud tingimused. Seega isegi kui me võtame mõne kohaliku teenuse nagu näiteks Stuudium, siis nemad (niipalju kui mina tean) kasutavad Amazoni (AWS) oma andmete hoidmiseks (mis kohe kindlasti ei asu Eestis). Seega pead sa veenduma, et ka teenuse pakkuja vastab nendele nõudmistele mis sulle esitatakse.

Salesforce keskendub pilvepõhisele CRM (Customer Relationship Management) tarkvarale. Nende tugevus seisneb selles, et nende teenuseid on võimalik kiiresti kasutusele võtta, lihtsalt seadistada ja nad ühtivad paljude teiste platvormide / ärilahendustega. Suur osa nende sissetulekust pärineb Sales Cloud ja Service Cloud teenustel aga neil on ka terve rida muid pilveteenuseid. Kui te tahate lähemalt Salesforce-i ärimudeliga tutvuda, siis rohkem infot leiate te siit (ingl. k).

Wednesday, April 17, 2019

10. nädal - How To Become a Hacker arvustus

Ma ei ole küll varem arvustusi kirjutanud aga eks kunagi on ikka esimene kord. Vaatluse all on siis Eric Steven Raymondi poolt kirjutatud "How To Become a Hacker". Valisin inglise keelse versiooni kahel põhjusel... esiteks on ingl. keelne versioon uuem (kuigi ma kahtlen et seal märkimisväärseid muutusi oli) ja teine põhjus oli see, et originaal teksti uurides ei teki seda probleemi, et mina äkki tõlgendaks öeldut teistmoodi (olgem ausad... üks ühele tõlkides ei saa korralikku tõlget ja sõnade/lausete mõttest võivad eri inimesed erinevat moodi aru saada). Nii et põhjus ei olnud mitte selles, et ma eesti keelse tõlkega rahul ei olnud vaid (nagu ka teoses kirjas oli) on IT alal rahvusvaheliselt tunnustatud keeleks inglise keel, sest seal on kõige laiem erialane sõnavara (kuigi eesti keelde tuleb ka iga päevaga üha rohkem IT alaseid sõnu juurde... mis mulle isiklikult ei meeldi). Teos räägib laias laastus järgmistest asjadest. Kes/mis on häkker, milline on tema suhtumine, milliseid oskusi ta peaks omama ja "staatuse" koht häkkerite kultuuris.

Vaatame siis kõigepealt suhtumist. Tema põhiargumendiks siin on see, et maailm on täis igasugu huvitavaid probleeme ning neid on nii palju, et sama probleemi ei ole otstarbekas mitu korda lahendada. Selleks, et ei peaks seda tegema võiks inimesed oma lahendusi hoopis jagada, et ei oleks teistel vaja jalgratast leiutama hakata. Ta toob ka selle välja, et kuigi õige suhtumise omamine on tähtis... ei asenda see siiski teadmisi/kogemust. Oskustest toob ta välja, et eelkõige peaks oskama mitmeid programmeerimiskeeli. Sammuti soovitab ta Windowsi asemel kasutusele võtta mõne open-source Unixi laadse süsteemi (näiteks mõni tasuta Linuxi distro). Tähtsust omab ka inglise keele oskus. Kuigi tänapäeval on palju tarkvara (ning ka abi artikleid) kohalikus keeles saadaval, on inglise keelseid materjale ikka kordades rohkem. Näiteks linux-i levikule aitaski kaasa see, et Linus Torvalds (kes sündis Soomes) kommenteeris oma koodi inglise keeles. Viimase suure teemana tõi ta välja staatuse tähtsuse häkkerite kultuuris. See, et sa kutsud ennast häkkeriks ei tee sinust veel häkkerit. Kui teised häkkerid sind häkkerina tunnustavad, siis oled sa häkker. Selleks, et oma staatust tõsta on mitu viisi aga neil kõigil on üks ühine joon... tee midagi kasulikku ja jaga seda teistega (tasuta). Nagu öeldakse... kõige väärtuslikum asi on aeg... nii et kui sa panustad oma aega ja vaeva näiteks open-source projektide arendusse/testimisse, teed juhendeid/õpetusi või aitad mõnel muul moel kaasa, siis sind tavaliselt selle eest ka tunnustatakse.

Milline on siis minu vaade selle teose kohta. See tundub päris asjalik teos. Seletatakse ära, et milline üks tüüpiline häkker on ning kuidas sinna kultuuri sulanduda. Ma arvan, et paljud IT inimesed on õnnelikud ka selle üle, et oli lahti seletatud häkkeri ja crackeri erinevus (sest meediale meeldib neid ühte patta toppida). Mis puutub vabadustesse ja tsensuuri, siis nende vaadetega jään ma enam-vähem nõusse. Tsenseerimist ei seedi ma üldse (sellepärast ma arvangi, et SJW on hullud) aga mis puutub reeglitesse, siis päris ilma reegliteta ka kohe kindlasti ei saa... nii tekib kaos). Kahe käega olen ma ka selle poolt, et kompetents on tähtsam kui suhtumine. Siinkohal ei pea ma mitte seda silmas, et kui sa piisavalt hea oled, siis võid sa käituda nagu s**apea (kuigi see ei ole ka tõest kaugel). Pigem on asi selles, et osad inimesed räägivad väga enesekindlalt asjadest mida nad tegelikult ei valda ning see jätab mulje nagu nad oleks pädevad antud teemal. IT-s selline asi eriti läbi ei lähe (ja kui läheb, siis on tavaliselt keegi teine kes peab selle supi ära sööma).

Minu käest on ka küsitud, et kuidas häkkeriks saada (kuigi ma ennast häkkeriks ei pea... sest mu teadmised on väga puudulikud). Antud kontekstis peavad küsijad tavaliselt pigem crackerit silmas (mida ma kah ei ole). Tihti arvatakse, et see on umbes sama nagu Wordi või Exceli ära õppimine (õpid paar programmi ära ja oledki häkker/cracker valmis). Mina olen tavaliselt vastanud niimoodi, et häkker peaks olema hästi laiade teadmistega. Et häkkimine on pigem see, kui sa võtad mingi objekti/süsteemi/vms. ja kasutad seda mittesihipäraselt. Ehk siis... kui me vaatame netipanga maksevõimalust, siis tavaline inimene vaatab et ok... siia panen konto nr, siia panen summa ja siia kirjelduse/viitenumbri ja kõik (ehk ta enam-vähem teab kuidas seda kasutada). Häkker vaatab sellise pilguga, et ok... mida ma sellega veel teha saan... mis juhtub kui ma panen siia numbri asemel teksti... või panen negatiivse summa jne. Ta saab aru kuidas süsteemid on ülesse ehitatud... kuidas nad töötavad (võib-olla mitte küll 100% aga mingi ettekujutus on tal olemas).

Viimase märkusena lisaks ma seda, et kuigi teos ise oli kirjutatud suhteliselt neutraalselt (ehk siis arvamused olid põhjendatud ja emotsioonid/isiklikud eelistused olid tahaplaanile jäetud), siis minu arust KKK-ga pandi puusse. Sellest ma saan veel kuidagi aru, et kui inimesed ikka ei viitsi lugeda ja kogu aeg saadavad "palun õpeta mulle crackimist" kirju, et see ajab närvi ja tuleb karmikäeliselt asjad paika panna. Mis mulle aga ei meeldinud on see, et kui Windowsi mainiti, siis tehti seda väga üleolevalt (see heitis minu silmis tervele teosele halva varjundi... nagu loeks mingi eliit/snoobide klubi sisseastumisnõudeid). Loomulikult on Windowsil puudusi (ja mitte vähe) aga nii on ka Linuxil. Ärgem unustagem, et desktop arvutitest on umbes 81% windowsiga ja autor pm. ütles neile kõigile "fuck you, ainult lollid kasutavad windowsi" (fakt, et nii paljud inimesed valivad tasuta OS-i asemel tasulise peaks juba vihjama, et vähemalt tavakasutajate seisukohalt on linuxil veel arenemisruumi - kuigi UI kasutusmugavuse kohapealt on viimastel aastatel suur töö ära tehtud). PS: ja nüüd teen mina nähtavasti sama... luban emotsioonidel võimust võtta. Siinkohal ma mainin, et desktopina eelistan ma Windowsi (gaimz) aga serveritel eelistan linuxit (va. domain controller). Igatahes... kui keegi küsib kuidas häkkeriks saada, siis ma vähemalt oskan ta kuskile suunata kust ta selle kohta infot saab.

Tuesday, April 2, 2019

9. nädal - Itimehed eri rollides...

Laias laastus võime me juhtimise eri rollideks jagada, kuid seda näeb üliharva, et mõni juht ainult ühte rolli kuulub. Tavaliselt on tegemist mitme eri rolli kombinatsiooniga. Kui me räägime IT-juhi erinevatest rollidest, siis tavaliselt kõige esimesena tuleb meelde juhi roll (see on lausa ametinimetusse sisse kirjutatud). Teise rollina vaatleme me mentorit.

Kui me räägime "juhi" rollist, siis seal oleval inimesel peab olema selge ettekujutus sellest, kuhu ta soovib jõuda ning ta peab olema võimeline ka oma alluvaid sinna viima. Üks näide sellisest inimesest oleks Steve Jobs (1955-2011). Kuigi tema juhtimisstiili kirjeldamiseks kasutatakse vahel selliseid sõnu nagu ülbe, pahatahtlik, diktaatorlik jne. siis üks asi mille poolest teda kiideti oli see, et tal oli (üks) konkreetne nägemus. Mitte ainult seda vaid tal õnnestus ka oma alluvad panna seda nägemust jagama. See tekitas ta alluvates tunde, et nende töö on tähtis (mitte ainult raha teenimise vahend) ning nad olid motiveeritud kõvemini töötama. Tema suhtumine oli selline, et ainult parim on piisavalt hea ning ta uskus, et kui töö ei vasta nõuetele, siis pole mõtet teeselda, et kõik on korras (lihtsalt selleks, et kellegi tundeid säästa). Eelpool sai mainitud, et ükski juht ei kuulu ainult ühte rolli. Steve Jobs sobib suurepäraselt ka arengumootori rolli, mis minu arust võib olla isegi juhi alamroll (sest innovatsiooni jaoks on ikkagi vaja kindlat nägemust ja oskust alluvaid motiveerida - ehk siis juhi oskusi). Ma ütleks, et juhi oskused on siin kriitilised, sest üldjuhul innovatsioon seisneb selles, et sa teed midagi sellist, mida varem pole tehtud (vähemalt mitte hästi/edukalt) ja see tekitab nii alluvates kui ka investorites kahtlusi (et kas see on ikka hea mõte ja kas asju "tavaliselt" tehes poleks ohutum?). Miks Jobs-i diktaatoriks kutsutakse on sellepärast, et kõik tähtsad otsused Apples tegi tema... ja nagu kuulda oli, siis ka päris palju vähemtähtsaid (alates sellest, et millise disainiga bussid Apple töötajaid tööle/koju veavad kuni selleni, et mis toitu nende kohvik pakub). Sammuti tegi ta oma juhtidele selgeks, et vabandused on vastuvõetavad koristajatelt aga mitte neilt. Et kuskil koristaja ja juhi vahel ei ole põhjus (miks asjad halvasti läksid) enam oluline. Selline vastutuse võtmine läks edasi ka juhtidelt alluvatele (öeldakse, et Apple-s on igal projektil vastutava isiku nimi kindlasti kirjas, mis muudab info liikumise paremaks).

Teise näitena võtan ma siis mentori. Siia sobib näiteks selline inimene nagu Jacob Goldman (1921-2011). Kuigi tehniliselt oli tegemist füüsikuga (mitte IT-juhiga), on tema panused IT arengusse märkimisväärsed. Ta töötas kuuekümnendatel Xeroxis juhtiva teadlasena ja seal olles rajas ta Palo Alto Research Center-i (edaspidi PARC). Tolle aja kontoritest eriti arvuteid leida ei võinud ja puudus ettekujutus kuidas personaalarvutid kontorit mõjutama hakkavad. Tema käe all disainis PARC terve hulga innovaatilisi asju nagu näiteks Alto personaalarvuti, Ethernet-i võrk, laserprinter ja graafiline kasutajaliides. Ei ole liialdus öelda, et tänapäeva hiigelkorporatsioonide (Microsoft ja Apple) üheks alustalaks oli just selle mehe käe all välja töötatud tehnoloogia. 1988. aasta intervjuus ütles ta ka ise, et "Xerox-i üheks veaks oli riskide mitte võtmine. Kui tänapäeva personaalarvuti tööstust vaadata, siis on tegemist (mitme) miljardi dollari tööstusega ja me oleks võinud selle kõik endale saada." Nüüd võib teil tekkida küsimus, et miks liigitan ta ennekõike mentoriks aga mitte arengumootoriks/innovaatoriks (kuigi seda oli ta ka kahtlemata), siis põhjus on lihtne. Ta käitus mentorina paljudele teadlastele ja aitas neil luua palju suuremat nägemust projektidest, mille kallal nad parasjagu töötasid. Sammuti tegi ta juhtidele/juhatustele selgeks, et nad peavad mõnda aega ootama enne kui teaduslikest saavutustest kasumit hakkab tulema. Mis oli tema puhul silmapaistev oli see, et ta jagas oma ideid teistega ja lubas teistel oma tööd parandada (edasi arendada). Näiteks PARC-i luues katsus ta nimelt selle teha Xerox-ist veidi eraldiseisvaks (võib öelda isegi, et iseseisvaks), et ta kaastöötajatel oleks rohkem vabadust loominguks ja et nad saaksid ilma muretsemata uusi asju proovida. Tänu sellele valmisid seal igasugused huvitavad ideed, mis tõmbasid palju tähelepanu. PARC-i külastasid paljud firmad, kes hakkasid hiljem nende loodud tehnoloogiat kasutama või teenisid selle pealt suurt kasumit. Näiteks Xerox sai õiguse osta 100 000 Apple pre-IPO aktsiat (IPO - esimene kord kui firma pakub aktsiaid avalikkusele, pre on siis enne seda) selle eest, et nad lubasid Apple inseneridele juurdepääsu PARC-ile kolmeks päevaks. Sealt saigi alguse Apple Lisa (ja hiljem ka Mac) ning samamoodi külastas PARC-i hiljem ka Bill Gates, kes leidis sealt ka motivatsiooni (ja nagu öeldakse... ülejäänud on ajalugu). Goldman lubas firmadel näha mida PARC saavutanud oli just sellepärast, et need firmad suudavad tõenäoliselt nende ideid rakendada ning edasi arendada palju paremini kui nad ise suudaks.