Hlavní obsah stránky

AUTOMATIZACE KNIHOVEN: Otevřený software mýtů zbavený

MICHAL DENÁR michal.denar@ceska-trebova.cz

Díl první: Kdo, proč a za co ho vyvíjí

O otevřeném softwaru v prostředí českých knihoven se toho již napsalo poměrně hodně, přesto panuje mnoho omylů a předsudků, které ve svých důsledcích mohou vést k odmítání a nepodloženému označování takových programů za nedůvěryhodné a jejich nasazování za příliš rizikové. Rozhodli jsme se tedy přispět k informovanosti minisérií článků, které rozeberou téma více do hloubky a zaměří se při tom na aspekty vývoje, licencování a výši nákladů při nasazování a používání tohoto druhu programového vybavení v knihovnách.

První díl se bude věnovat oblasti vývoje. Zaměříme se především na hlavní důvody, které k počátkům vývoje vedou, dále probereme nejčastější zdroje financování a formy řízení projektů.

Úvod

Možná si také kladete otázku, jaké důvody vlastně vedou k tomu, že jednotlivec nebo instituce vyvíjí programy, které následně distribuuje zdarma, a navíc uvolní vytvořený zdrojový kód pod volnou licencí k dalšímu užití. Někomu to zní jako života neschopná utopie a na první pohled se dokonce může zdát, že taková činnost nedává smysl ani z pohledu ekonomického. Přesto otevřené projekty existují, fungují, a aniž si to uvědomujete, pravděpodobně je dávno sami používáte. Pod otevřenou licencí jsou vyvíjeny například prohlížeče internetu (Mozilla Firefox), kancelářské balíky (LibreOffice), operační systémy (Linux), ale i virtualizační nástroje (Xen) a mnoho dalších. Některé z projektů, které začaly jako aktivita malého týmu jednotlivců, si komunita časem oblíbila natolik, že z nich dnes jsou úspěšné globální projekty (Docker). Pojďme se tedy podívat, jak vznikají a fungují otevřené projekty a jakým způsobem zajišťují zdroje pro svůj další rozvoj.

Důvody ke vzniku otevřených řešení

Častým důvodem bývá prostá potřeba vzniku produktu, který tvoří alternativu k produktu komerčně prodávanému. Příkladem může být například projekt LibreOffice1, který si klade za cíl poskytnout širokému publiku volně dostupný nástroj pro kancelářskou práci, publikování a prezentaci informací. Dalším důvodem jeho existence je snaha o zavedení otevřeného datového formátu pro výměnu dokumentů (ODF – Open Document Format) jako náhradu za uzavřené formáty, které používá balík Microsoft Office.

V oblasti knihovních systémů a katalogů patří mezi uváděné důvody vzniku náhradních řešení cenová a licenční politika komerčních dodavatelů, která některým institucím znemožňuje udržovat své systémy v souladu s požadavky praxe, standardy nebo legislativou. Tato situace nastává většinou současně s omezováním rozpočtů knihoven. Nižší objem financí nesmí ovšem znamenat omezení služeb. Úspory se pak hledají i v oblastech IT.

V době, kdy knihovny bojují o své místo na trhu s volným časem a s informacemi, intenzivně řeší otázku zavádění technologických inovací. Otevřená řešení díky otevřeným licencím vstřícným ke sdílení zdrojů a spolupráci vytvářejí ekosystém, kterým jsou inovace přirozeně podporovány.

Decentralizace vývoje jako životní pojistka

Vývoj otevřeného softwaru se může rozdělit mezi větší či menší množství vývojářů, kteří pracují pro různé subjekty. Velké projekty, jako jsou knihovní systémy nebo katalogy, pak tvoří vývojové týmy v počtu desítek až stovek lidí; jak se říká – víc hlav víc ví. Za případně rizikové lze považovat pouze některé malé „one man show“ a začínající projekty. Klíčem k úspěchu vývoje otevřeného softwaru a dlouhodobé udržitelnosti projektů je především aktivní komunita, kvalitní řízení a tým vývojářů, který odpovídá rozsahu projektu.

Konkrétně na vývoji knihovního systému Koha se podílí celá řada firem, knihoven i jednotlivců. Od vzniku systému v roce 1999 přispělo do kódu přes 300 vývojářů.2 Jádro týmu tvoří zaměstnanci firem, které poskytují komerční podporu tomuto systému: ByWater Solutions (USA), Catalyst IT (NZ), Biblibre (FRA). Vývojový tým dále doplňují vývojáři z knihoven, které Kohu používají, především z Finska, Norska nebo Německa. Některé rozsáhlejší změny bývají sponzorovány i firmami mimo komunitu. Například EBSCO přispělo poměrně značnou sumou na implementaci technologií ke zrychlení systému.3 ByWater Solutions část svého vývoje financuje také crowdfudingem4, tedy finančními dary menšího objemu, které poskytují jednotlivci nebo knihovny.

