FANDOM


Tarkvaraarendus: Kogukondlik ja kommertsmudel

Kogukondlik mudelEdit

AjaluguEdit

Kuni 1980

Aastatel 1950-1960 peaaegu enamus kasutatavast tarkvarast loodi teadlaste ja ettevõtete arendusspetsialistide poolt. Enamasti jagati tarkvara väga lahkelt ja tehti tõhusalt koostööd. Tol perioodil ei vaadatud seda kui toodet, mida saaks kuidagi ärilisel eesmärgil kasutada. Tavaks oli jagada tarkvara koos selle lähtekoodiga, sest kasutajad pidid sageli tegema muudatusi. Muudatused olid tingitud enamasti sellest, et kasutati teist riistvara, erinevat operatsioonisüsteemi või siis esile kerkinud vigade parandamiseks ja uute funktsionaalsuste lisamiseks.[1]

Esimeseks vabaks ja avatud lähtekoodiga tarkvaraks peetakse A-2 system´i,  mis tuli välja 1953. aastal UNIVACi poolt. Kasutaja sai programmi koos lähtekoodiga ning kõiksugu muudatusettepanekud UNIVACile olid igati teretulnud.[1]

1970ndad tõid sisse muutuse – tarkvara ei tahetud nii lihtsalt enam jagada. Põhiliselt oli see tingitud sellest, et süsteemide keerukus ja arenduskulud tõusid päris hüppeliselt. Ettevõtted nägid selles head võimalust kasumit teenida ja arendajad soovisid saada oma vaeva eest ka väärilist tasu. Kogukondlik tarkvaaraarendus jäi tol perioodil pigem tagaplaanile.[1]

1980ndad ja 1990ndad

Tänu Interneti kasutamise hüppelisele kasvule oli kogukondlik tarkvaraarendus uuesti elujõuline. Sellel aitasid kaasa ka mitmed arvuti ajakirjad ja arvukad raamatud.  Tarkvara jagamiseks kasutati BBS süsteeme, kus hoiti lähtekoodi ja arutati erinevate muudatuste/uuenduste teemadel.  Antud perioodil loodi mitmeid erinevaid organisatsioone (Free Software Foundation,  Open Source Initiative,  ), mis aitasid kaasa kogukondliku arenduse arengule. Sammuti said alguse mitmed väga olulised tarkvara projektid/arendused(Linux,Netscape,Apach HTTP Server, ....).[1]

Tänapäev

Tänu tehnoloogilisele arengule on tänapäeval kogukondlik tarkvaraarendus igati elujõuline. Tehnoloogilised vahendid on igati soodustanud selle arengut. Kindlasti on aidanud sellele kaasa ka mitmed edukad tarkvara lahendused (Linux, Firefox, ...), mis on kogunud tohutud populaarsust.  See on olnud tugevaks kinnituseks arendajatele, et ühiste jõududega on võimalik teha midagi väga korraliku ja kasulikku.

KasutusaladEdit

Kogukondlik mudel sobib väga hästi sellisesse kasutusalasse, kus on palju huvilisi. Palju huvilisi teekidel, mida saab väga eritüüpi rakendustes kasutada. Näiteks JQuery, mis on väga võimas javascripti teek, mis võimaldab teha sisuliselt kõike alates väga primitiivsest menüü ja tabeli kujundusest, kuni brauseripõhiste mängude ja rakendusteni välja(silmas pidades pidevat suhtlust serveri ja brauseri vahel ja samas kasutades ka väga keerukaid kujundusi).

Kogukonlik mudel sobib ka hästi laiatarbe programmidele, millel on väga palju kasutajaid näiteks veebibrauser, veebiserver jms.

Mõned silmapaistvamad näited on [2]:


  • Operatsioonisüsteemid: GNU/Linux, BSD ja Darwin.
  • GCC kompileerijad, GDB puugieemaldaja (debugger) ja C teegid (libraries).
  • Serverid: BIND nimeserver, Sendmail e-posti transport, Apache HTTP Server ja Samba failiserver.
  • Relatsioonilised andmebaasisüsteemid: MySQL ja PostgreSQL.
  • Geoinfosüsteemid: GRASS.
  • Programmeerimiskeeled: Perl, PHP, Python, Ruby ja Tcl.
  • Arvutuskeskkonnad: IDL, Scilab, R.
  • Graafilise kasutajaliidesega seoses: X Window System ja X.org; GNOME ja KDE töölauakeskkonnad.
  • OpenOffice.org kontoritöö pakett, Mozilla Suite ja Mozilla Firefox lehitsejad ning GIMP graafikatöötlusprogramm.
  • Trükiladumise ja dokumendi ettevalmistus-süsteemid TeX ja LaTeX.
  • MediaWiki, tarkvara, millel töötab Vikipeedia.

