Není open source jako open source

Vlivem GPL panuje o open source intuitivní představa jako o realizaci utopického komunismu. Můžete si vzít co co potřebujete, když si pak zase může kdo chce vzít co potřebuje od vás. Spoustu chytráků to svádí k lákavé představě oběda zadarmo na účet naivních idealistů, kteří svojí práci jen tak rozdávají. V praxi ale často zjistí, že naopak oni naivně sedli na lep krvežíznivým kapitalistům a open source byla jen třpytivá návnada.

Nechci zatracovat žádný z open source modelů, všechny mají dobrý důvod k existenci i‎ svá pro a proti. Pro nás techniky je ostatně na open source nejdůležitější právě ta možnost číst kód, to ostatní je podstatnější pro kolegy v jiných rolích - hlavně obchodníky a business architekty. Právě ty bych chtěl upozornit, že strategické vlastnosti open source projektů se mohou lišit jako den a noc bez toho, aby se významně lišily jejich formální atributy (licence, technologie, marketing apod.). Nastavit si dobře očekávání je proto složité i pro zkušené a je dobré se tomu věnovat explicitně dřív, než vás naivní optimismus zavede na ekonomická jatka.

Mnoho open source projektů má za sebou experty nebo komerční firmy, které poskytují placenou podporu. Liší se ale zásadně v tom, jaké je rozdělení práv a odpovědností mezi těmito firmami a komunitou uživatelů a přispěvatelů a jak je taková komunita spravována. Představa OSS jako utopického komunismu platí většinou jen tehdy, když většina práce a k ní potřebných rozhodnutí probíhá právě v otevřené komunitě, která proto prakticky vždy vytvoří sociální struktury silně připomínající politickou samosprávu - zastupitelské orgány, volby, platformy veřejné diskuze (a byrokracii). Je poměrně bezpečné předpokládat možnost použití takového projektu v produkci vlastními silami.

Pokud je ale OSS produkt “one man/company show” a pokud je třeba navíc produkt přímo raison d’être dané firmy, je potřeba počítat s tím, že do produkce se bez placené podpory dostat prakticky nelze. Lidé si často myslí, že ona placená “podpora” spočívá třeba v konzultacích na míru nebo v lepších vzdělávacích materiálech nebo něčem podobně zbytném, ale to je právě ten největší omyl.

Součástí podpory v případě komerčního OSS jsou pečlivě vybrané maličkosti, které při úvodním výběru technologií lze snadno přehlédnout jako nepodstatný detail, ale jejich klíčový význam se vyjeví až mnohem později, kdy už většinou nejde couvnout. Jako typického zástupce uveďme bezpečnostní updaty. Ty ve vývoji nikoho nezajímají, ale provozovat v produkci něco se zveřejněnou kritickou CVE do vydání další “free” verze (klidně i několik měsíců) je čirá sebevražda. A to nemluvím o tom, že na starší větve je většinou i po těch měsících potřeba opravu backportovat, protože se ve free verzi opravuje jen hlavní vývojová větev.

Nedělám si iluze, že se nenajdou kovbojové, kterým je bezpečnost internetového ekosystému u řitě a do produkce pustí cokoli, hlavně když zákazník cáluje. I ti ale mohou kvůli absenci mimořádných updatů narazit. U komerčního OSS totiž vůbec nemusí platit jinak samozřejmý předpoklad, že release verze produktu neobsahuje kritické funkční chyby. A nemusí platit dokonce ani ten nejzákladnější předpoklad, že výrobce má zájem takovou chybu co nejrychleji odstranit. Respektive má, ale nejdříve pro platící zákazníky. Neplatící čekají tak dlouho, že to spolehlivě vyloučí jakékoli profesionály mezi nimi.

Z úplně jiné kategorie je další důvod, který vás může donutit neplánovaně započítat komerční podporu open source softwaru do OPEXu vašeho produktu: CYA (cover your ass) instinkt všech manažerů v korporátní sféře. Ve velkém byznysu nikoho moc netrápí, jestli se vyhodí víc peněz, než je skutečně potřeba, ale možnost hodit případné selhání na placeného dodavatele, je klíčové. Jak se říká: “Nikoho ještě nevyhodili za to, že najal IBM.” Možná máte pocit, že možnost provozovat váš produkt na Linuxu je z důvodu jeho nulové ceny konkurenční výhoda. V praxi ale zjistíte, že jediný Linux, který korporáty uznávají, je RedHat a jeho cena nejen že není ani vzdáleně srovnatelná s Windows servery, ale že může v klidu zastínit i cenu toho, co se na něm má provozovat.

Zkrátka páky existují na každého (zdaleka jsem tu nepopsal všechny) a bez nákupu komerční licence to může dopadnout tak, že místo získání nějakého produktu zdarma může naopak výrobce produktu získat zdarma testery a někdy i vývojáře (pull requesty apod.), jejichž práci pak de facto prodává v placené verzi. Jinak řečeno i zde může platit pořekadlo zpopularizované Facebookem: “Když neplatíte, nejste zákazník, ale produkt.”

(Pro úplnost ‎je potřeba dodat, že naopak to neplatí a že tyto triky nepoužívá jen open source. Příkladem obého budiž třeba Home edice Windows‎, kde na první pohled není téměř žádný funkční rozdíl od vyšších verzí, ale ve skutečnosti je to denně záplatovaná hořící kupa sraček jejíž uživatelé dostali za několik tisíc právo být pokusnými králíky pro zákazníky, kteří platí víc.)

Nejistotu ohledně byznysového modelu OSS projektů prohlubuje to, že v praxi jej některé firmy komunikují zcela otevřeně, ale jiné zase investují nemalé prostředky do jeho skrytí. Dotují například zdánlivě nezávislé uživatele v diskuzních fórech nebo organizují komunitní události nebo se jinak marketingově snaží vyvolat dojem, že produkt není ve skutečnosti v monopolním vlastnictví jednoho subjektu, aby se oslabila ostražitost zákazníků vůči faktickému vendor lock-inu a s tím spojenou brutální cenovou politikou, která je pravým opakem ducha open source.

Jak jsem psal na začátku, není žádný spolehlivý indikátor, jak rozlišit mezi projekty typu “programátoři sobě” a maskováním strojů na peníze. Pokud na to ale budete aktivně myslet, přirozená intuice většinou zafunguje dobře.