Česká stopa v kódu je již patrná, neboť tři čeští vývojáři odvádějí svůj díl práce na testování i vývoji nových funkcí. Některé z nich vznikají jako zaměstnanecké dílo, případně jako součást projektů podpořených z VISK. Testování je často výsledkem dobrovolnické práce, stejně jako český překlad.

Další knihovní systém – Evergreen – vyvíjí především nezisková firma Equinox (vyvíjí i pro Kohu). Na každé nové verzi pracuje většinou 20 až 30 vývojářů, z toho cca třetina na plný úvazek. Testování se pak věnují převážně zaměstnanci knihoven na pozicích systémových knihovníků. Česká komunita disponuje jedním vývojářem, testovacím týmem i překladateli.

Sečteno a podtrženo, vývoj neleží na bedrech jedné firmy nebo instituce. Dělí se na celou řadu dílčích projektů, které jsou rozděleny mezi větší množství subjektů. Jednotlivé výpadky lidských nebo finančních zdrojů tak nemohou výrazněji ohrozit vývoj celku. Do vývoje rozšíření se investuje jedenkrát, ale benefity z nich čerpají všichni uživatelé. To je model, který je vstřícný jak k veřejným rozpočtům, tak k nákladům komerčních subjektů.

Transparentnost a měřitelnost výkonů

Komunita Kohy vydává dvě verze ročně.5 Na každé verzi je odpracováno cca 1500 až 2000 člověkodní6na vývoji samotném a následném testování. Pro lepší představu to odpovídá pracovnímu týmu o velikosti minimálně 16 členů na plný úvazek. Pokud by takový objem práce měla odvést jedna firma, znamenalo by to investici do mezd a zákonných odvodů minimálně v rozsahu 5 mil. Kč za každý půlrok vývoje, kdyby tedy tento vývoj probíhal v České republice za běžných cenových relací programátorské práce. Výše zmíněný objem práce v roce 2016 společně odvedlo 91 vývojářů, kteří vytvořili 2697 oprav7 a úprav v kódu. Díky takto silnému týmu se systém nejen udržuje funkční, ale významné jsou také technologické změny, které probíhají běžnému uživateli většinou skrytě, přispívají však k vyšší stabilitě, bezpečnosti a rychlosti systému. Dá se říci, že původní kód z roku 1999 byl již zcela nahrazen a neustále dochází k evoluci celého systému. Tým vedou lídři volení komunitou pro každou novou verzi. Ti pak odpovídají za dílčí části, jako je přidělování priorit nebo kontrola kvality kódu.

Aktivita vývojářů během dne

Vývojáři Evergreen za rok 2016 publikovali kolem 500 oprav a úprav8, což pro představu odpovídá cca 280 000 řádků nového kódu. Nová verze se vydává jednou nebo dvakrát ročně. Díky sofistikovaným technologiím využívaným při vývoji je veškerá historie úprav přehledná a dohledatelná.910 Snadno se zjišťuje, kdo prováděl konkrétní změny, co nového se v kódu objevilo, nebo naopak, co bylo odstraněno. Při takovém množství lidí podílejících se na vývoji by to jinak ani nešlo. U velkých projektů, které můžeme považovat za globální, lze pozorovat, že vlivem různých časových pásem v místech pobytu jednotlivých vývojářů se práce neomezuje jen na určitou část dne (větší kolečko odpovídá většímu objemu prací – viz grafické schéma nahoře).

Oba uvedené knihovní systémy lze považovat z pohledu vývoje za stabilní a díky široké základně aktivních vývojářů se dá předpokládat i budoucí rozvoj. Připomeňme, že Koha se vyvíjí od roku 1999 a Evergreen od roku 2005. Rozhodně tedy nejde o nějaké nevyzkoušené nedodělky nebo volnočasové projekty.

 

 

(nahoře) Graf vývoje počtu odeslaných změn kódu Koha, zdroj: www.openhub.net

(vlevo) Graf vývoje počtu přispěvatelů do kódu Evergreen, zdroj: www.openhub.net

 

 

Bezpečnost

Jak již bylo řečeno, veškerý vývoj je podroben víceúrovňové kontrole, proto je riziko zavlečení závažné chyby minimální. Specialisté, kteří se věnují bezpečnosti systému, se snaží vyhledávat potenciálně nebezpečné části kódu a opravovat je. Urgentně se řeší objevená bezpečnostní rizika. Takové aktualizace se vydávají obvykle každý měsíc nebo i častěji, pokud je třeba.