EelisedEdit

Arendusmudel

Kogukondlik tarkvara arenduse üks suurimaid eeliseid on see, et kui projekt on elujõuline, siis reaktsioon suurtele turvaaukudele või muudele puudustele on üldiselt kordades kiirem kui kommertsliku arenduse puhul. Lisaks on eeliseks on ka asjaolu, et kogukondlik põhineb väga palju vaba tahte loogika alusel mistõttu pühendutakse rohkem sellele samas kui kommertslikult tehes võib arendajaid siduda projekti suuresti palk. Osadel sellistel projektidel on ka tegelikkuses see kogukond ka päris heaks toeks projektile (kui võrrelda kommertsfirmade toega(supportiga)).

Eelisena võib välja tuua ka asjaolu, et ühelegi arendajale ei panda peale eeldusi, et ta peaks palju ära tegema ning seetõttu pole ka otseselt vajalik kogu tarkvara projekti selgeks tegemine omale. Kommertsfirmad üldiselt omale lubada ei saa, et üks inimene tegeleks ainult väga kitsa ja spetsiifilise osaga tarkvarast.

Kui tegemist on väga laialt kasutatava ning paljude arendajate arendatava tarkvaraga, siis olla kindel, et konkreetse toote arendus ei ole seotud ühe „visionääri või tippspetsialistiga“, kelle (huvi) kaotus tähendab arendusvõime vähenemist või hoopis kadumist [3]

Juhul kui arendus läheb kasutaja või arendaja jaoks „valesse suunda“ on alati võimalik luua eraldi haru ehk fork ning arendada välja enda( koolkonnale)le sobiv funktsionaalsus[3].

Tarkvara

Kasutajale on kõige olulisem, et vaba tarkvara on võimalik soetada tasuta või mõistliku hinnaga [3].

Vähetähtis pole ka  asjaolu, et kasutaja võib tarkvara „enda omaks“ pidada s.t. pole ohtu, et see kunagi mingi litsentsitingimuse järgi ära võetakse või lisaraha välja pressitaks. Tarkvara võib kasutada igal võimalikul moel ning eesmärgil ning soovi korral lisafunktsionaalsust juurde kirjutada[3].

Kogukondliku tarkvaraarenduse üks suuri eeliseid ka see, et ei tehta kunstlikult asju keeruliseks (kommertstarkvaral kipuvad olema kusagil mingid konksud raha teenimiseks). Kui kommertstarkvara puhul kiputakse integreerimist muutma keeruliseks, siis kogukondlikul tarkvaral tekivad palju kergemini howto-d ja loovad palju parema eelduse igasugu pluginate loomiseks ja muuks selliseks.

Ostes vaba tarkvara arendamist või haldamist sisse, on kõik tarkvaraarendajad võrdses seisus kuna kellelgi pole piiravat eelisseisundit.

PuudusedEdit

Arendusmudel

Suurimaid puuduseid on ilmselt projekti käivitumine ja kogukonna tekkimine, sest kui kogukonda ei teki, siis projektil isegi võib ju hea idee olla aga kui ta pole elujõuline, siis projekt kaob interneti avarustesse ära. Lisaks võib ka ajakohase informatsiooni leidmine olla raske.[4]

Kuna kõik vabatahtlikud ja ei pruugi mingit reaalset kontakti omadagi kunagi teiste liikmetega, siis on teatuid raskusi tiimitöö korraldamise ja ka raskem tagada, et kõik asjaosalised saavad asjast ühtemoodi või sarnaselt aru.

Probleeme tuleb ette kui on vaja tarkvara juures minna väga spetsiifiliseks, sest siis võib tekkida olukord kas keegi ei oska kogukonnast vastata või siis on kompetentseid vastajaid nii vähe ja vabatahtlikkuse alusel toimvana võib tulla vastusesse pikk ajaline viide.

