Jak nie regulować rynku oprogramowania (gwarancje na oprogramowanie)

2009-05-14 00:00:00 +0100


Co by tu jeszcze uregulować, żebyśmy mieli pracę? - zastanawiają się być może specjaliści Komisji Europejskiej popijając wieczorem piwo z lobbystami. W maju najwidoczniej padło na producentów oprogramowania…

Wzruszająca jest troska KE o mitycznych konsumentów. Unijna dialektyka podpowiada, że aby mogli oni "surfować w sieci bez barier" ("surf the web without borders") należy te bariery najpierw wznieść i starannie uregulować gąszczem przepisów. Komisarze Reding i Kuneva wskazali na "luki w regulacjach UE", w których "zaufanie konsumentów" może być "jeszcze bardziej poprawione". Oczywiście, dzięki dalszym regulacjom.

Najwięcej kontrowersji w środowisku producentów oprogramowania  wzbudził ten zapis:

Extending the principles of consumer protection rules to cover licensing agreements of products like software downloaded for virus protection, games or other licensed content. Licensing should guarantee consumers the same basic rights as when they purchase a good: the right to get a product that works with fair commercial conditions.

W wolnym tłumaczeniu chodzi o rozszerzenie regulacji dotyczących ochrony konsumentów na oprogramowanie komputerowe. To znaczy, żeby producent programu musiał dać na niego gwarancję na dwa lata. Gwarancję czego?  Trudno powiedzieć, pewnie "poprawnego działania". Dla laika brzmi to świetnie, ale w praktyce to nie zadziała. Dlaczego?

Przede wszystkim dlatego, że w odróżnieniu od pralki czy nawet telefonu komórkowego program komputerowy nie pozostaje od początku do końca pod kontrolą producenta. Wprost przeciwnie - większość programów opiera się na dwóch założeniach. Pierwsze to nadzieja, że API systemu operacyjnego i bibliotek jest dobrze udokumentowane. Drugie, że działa zgodnie z dokumentacją i zawsze tak samo. Oba założenia są oczywiście błędne, stąd intensywny okres testowania przed wdrożeniem, który ma wychwycić najbardziej widoczne błędy. Resztę wykrywają użytkownicy i łata się je za pomocą poprawek.

Czy nie można pisać oprogramowania bez błędów? Oczywiście, że można.

Marzeniem każdego wyznawcy informatyki utopijnej jest stworzenie od zera systemu operacyjnego i wszystkich bibliotek w oparciu o formalne metody weryfikacji oprogramowania. Dlaczegóżby nie pisać wszystkich programów w Adzie i weryfikować ich poprawności za pomocą SPARKa. Odpowiedź jest bardzo prosta: bo jest to bardzo ale to bardzo drogie. Stąd ze SPARKiem programuje się samoloty i reaktory jądrowe, a nie popularnego "Sapera" czy "Pasjansa".

Metodą gwarantowania poprawności oprogramowania jest weryfikacja istniejących produktów za pomocą metodyk takich jak Common Criteria. Tylko, że proces weryfikacji i certyfikacji na najniższy poziom (EAL1) kosztuje w europejskich laboratoriach kilkadziesiąt tysięcy euro. Zaś przy najwyższych poziomach (EAL7) można zapomnieć o produkcie bardziej złożonym niż np. dioda jednokierunkowa. Dla projektów bardziej skomplikowanych praktycznie niewykonalne staje się sporządzenie dokumentacji obejmującej formalny dowód poprawności.

Innymi słowy przepisy wymuszające na producentach dostarczanie gwarancji na oprogramowanie albo będą martwymi przepisami, albo spowodują zniszczenie europejskiego rynku oprogramowania - oczywiście w interesie konsumentów.

Fakt, że takie postulaty jednak się w rezolucjach PE i KE pojawiły sugeruje, że stoi za nimi tradycyjny twórca europejskiego prawa czyli duże, międzynarodowe koncerny dla których IT jest takim samym towarem jak kurczaki czy legendarne już zakrzywione banany. Podobnego zabiegu na europejskim rynku dokonano już w branży spożywczej - za pomocą bardzo wysoko (ale dość selektywnie) postawionej poprzeczki Bruksela skutecznie zabezpieczyła interesy dużych, międzynarodowych koncernów produkujących i dystrybuujących tekturową (ale sterylną) żywność, ograniczając małych, tradycyjnych dostawców lokalnych.

W tym kontekście nie można pominąć oprogramowania open-source i innych aplikacji dostarczanych na licencjach "AS IS" i podobnych. Ktow przypadku takich projektów ma być osobą udzielającą gwarancji i odpowiadającą za jej realizację? Ktosfinansuje zapewnienie odpowiedniej jakości kodu?

Warto przypomnieć, że kwalifikowany podpis elektronicznywymyślono w Unii mniej więcej w tym samym celu. Nie mogąc konkurować z resztą światowych gospodarek z powodu paraliżującego wszelką innowacyjność łańcucha nadregulacjiktoś starannie wybraną, okrężną drogą doszedł do wniosku, że to nie biurokracja przeszkadza tylko jakiś mityczny brak zaufania.

Nieważne, że firmy przesyłają milionowe zamówienia zwykłym faksem - zamiast istniejących postanowiono rozwiązać problem nieistniejący. Nawet jeśli rozwiązanie się nie sprawdziło, to przynajmniej sztaby doradców i urzędników miały pracę przez całe 10 lat. A tego nie można przecenić.