„Svatá trojice“: uživatel, správce a vývojář

Knihovníci se někdy mylně domnívají, že pokud se rozhodnou pro otevřený systém, budou si muset najmout vlastního vývojáře. To samozřejmě není nutné, pokud chce knihovna systém pouze využívat a nemá ambice ho dále rozšiřovat a vylepšovat. Důvěryhodná firma nabízející placenou podporu otevřenému softwaru by se rozhodně měla na vývoji systému podílet a disponovat vlastním nebo alespoň externím vývojářem, aby mohla zajistit svým zákazníkům spolehlivé řešení jejich požadavků. Případně by alespoň měla hlásit komunitě vývojářů zjištěné problémy a tlumočit požadavky svých klientů na vývoj nových funkcí. Z povahy věci plyne, že čím větší instituce systém používá nebo čím větší poskytovatel podpory jej nabízí, tím více by se měl takový subjekt na vývoji podílet. Díky své velikosti dokáže zpětnou vazbu od uživatelů získávat častěji a může vyžadovat specifické funkce, které ostatní nepotřebují.

Shrnutí na závěr

Hlavní výhodou vývoje softwaru pod otevřenou licencí je sdílení nákladů na tvorbu kódu a testování. Rozdělení odpovědnosti na množství subjektů zaručuje stabilitu, která není ohrožena výkyvy ve zdrojích financování. Oba otevřené knihovní systémy používané v ČR, tedy Evergreen i Koha, jsou zdravé projekty s širokou základnou vývojářů z mnoha zemí. Stojí za nimi firmy a knihovny, které financují a zajišťují rozvoj obou systémů. Knihovny, které o nasazení některého z uvedených systémů uvažují, nemusí financovat vývoj, pokud nechtějí přispívat ke zlepšování a rozšiřování. Oba zmíněné systémy poskytují širokou paletu funkcí, která vyhovuje nasazení ve většině knihoven.

Jestliže si knihovna objedná placenou podporu, bude pak případné požadavky na rozšiřování systému nebo jeho úpravy poptávat u dodavatele. Ten podle svých schopností a možností zajistí vývoj vlastními silami, u externího vývojáře nebo bude alespoň tyto požadavky tlumočit komunitě. Připomeňme, že standardním přístupem je, aby subjekt, který vydělává na poskytování podpory, investoval část zisku do vývoje a výsledky své práce dával v souladu s licencí k dispozici všem ostatním.

Grafické vyjádření vzájemných souvislostí dílčích úprav Koha, zdroj: Bugzilla Koha

Příště se podrobněji podíváme na proces implementace. Odhalíme jednotlivé kroky přechodu na otevřený systém a řekneme si, jak snadné je začít využívat takový systém v každodenním provozu.

Za fundované informace o pozadí vývoje systému Evergreen bych tímto rád poděkoval Ing. Václavu Jansovi.

 

1 LibreOffice v češtině. LibreOffice [online]. 2017 [cit. 2017-04-27]. Dostupné z: https://cs.libreoffice.org/.

2 History. Koha [online]. 2017 [cit. 2017-04-27]. Dostupné z: https://koha-community.org/about/history/.

3 Koha Receives Massive Support from EBSCO for Enhancements to Its Web-Based, Open-Source ILS. STM Publishing News[online]. STM Publishing, 2015 [cit. 2017-04-27]. Dostupné z: http://www.stm-publishing.com/koha-receives-massive-support-from-ebsco-for-enhancements-to-its-web-based-open-source-ils/.

4 Development Crowdsourcing. ByWater Solutions [online]. 2017 [cit. 2017-04-27]. Dostupné z:http://devs.bywatersolutions.com/.

5 Release Schedule. Koha [online]. 2017 [cit. 2017-04-27]. Dostupné z: https://koha-community.org/about/release-schedule/.

6 Koha Dashboard. Koha [online]. 2017 [cit. 2017-04-27]. Dostupné z: http://dashboard.koha-community.org/.

7 Koha 2016: By the numbers. Kōrerorero [online]. 2016 [cit. 2017-04-27]. Dostupné z:https://blog.bigballofwax.co.nz/2016/12/30/koha-2016-by-the-numbers/.

8 2016 Evergreen ILS: The Community Annual Report [online]. Evergreen, 2016 [cit. 2017-04-27]. Dostupné z:https://evergreen-ils.org/wp-content/uploads/2017/03/Evergreen-Annual-Report-2016-Lower-Resolution.pdf.

9 Bugzilla. Koha [online]. 2017 [cit. 2017-04-27]. Dostupné z: https://bugs.koha-community.org/bugzilla3/.

10 Launchapd. Evergreen [online]. 2017 [cit. 2017-04-27]. Dostupné z: https://launchpad.net/evergreen.