Ärianalüüsi valdkonnas failide versioneerimine ja exceli failide võrdlemine (diff)

Business intelligece (BI) ehk ärianalüüs on valdkond, kus toimub mitte tarkvara arendamine vaid tarkvara juurutamine. Nõnda, kuidas erineb tegusõna, on levinud arusaam, et tarkvara arendamise võtteid ei saa juurutamise alal rakendada. Tegelikult on nendel tegevustel mitmeid sarnaseid jooni. Ütleksin, et juurutamine on sarnane tarkvara edasi arendamisele.

Üks tarkvaraarenduse elementaarseim hea tava on failide versioneerimine (source control). Kõik failide muudatused peetakse sedasi meeles ja nii saab hiljem erinevaid variante võrrelda – ja vajadusel minna tagasi mõnda varasemasse seisu. Olukord, kus meeskonna jagu arendajaid muudab projekti faile siit-sealt – ilma, et muudatustest jälge maha jääks – on mõtlematu ja põhjustaks segadust. Seega, võttes aluseks juhise, et juurutamine on arendamisele sarnane, peaks olema võimalik ka ärianalüüsi valdkonnas failide versioneerimist rakendada. Teeme sellega proovi.

Esmalt uurime töös olevate failide paiknemist. Kõik projekti failid asuvad ühes Windowsi serveris, teada olevas projekti kaustas ja sinna nad ka jäävad, sest keeruline ja tarbetult kallis oleks iga juurutaja masinasse eraldi, litsenseeritud server paigaldada. See olukord on erinev tavapärasest tarkvaraarendusest, kus igal arendajal on projekti kaustast enda koopia. Trotsides failide paiknemist serveris oleks variant otse sinna failide versioneerimine kohaldada. Pärast iga juurutustegevust tuleks serverist läbi käia ja muudatused sisse panna. Alustuseks sobib see küll.

Järgmisena uurime, missuguseid faile on tarvis versioneerida. Esimene hulk faile on tuntud Exceli 2013 tabelid – .xlsx failid. Aga see siin on koheselt probleemiks, sest Exceli failid on binaarsel kujul ja neid ei ole võimalik mugavalt lihttekstina võrrelda (ehk kõnekeeles diffida) – seda bitijada on mõttetu vaadata. Teatavasti koosneb Exceli fail mitmest kokku pakitud XML failist. Variant oleks enne diffimist kõnealune fail lahti pakkida ja võrrelda vastavaid XML faile tekstina. Kuid kahjuks niimoodi ei saa, sest kui erinevused avalduvad erinevates XML failides, siis nende võrdlemine läheb keeruliseks; ja XML kujul ei pruugi info olla samaselt mõistetav Exceli tabelile. Hea oleks, kui saaks võrrelda Exceli tabeleid samal kujul, nagu nendega päriselt harjunud ollakse. Pärast pisukest uurimist selgus, et TortoiseHg-ga tuleb vaikimisi kaasa rakendus nimega docdiff, mis oskab skripti abil kaks Exceli akent kõrvuti panna ja erinevad lahtrid punaseks värvida (arvestades seejuures ka valemeid). Minu jaoks on see kaalukas leid, sest lahendus oskab võrrelda Microsoft Wordi, Exceli, OpenOffice’i ja ka PowerPointi faile (ehkki kaht viimast ma ise proovinud ei ole). Halb on see, et punased lahtrid tuleb käsitsi eri töölehtedelt üles otsida ja erinevuste kokkuvõtet, näiteks tekste võrreldes WinMerge’i ja kdiff-iga, ei ole. Siiski, alustuseks käib seegi.

Teine hulk faile, mida oleks vaja hallata, on .xltx Excel mallide failid. Lisaks laiendile nad tavalistest Exceli failidest väga ei erine – ometi keeldub docdiff nendega töötamast. Selgub, et failide võrdlemise mõttes on Exceli mallifail eksootika ja isegi Google’i otsing ei paku lahendust. Ainuke asi, mida Google .xltx failidega seostab, on teisendamine tavaliseks Exceli failiks. Kuna selleks on olemas ka mitmed online rakendused, siis tundub teisendamine lihtne. Nõnda sündiski lahendusena skript, mis teeb pelgalt võrreldavatest xltx failidest koopiad, muudab nende laiendid .xls-iks, söödab docdiffile ette  ja asi vask. Ainuke puudus on see, et võrdlemise vaates ei saa faile muuta, sest vaadeldakse koopiaid. Aga võrdlemine ise töötab ja see on põhiline. Siin maal on kriitiline mass probleeme lahendatud ja plaanis on asjaga katsetama hakata.

Kokkuvõttes on tähtsad kaks mõtet. Esiteks on igasuguse tarkvaraarenduse juures, ka ärianalüüsi valdkonnas, alati hea mõte kasutada failide versioneerimist. See teeb endal elu lihtsamaks, sest saad untsu minemise korral töötava variandi juurde tagasi minna, vaadata failide ajalugu, näha, kes mis muudatuse on teinud ja kõik failid on automaatselt varundatud. Teiseks, TortoiseHg-ga vaikimisi kaasa tuleva docdiff-iga saab Exceli faile võrrelda. Võrreldavad Exceli aknad pannakse kõrvuti ja erinevad lahtrid on punaseks värvitud. Võrdlemise alla kuuluvad ka mitu töölehte, lahtrite sisu ja valemid. Kas Exceli laadsete dokumentide jaoks on olemas parem haldusvahend? Kes teab, see on teretulnud kommentaaridesse lisama.

Leave a Reply

Your email address will not be published. Required fields are marked *