Nädal 7

Selle nädala teema on pakkuda Naatan Nohikule abi tarkvaraprojekti litsentsi valimisel.

Seekord saan ise samastuda Naatan Nohikuga. Töötasin ühes tööstusettevõttes osakonnajuhina. Töö sisu oli suures osas kvaliteetse toodangu teatud mahus valmimise tagamine. Oluline osa selles tegevuses oli töökätel. Osakonnas töötas erinevatel aegadel 60-100 töötajat. Kuna osakond oli suurema tehase tootmisahela osa, siis väga ma ei pidanud muretsema toormaterjali muretsemise ega müügi pärast, sest toormaterjal tuli eelnevast tootmisastmest ja kogu kaup "müüdi" enamasti järgmistele astmetele tootmises, veidi küll ka otse klientidele aga seda väikses mahus.

Tööajast väga suur osa kulus nuputamisele, et kuidas olemasolevate töötajate arvu ja nende oskustega valmistada nõutud koguses nõutud tooteid. Seda plaani koostati, nagu ikka, Excelis. Töö käis enamasti kahes vahetuses, mõned seadmed töötasid kolmes vahetuses. Osad töötajad said käia ainult esimeses vahetuses, osad ei saanud käia öises vahetuses. Mingi osa töötajaid oli kogu aeg haiguslehel või puhkusel. Sellist hetke, kus mitte ükski töötaja ei olnud haige, ei mäletagi. Lisaks oli väga erinevaid töid, mis nõuavad kas taiplikkust, jõudu või kiireid käsi seega pidi ka arvestama iga töötaja võimetega. Koostada hea töögraafik, mis kõiki neid kriteeriume arvestab Excelis on väga keeruline ülesanne.

Sealt tekkiski mul mõte, et peab olema lihtsamaid viise seda teha. Uurisin erinevaid valmistarkvarasid selle probleemi lahendamiseks aga ei leidnudki sobivat, need pigem keskenduvad sellele, et sul on üksik töötaja kohal kindlal päeval aga mulle sellest ei piisanud, sest liinil töötab kuni 10 inimest, mul ei olnud tähtis, et neist 9 on kohal, mul pidi olema 10 vastavate oskustega inimest samas vahetuses olemas. Kuna sobivat lahendust ei leidnud, siis hakkasin Excelis Visual Basicus mingit automaatikat kirjutama, samal ajal googlest seda õppides. Tundus väga huvitav, seega panustasin sinna palju aega kuni lõpuks sain aru, et Visual Basicust jääb väheks. Minu tehtud plaani tahtsid ka meistrid reaalajas näha samal ajal kui nad tehases ringi liiguvad, neil on nutitelefonid taskus, seega selge, lihtne lahendus on veebirakendus, saab kasutada kõigil seadmetel. Nii saigi php backendi, MariaDB andmebaasi ja tol ajal populaarsete Bootstrapi ja jQuery abiga tehtud veebirakendus, mis võimaldas töögraafikuid teha, neid teistega jagada, arvestada töötajate puhkuste, haiguste ja oskustega. Sai tehtud virtuaalserver, mis ettevõtte sisevõrgus ainult nähtav, et vähendada turvariske ja rakendus sinna üles laetud.

Lõpuks tekkis ettevõttel huvi see rakendus omandada. Millise litsentsi alusel oleks mõistlik see tarkvara müüa? Lugesin päris palju litsentside kohta aga päris kindel ei ole, kas ikka oskan head nõud enda varasemale versioonile ehk Naatan Nohikule anda aga panen mõtted kirja, mis mul erinevate litsentside osas tekkisid.

EULA - esiteks ei tundu õige, sest projektis sai kasutatud erinevaid raamistikke, millel juba oma litsentsid ja EULA tunduks nagu ma ütleks, et ma ise kirjutasin kõik need raamistikud. Samuti võiks ju EULA olla nagu paigaldatav tarkvara, kus lähtekood on peidus aga mina ju laadisin kogu lähtekoodi kliendi serverisse, mida võib sealt soovi korral lugeda ja kopeerida. Kuna tegemist oli üldse esimese tarkvaraga, mis ma kirjutasin, siis EULA litsentsi kasutades oleksin võinud panna ennast olukorda, kus andmebaas jookseb kokku ja ettevõte ütleb, et miljoni euro eest väärtuslikku teavet läks kaduma, maksa kinni.

GPL - kui projektis on kasutatud midagi, mis on juba GPL litsentsiga, siis polegi pääsu, pead jätkama sellega. Siis pead ka oma lähtekoodi jagama, mis pole probleem, sest see on juba nagunii antud juhul kliendi serverisse jagatud. GPL-i puhul ei oma arendaja vastutust tarkvara kasutamisel tekkinud kahjudest. Kui klient otsustab seda tarkvara omapäi edasi arendada, siis ta peab ka lähtekoodi avalikustama ja ei saa suures osas minu kirjutatud tarkvaraga konkureerida minuga, kui mul peaks tekkima mõte antud tarkvara veel kellelegi pakkuda.

BSD - samuti ei oma arendaja vastutust, kui programmi kasutamisest tingituna tekib mingi kahju. Samas BSD litsentsi kasutamine annab kliendile võimaluse seda tarkvara modifitseerida ja oma derivaati müüa mistahes tingimustel. Ehk et kui ma müüsin oma toote kliendile BSD litsentsiga, siis klient võib sellest teha parema versiooni ja müüa seda minu potensiaalsetele tulevastele klientidele. 

Kuna tol ajal ei teadnud litsentsidest midagi aga ettevõtte soov oli ikkagi paberil kuidagi vormistada tarkvara omandamine, siis valmistas ettevõtte advokaat ette dokumendi, mis põhimõtteliselt keelas minul seda sama tarkvara kellelegi teisele pakkuda ja keelas kliendil seda tarkvara omapäi arendada ja müüa. Tagant järele mõeldes kehv variant, sinna see rakendus sureb. Minul ei ole väga aega sellega tegeleda, neil küll huvi on uuenduste järgi aga kooli ja töö kõrvalt on raske leida momenti. Nad ise ei tohi arendada seega ainult aja küsimus, kuni see visatakse kõrvale ja võetakse midagi uut kasutusele.


Comments

Popular posts from this blog

Raamatu arvustus

Nädal 3

Nädal 5