IFI 6068 Sissejuhatus infosüsteemidesse · 2017 sügissemester · 14 loengut · 14 praktikumi · 12 ülesannet · 6 näiterakendust · eksam
swap_calls
Joel Spolsky (2000) Painless Functional Specifications.
4-osaline blogikirjutise sari tuntud arendusgurult ja ettevõtjalt spetsifitseerimisest (IT arenduses üliolulisest, paljudiskuteeritavast küsimusest)
Info vajadus on lähtekoht iga süsteemi tegemisel. Miks muidu süsteemi üldse teha?
Keegi vajab mingit infot. Väga harva on kasutajate infovajadused nii selged, et neid ei ole vaja uurida
Samas väga tihti eksitakse selle reegli vastu. Arendaja usub, et ta teab, mida süsteemi tulevased kasutajad tahavad. Tegelikult ei tea, õigemini - teab osaliselt.
Infovajaduste kaardistamine ja täpsustamine peaks seetõttu olema üks esimesi samme süsteemi tegemisel. Kas ja kui metoodiliselt seda tehakse, sõltub paljudest asjaoludest. Statistika näitab, et vaevalt pool arendatud tarkvarast on õigesti “rihitud” ja leiab tegelikku kasutamist.
Infovajaduste väljaselgitamist võib raskendada kasutajate suutmatus oma soove väljendada. See, mida nad ütlevad, ei ole see, mida nad tegelikult tahavad või nad on ei ütle midagi. Sellisel juhul ei ole muud, kui süsteem valmis teha - kulude kokkuhoidmiseks esialgu prototüübina - ja lasta kasutajatel proovida.
Prototüüpimise vahendid on kiiresti arenenud. Kogenud arendajal käib veebirakenduse töötava prototüübi tegemine kiiresti. Siiski ei ole see teenus tasuta ja vajaduste süstemaatiline kaardistamine enne koodi kirjutamisega alustamist on jätkuvalt aktuaalne meetod.
Infovajaduste uuring toob reeglina välja palju soove ja vajadusi. Kõiki neid ei jõuta kunagi realiseerida. Seetõttu on äärmiselt oluline infovajaduste prioritiseerimine. See töö haakub otseselt arendustööde plaanimisega.
Infosüsteemi arendustsüklis on infovajaduste väljaselgitamine tüüpiline töö, mida teeb analüütik. Analüütiline küsimus on “kes mille tegemisel millist infot kasutab?” (Organisatsioon + Protsess + Info).
Klassikalises arendusmudelis (nn kosemudel, ingl Waterfall) selgitati kõik infovajadused enne süsteemi projekteerimist ja teostust täielikult välja. Agiilses arenduses on sellest loobutud, kuid infovajadus on nii või teisiti süsteemiarenduse lähtekoht.
Infovajaduste väljaselgitamise peamised meetodid on: 1) küsitlus; 2) vaatlus; 3) dokumentatsiooni jm. kasutatavate andmekogumite kaardistamine.
Infovajadus (Information Need) on teave, mida keegi mingil eesmärgil vajab. Infovajaduses võib eristada nomenklatuuri — millist infot vajatakse? — ja kvaliteeti — millise kvaliteeditasemega infot vajatakse? (Kui ajakohane peab teave olema? Millises vormis? jne)
Vajadustest lähtuv analüüs ei ole ainuvõimalik. Võib ka lähtuda organisatsiooni valduses olevatest inforessurssidest ning mõelda, kuidas olemasolevat infot paremini tööle panna.
Infovajadused ja tööprotsess. Infovajadus on tihedalt seotud tööprotsessiga, mida inimene teeb. Ei saa lihtsalt üles lugeda töötaja infovajadusi, mõistmata ümbritsevat tööprotsessi. Mitte alati aga ei ole infosüsteemiga toetatavate töö- ja äriprotsesside olemus selge. Lihtsalt küsida, kes millist infot vajab ja vastuste järgi süsteem üles ehitada on suhteliselt primitiivne lähenemine. Infovajaduste analüüs tuleb siduda äri- või tööprotsessi analüüsiga.
Fookuse infovajaduste väljaselgitamisele annab inimese töös vajalikest otsustest ja tegevustest lähtumine-
Infovajaduse sotsiaalne olemus. Infovajadused on väga tihedalt seotud ka sotsiaalse ümbrusega, kellega inimene suhtleb. Ei saa lihtsalt üles lugeda töötaja infovajadusi, mõistmata töötaja sotsiaalset suhtluskeskkonda. Sotsiaalsed ja tehnoloogilised struktuurid on infosüsteemides üksteisega läbi põimunud. Sama tehnoloogia, sama eesmärgiga süsteemid—võivad erinevates organisatsioonides anda täiesti erinevaid tulemusi. Sama arvutitüüp, sama tarkvara—kuid kaks kasutajat võivad kasutada üpris erinevalt.
Uuring vähihaigete infovajaduste kohta näitas, et patsiendil ei ole ükskõik, kas diagnoosi teatab talle arst, õde, perearst või saab ta selle teada e-tervise infosüsteemist: “The majority of people (60%) wanted the information to be given by their hospital doctor, rather than by a nurse (2%) or by their general practitioner (24%).”
Inglismaal tehtud uurimus näitas, et keskmiselt patsient oli suuteline pärast arsti külastamist (visiit kestis keskmiselt 8 minuti) meenutada ainult veidi vähem kui 50% arsti poolt suuliselt edastatud infost. Ilmselt on vajadus infotehnoloogilise lahenduse järele.
Infotulva vältimine kui vajadus. Inimese infotöötlusvõime on piiratud. Infovajaduseks tuleb seetõttu lugeda ka vajadust vältida või vabaneda väheväärtuslikust infost.
Infovajaduste dünaamilisus. Kõik infovajadused ei tarvitse olla ajas stabiilsed. Organisatsiooni tegevuse iseloom ja muutuv keskkond võivad tingida, et vajaliku teabe koosseisu on raske fikseerida. Sellisel juhul on ka infosüsteemi väga raske teha. Vähemalt peab süsteem olema väga paindlik.
Infovajaduste väljaselgitamise protsess ei pea olema keeruline. Põhimõtteliselt piisab kahest osast: 1) andmete kogumine infovajaduste kohta; 2) kogutud andmete korrastamine ja struktureerimine, ettevalmistusena süsteemiarenduse edasiste etappide jaoks.
Infovajaduste analüüs lähtub harilikult info kasutajast (ametikoha tüübist). Välja ei selgitata mitte konkreetse indiviidi infovajadusi, vaid ametikohtade kategooriate kaupa. Inimesest lähtuvat analüüsi on kasulik täiendada teistes lõigetes liikuvate analüüsidega — uurida tööprotsesside infovajadusi või alustada andmetest ning uurida, kes andmeid vajavad.
Infovajadused ei ole alati ilmsed. Tööprotsessi vaatlus ja töötaja küsitlemine annavad kiiresti välja ainult osa infovajadustest. Seetõttu kasutatakse infovajaduste väljaselgitamiseks mitmesuguseid täiendavaid meetodeid ja võtteid:
Kasutajate küsitlemine. Küsitluste tavalised osad on: 1) konkreetsed vajadused ja soovid info järele; 2) tavalised ja eelistatud info hankimise meetodid; 3) takistused info hankimisel; 4) seniste infoteenuste tugevad ja nõrgad küljed.
Rühmitamine. Infovajaduste kogumine võib tulemuseks anda suurel arvul mitmeliigilisi infovajadusi. Saadud andmekogumi kasutamiskõlblikuks tegemiseks tuleb kogutud infot rühmitada. Näiteks veebisüsteemide kontekstis võib eristada järgmisi infovajaduste tüüpe: 1) konkreetse asja otsing (known-item search); 2) ülevaate saamine (exploratory orientation); 3) väljavalik (selective research); 4) kõikehõlmav otsing (comprehensive research).
Infovajaduste väljaselgitamist on uuritud akadeemiliselt ja eraldi käsitletud mitmetes raamatutes. [Rinzler2009] Telling Stories : A Short Path to Writing Better Software Requirements põhitees on, et lihtne küsimine “Mis teavet sa vajad?” ei ole piisav. Infovajadused avanevad ainult sügavama uurija ja uuritava koostöös tulemusena. Veebis on tasuta kättesaadav agiilarenduse guru Cockburni kõrgelt hinnatud raamat Writing Effective Use Cases (2001).
Kui täpselt on infovajadused määratavad? Infovajaduste väljaselgitamine on näiliselt lihtne, kuid praktikas sageli keerukas, sest: 1) sama informatsiooni näevad ja väärtustavad erinevad inimesed erinevalt; 2) sama informatsiooni kasutatakse erinevatel viisidel; 3) info liikumisvood on keerukad; 4) erinevaid infokanaleid võib olla palju; 5) individuaalsed eelistused ja käitumise omapära; 5) küsitletu võib ühel või teisel põhjusel varjata oma tegelikku infovajadust; teisest küljest, küsitletu võib esitada pseudovajaduse.
Kriitilised edutegurid (Critical Success Factors, CSF) on Rockart’i [Rockart1979] poolt loodud, klassikaline meetod tippjuhi infovajaduste väljaselgitamiseks. Rockart kritiseerib levinud eksiarvamusi juhi infovajaduste kohta, eelkõige seisukohta, et “juht peab teadma kõike”. Juht koormatakse infosüsteemist saadetava infoga üle. Juhil ei jätku aega ise endale vajalikku info välja sõeluda. Juhi töö on vägagi muutlik. Seetõttu juhile on püsivat infosüsteemi raske luua. Parim lahendus juhi infovajaduste rahuldamiseks on otsene suhtlus usaldusväärsete alljuhtidega. Seejärel esitab Rockart oma meetodi, mille aluseks on seisukoht, et organisatsiooni (ning ühtlasi ka juhi) edukus sõltub väikesest arvust (tüüpiliselt 4-10) kriitilisest edutegurist. Edutegurid on igal organisatsioonil individuaalsed. Edutegurite väljaselgitamine on lähtepunktiks nii infovajaduste spetsifitseerimisele ja juhti toetavate infosüsteemide ehitamisele kui ka organisatsiooni tööprotsesside voolujoonestamisele ja parendamisele. Oluline on edutegurite mõõdetavus - tuleb leida olulised mõõdikud (Key Performance Indicators, KPI) leida Seonduvaks juhtimiskontseptsiooniks on tulemusjuhtimine (Management by Objectives).
Ärinõuded. Mis on ärinõude (Business Requirement) eesmärk? Mis on selle gorilla nimi, keda puuris tahetakse hoida? Miks võiksime vajada metoodikat, poliitikat või protseduuri ärinõuete sõnastamiseks? Millist ülekeevat tegevust tahaksime raamidesse suruda? Ego ohjekshoidmiseks? Grupidünaamika kontrolli all hoimiseks?
Millist probleemi ärinõuete sõnastamine lahendaks? Loetleda saab terve rea laialt levinud nähtusi, mille ärahoidmiseks ärinõuetest võiks hüpoteetiliselt kasu olla:
Mis on ärinõue? Ärinõudmine kui kasutaja vajadus. Ärinõue kui lõppkasutaja vajadus. Haridussüsteemis lõppkasutaja - tudeng (aga mitte õppejõud!). Veel samm kaugemale ja haridussüsteemi lõppkasutaja on ettevõtja, autoritaarses ühiskonnas - Suur juht, natsionalistlikus ühiskonnas - rahvus. Avaliku sektori lõpp-kasutaja on kodanik. Erasektoris on üpris levinud meem, et teenuse lõppkasutaja on kliendi klient (“sinu äri heaks”). Nõrkuseks selle vaate juures on see, et keerukas ühiskonnas võivad väärtusahelad olla suhteliselt pikad. Väärtusahela läbipaistvus ei sõltu ühe lüli tahtest. Lõppkasutajale mõtlemine võib olla hoopis distraction. Jaapani kanban-filosoofia ütleb, et orienteeru ainult oma vahetule kliendile.
Ärinõue kui ülemuse soov. Nõrk selle poolest, et soov ei tarvitse olla selgelt väljendatud ja ajas püsiv. Ülemise soov täna ja aasta pärast ei tarvitse olla üks ja sama. Hea ülemus saab sellest ise ka aru.
Ärinõue kui õiguskaitsevahend vaidluses arendustöö täitjaga. Nõrk, kuna sageli pole piisavalt konkreetne.
Projekteerimise eesmärgid (Design Goals). Paljudes avatarkvarades on disaini eesmärgid selgelt ja veenvalt välja toodud. See on väljakujunenud, hea praktika. Disaini eesmärkide sõnastamise kasu on päris ilmne. Disaini eesmärgid on siiski seotud mitte niivõrd lahendatava probleemi või tarkvara eesmärgi kui juba lahendamise kontseptsiooni või põhimõtete kavandamisega.
Mida ärinõudelt nõuda? Ärinõuete arv igas konkreetses projektis, tootes jm PEAKS olema võimalikult väike.
Milleri arv 7±2 nõuet on veel väike. Miks väike arv on oluline? Proovida võib keerukaid nõuete väljaselgitamise (Requirements Extraction ja haldamise (Requirements Engineering) süsteeme (nt Toyota maatriksite süsteem jm), kuid nende süsteemide töölepanemine ja haldamine on omaette väljakutse ning nõuab organisatsiooni vastavat küpsustaset.
Dokumenditaristu hajusarhitektuurile üleviimise projektis on 16 ärinõuet.
Ärinõuded PEAKSID olema prioritiseeritud.
Ärinõuded PEAKSID olema seotud high-level kasutusjuhtudega.
Ärinõuete lisamine PEAKS olema pidev, kuid tagasihoidev protsess.
Kõigi nõuete up-front väljaselgitamine kipub viima projektideni, mis on kas “üle võlli” või siis ei saagi valmis. Ärinõuete haldamisel tuleks kasutada “portfellijuhtimist” - nõuete lisamisega samavõrra tähtis on ebaadekvaatseks muutunud nõuete eemaldamine.
Ärinõuded agiilarenduses. Alahinnatakse seda, kui dünaamilised võivad olukorrad olla, kui kiirelt võivad olukorrad muutuda. Kiire kohanemine võib olla adekvaatsem, kui kõigi nõuete väljasõnastamise üritamine. Alahinnatakse kommunikatsiooni ja infohalduse keerukust.
Agiilarenduses kasutuslugu (User Story) ongi ärinõue.
[Rinzler2009] Rinzler, B. (2009). Telling Stories : A Short Path to Writing Better Software Requirements. Wiley.
[Rockart1979] Rockart, J (1979). Chief executives define their own data needs. Harvard Business Review.