Kuna tegu on väga paljude poolt looduga, siis võib esineda kvaliteediprobleeme, et ilmselgelt on vaja liikmeid, kes üritaksid hoida, et kood püsiks rahuldaval kvaliteedi tasemel, sest kui lasta projektil kulgeda nii nagu algajamad programmeerijad midagi lisada tahaksid, siis on ainult aja küsimus, kui mustritest mitte kinni pidamise tõttu üks bug põhjustab bugi tarkvara hoopis teises otsas ja kogu projekti usaldusväärsus kannatab.

Suure hulga arendajate ning vabatahtlikkuse printsiibile ülesehitatud arendusega kaasneb risk, et osa koodi sisaldab kellegi intellektuaalomandit, mida mõni arendaja teadmatusest või tahtlikult on kasutanud.[4]

Tarkvara

Kui mingi osa vaja minevast funktsionaalsusest on puudu, siis see tähendab, et see tuleb ise luua.

Kui endal kompetentsi pole, siis kogukond süsteemi püsti panema ei tule, et sellega pead ise hakkama saama. Kogukond on abi küsimiseks, et sealt keegi ei tule käest kinni võtma ja kätt pidi kohale viima.

Kui kasutaja on valinud vaba tarkvara ning enda suutlikkus toodet arendada on madal või puudub, siis paratamatult on tema saatus „kogukonna“ kätes, kelle motivatsioon võib kaduda. See risk on eriti oluline nišitoodete osas.[4]

KommertsmudelEdit

Kommertsmudeli alusel loodud kommertstarkvara on arvutitele mõeldud tarkvara liik, mis on toodetud müümise eesmärgil või teenib muul moel kasumit [5][6]. Kommertsvara võib sisaldada ka tasuta jagatavat tarkvara mille eesmärk on aidata kaasa põhitoodete müügile ja levikule. Suuremad kommertstarkvara tootjad loovad sageli terveid tooteperekondi, et pakkuda kliendile terviklahendusi ning seeläbi kindlustada enda toodete turg.

Kommertstarkvara puhul on tihti kasutusel bürokraatlik ja kohmakas arendustsükkel. Kommertstarkvara on suletud lähtekoodiga, kus kasutajal puudub võimalus tutvuda, milliste algoritmide alusel rakendus töötab. Seega ei ole võimalik teha programmis täiendusi ega parandusi. Niisuguse tarkvara kasutamine, levitamine ja muutmine on kas keelatud või seotud nii suurte piirangutega, muutes programmi vaba kasutamise võimatuks [7]

AjaluguEdit

Kommertstarkvara alguseks peetakse Bill Gatesi 1975. aastal MITS Altair 8800-arvutilekirjutatud BASICu versiooni [8]. Tegemist oli tarkvaraga, mille levitamine toimus sarnaselt praegustele kommertstarkvara levitamistele.

Kommertstarkvara võidukäigule aitas oluliselt kaasa USA uurimisasutuste riiklikke toetuste vähendamine mistõttu mitmed senised riiklikud uurimisasutused pidid jätkama tegevust äriettevõttena vaba turu tingimustes [9]. Arvestades, et 1980-1990 oli Microsofti tarkvaratooted MSDOS, MS Windows ja MS Office turul domineerivad, siis võib ka kommertstarkvara sünonüümina kasutada Microsofti. 

Microsofti sünd [10]Edit

1972. aastal lõi tollal alles Lakeside'i koolis õppiv arvutifänn William Henry Gates III koos endast paar aastat vanema Paul Alleniga oma esimese firma, et oma arvutihobi finantseerida. Firma põhitegevusala oli liiklusinfo töötlemiseks vajalike programmide kirjutamine - sellest ka nimi Traf-O-Data. Ehkki noorsand Gates astus aasta hiljem Harvardisse, jäi ta ka seal juuraõppimise asemel arvutiinimeseks ja kukkus mõne aja pärast ülikoolist välja. 1974. aastal ilmus MITS Altair 8800 - esimene tänapäevases mõistes miniarvuti, millele Gates ja Allen asusid kohe tarkvara pakkuma. Traf-O-Data nimetati ringi Microsoftiks (alguses sidekriipsuga: Micro-Soft) ning 1975. aasta kujunes tänase kommertstarkvara sünniaastaks - Microsofti pakutav Altairi variant BASICust tuli välja tasulisena, igalt kasutajalt eeldati programmi ostmist. Teadaolevalt kirjutas Bill ka sellesisulise pöördumise arvutikasutajate poole - see aga jäi suuresti hüüdjaks hääleks kõrbes. Nii võib öelda, et koos kommertstarkvaraga sai alguse ka "piraatlus" ehk ebaseaduslik tarkvarakasutus.

Microsofti on läbi ajaloo jälitanud süüdistused "mustas mängus". Üks avatud lähtekoodi tuntumaid apologeete Eric S. Raymond nimetab oma "Halloweeni urinas" mõningaid juhtumeid:

MS-DOS - ostetud/varastatud (Tim Paterson, QDOS);

PC1 BIOSi kood - varastatud (peaaegu bitt-bitilt identne Gary Kildalli CP/M BIOSiga);

Windowsi kasutajaliides - järeletehtud (kehv Apple'i kloon);

Kettakompressioon - varastatud (Stac Electronicult);

Internet Explorer - ostetud või varastatud (sõltub, kelle versiooni uskuda; Spyglassilt);

jne.

KasutusaladEdit

Kommertstarkvara kasutatakse ennekõike sellistes organisatsioonides, kus on kasutuses terve tooteperekond serverlahendustest kuni tööjaamadeni välja ning kus ei ole eesmärgiks tegeleda tarkvara arendamisega (näiteks suuremad äriettevõtted (sh rahvusvahelised), avalik sektor). Kommertstarkvara kasutusala sõltub aga ka sellest, millisesse tüüpi see jaguneb, kas tasuline (commercial), jaosvara (shareware) või tasuta tarkvara (freeware) [5].

Tasuline tarkvara (commercial)Edit

Kõige levinum ja tuntum tüüp ongi tasuline tarkvara [11][12]. Siia alla kuuluvad need tooted, mis on nn. „karbitooted“. Mõiste karbitoode tuleneb kommertstarkvara algusaegadest, kus praktiliselt kõik tasulised tarkvaratooted tulid müüki pakendites, milleks reeglina olid karbid. Tänapäeval on karbitoode asendunud allalaetava faili või failikogumikuga, millele juurdepääsu saab pärast toote eest maksmist. Nende toodete eripära seisneb tarkvara suures piiratuses kasutaja suhtes. Osta saab reeglina vaid tarkvara kasutamist. Kood ise jääb tootja omandisse ning levitamine ja kopeerimine kolmandatele osapooltele on keelatud. Siia valdkonda kuulub suur enamik Microsofti tooteid (nt. operatsioonisüsteem Windows, MS Office, jne.), Adobe tooteid (Acrobat, PhotoShop jne.) ning mitmed spetsiifilist tarkvara tootvad firmad.

Jaosvara (shareware)Edit

Jaosvara [13] on sellist tüüpi tarkvara, mis teenib toote tutvustus ja/või reklaami eesmärki. Selline toode on reeglina saadaval tasuta, kuid lisaks tasulise tarkvara piirangutele esineb siin alljärgnev erinevus: levitamine ja kopeerimine pole keelatud kuid kasutamise tingimused on piiratud. Peamised piiranguliigid on ajaline (nn. proovitoodet saab täies mahus kasutada piiratud aja – sageli 30 päeva – jooksul) või funktsionaalne (ei saa kasutada mõnda olulist funktsionaalsust – nt. tehtud töö salvestamine).

Tasuta kommertstarkvara (freeware)Edit

Tasuta kommertstarkvara [14][15]  on üldjuhul kinnise lähtekoodiga tasuta tarkvara, millele koodi autor võib seada piiranguid näiteks levitamise, paljundamise või sellel baseeruvate tööde osas. Sellist tüüpi tarkvara jagatakse ilma lähtekoodita takistamaks kasutajatel programmi muutmist. Tasuta kommertstarkvara on erinev avatud lähtekoodiga tarkvarast, kuigi terminite sarnasus tekitab tihti segadust (vabavara ehk freeware ning vaba tarkvara või avavara ehk open-source software).

Kommertstarkvara tasuta jagamisel võib olla mitmeid põhjuseid [15]:

selleks et tõmmata ligi kasutajaid teistele teenustele või toodetele mis on tasulised;

ülejäänud levitusmeetodid ei pruugi kasumlikud olla või tarkvara on ajast maha jäänud ning ei ole mõtet enam seda müüa;

omades tõelist soovi teha head ning muuta maailm paremaks kohaks.

EelisedEdit

Arendusmudel

Kuna raha soovitakse teenida eelkõige toote müügist, peab esimene versioon olema piisava funktsionaalsusega ning veavaba s.t. nägemus tarkvara lõppfunktsionaalsusest on algusest peale paigas ja arendusprotsess kiirem.

Tarkvara

Kommertstarkvara suurimaks eeliseks on, et see pakub IKT teenuste osutamiseks terviklikku paketti (näiteks Microsoft Windows tööjaamad ja Microsoft Windows Server), mis sisaldavad erinevate infrastruktuuride töös hoidmiseks ja haldamiseks vajalikke baasteenuseid.

Üheks suureks eeliseks võib pidada ka seda, et just seetõttu, et tarkvara kood ei ole avalik, ei saa tarkvaras olevaid vigu ära kasutada nt küberründe eesmärgil. 

Kuivõrd kommertsmudeli puhul toimub tarkvara loomine peaeesmärgiga teenida kasumit, siis on sellise tarkvara komponendid loodud koos toimima ning seepärast on nad ka testitud ja töötavad enamikes tüüpkonfiguratsioonides. Üldjuhul on sellistel IKT terviklahendustel keskne administreerimisliides. Selline lähenemine võimaldab muudatusi rakendada tsentraalselt, mis omakorda lihtsustab ja muudab efektiivsemaks võrkude haldamise. Selline standardne terviklahendus loob väga head eelised ka vajaliku teenuse näiteks sisse ostmiseks.

Kommertstarkvara kasutamisel tekkivate probleemide korral on vastutaja isikustatud (nt tarkvara müüja) ning on võimalik pöörduda konkreetse inimese poole, kellel on kohustus probleemiga tegeleda.

Kui tarkvaraga soovitakse lahendada spetsiifilist nišiprobleemi ning üldine huvi on madal, on tasuline kommertstarkvara lahendus sageli usaldusväärsem kui ühemehe vaba tarkvara [16].

PuudusedEdit

Arendusmudel

Kommertstarkvara puhul on tihti kasutusel bürokraatlik ja kohmakas arendustsükkel, mille järgimine ei võimalda versiooniuuendusi nii operatiivselt väljastada kui avatud lähtekoodiga hajusarendustes. Kas kohmakast arendustsüklist või hoopis ärilise kasumi eesmärgil võib kommertstarkvara tootja otsustada tarkvaraviga mitte parandada.

Kuivõrd tarkvara kood ei ole vabalt kättesaadav, siis on realisatsiooni kvaliteedi kontroll tagatud vaid konkreetse organisatsiooni standarditega. 

Tarkvara

Kommertstarkvara käigushoidmine nõuab suuremaid kulutusi riistvarale, litsentsidele ning ametlikule tugiteenusele.  Kommertstarkvara tehnilised nõudmised on sageli kõrgemad kui avatud lähtekoodiga tarkvaral  [17].

Viited:

  1. 1.0 1.1 1.2 1.3 http://en.wikipedia.org/wiki/History_of_free_and_open-source_software
  2. http://et.wikipedia.org/wiki/Vaba_tarkvara
  3. 3.0 3.1 3.2 3.3 http://eu.conecta.it/paper/Advantages_open_source_soft.html
  4. 4.0 4.1 4.2 http://eu.conecta.it/paper/Perceived_disadvantages_ope.html
  5. 5.0 5.1 http://en.wikipedia.org/wiki/Commercial_software
  6. http://dictionary.reference.com/browse/commercial+software
  7. http://www.gnu.org/philosophy/categories.html
  8. http://en.wikipedia.org/wiki/Altair_8800
  9. http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng10
  10. https://beta.wikiversity.org/wiki/Sotsiaalne_tarkvara_ja_v%C3%B5rgukogukonnad/Tarkvara-_ja_sisulitsentsid
  11. http://opensourcevscommercial.wikidot.com/kommertstarkvara
  12. http://www.techterms.com/definition/commercialsoftware
  13. http://en.wikipedia.org/wiki/Shareware
  14. http://en.wikipedia.org/wiki/Freeware
  15. 15.0 15.1 http://www.linfo.org/freeware.html
  16. http://www.linfo.org/proprietary.html
  17. http://www.cjlt.ca/index.php/cjlt/article/view/150/143
Community content is available under CC-BY-SA unless otherwise noted.