Trzeci członek zespołu Craiga - Gregg Brown – pisze o standardach otwartych i pracy przy nich. Jedna uwaga związana z tłumaczeniem: określenia „rozsądne i niedyskryminujące” (reasonable and nondiscriminatory - RAND) oraz określenia „uczciwe, rozsądne i niedyskryminujące” (fair, reasonable, and nondiscriminatory - FRAND) stosowane są w przepisach prawa własności intelektualnej (Intellectual Property Right (IPR). Dlatego – mimo powtórzeń – pozostały w tłumaczeniu w niezmienionej formie.
Jak zaznaczyli moi koledzy, współpraca, konkurencja i zaufanie klientów mają istotne znaczenie w opracowywaniu skutecznych standardów, zaś przejrzystość i uwaga, jaką przykładamy do technologicznej doskonałości, to wyznaczniki procesu prowadzącego do otrzymania takich właśnie, użytecznych definicji. Oczywiście to tylko początek, bowiem ostatecznie to rynek decyduje, które ze standardów wejdą w powszechne użycie. Zaoszczędzilibyśmy sobie dużo ciężkiej pracy i sporo lurowatej kawy, gdybyśmy potrafili opracowywać wyłącznie udane standardy. Niestety udane procesy [standaryzacyjne] nie gwarantują udanych standardów. W rzeczywistości poszczególne decyzje dotyczące wdrożeń podejmowane przez wielu programistów składają się na to, co w rezultacie przyjmie rynek, a co zostanie zapomniane.
Standardy otwarte określane są przez organizacje standaryzacyjne oraz przemysł jako standardy, zawierające następujące zasadnicze elementy:
Dziś programiści wolą raczej wdrażać szeroko rozpowszechnione standardy otwarte niż projektować od początku nowe protokoły. Taki trend dominuje również w Microsoft. Co biorą pod uwagę programiści, gdy wybierają specyfikację i dlaczego prowadzi to do przyjmowania standardów otwartych?
Pierwsze pytanie, jakie stawia się przy wyborze specyfikacji, brzmi: „czy będzie ona właściwa do danego zadania?”. Mówiąc szerzej – wdrażane specyfikacje otwarte albo są specyfikacjami przetestowanymi na rynku, pochodzącymi od pojedynczego dostawcy, który dostarczył je organizacji standaryzacyjnej w celu przeprowadzenia standaryzacji, albo są one wynikiem konsensusu i przeszły weryfikację będącą częścią formalnego procesu ustanawiania standardu. Każda z tych procedur sprawia, że standardy otwarte są często wybierane ze względów projektowych i wdrożeniowych.
Innym dużym atutem standardów otwartych jest fakt, że współcześnie w praktyce projektowania oprogramowania odchodzi się od tworzenia protokołów unikatowych. Różne scenariusze współdziałania wymagają oczywiście różnych protokołów i formatów. Za każdym razem programiści byli skłonni tworzyć nowy protokół, dopasowując go do danego scenariusza. Jednak ze względu na to, że współdziałanie pomiędzy systemami i dostawcami stało się tak ważne, programiści zmienili sposób projektowania oprogramowania i zaczęli stosować prostsze, zestandaryzowane protokoły. Jest to rozwiązanie łatwiejsze, tańsze i często przyczynia się do tego, że istniejący już standard lepiej przyjmuje się na rynku. Nawet w przypadku gdy w systemach występują unikatowe potrzeby współdziałania, nowe projekty – takie jak interfejsy RESTful – na ile to tylko możliwe, opierają się na standardach otwartych, co skutkuje ograniczeniem kosztów wdrożeniowych oraz większą liczbą obsługiwanych platform.
To każe nam rozważyć drugi problem, a mianowicie: użyteczna specyfikacja musi być udostępniona na wszystkich platformach, z którymi projektowane rozwiązanie będzie współdziałać, zarówno teraz, jak i w przyszłości. Oznacza to, że posiada ona licencję na użytkowanie na wszystkich platformach, które nas interesują, ma techniczną możliwość działania na tych platformach oraz że jest w możliwie szeroko używana. Choć warunki te są spełnione przez wiele specyfikacji, to z definicji są one spełnione przez standardy otwarte.
A wreszcie – decyzja o wyborze specyfikacji, podobnie jak większość decyzji technicznych, opiera się na rachunku kosztów. Bezpośredni koszt wdrożenia standardu zależy od danego przypadku, jednak koszty wdrożeniowe i przyszłe koszty wsparcia technicznego można realnie ocenić jako znaczące. Szeroko wdrażane standardy otwarte posiadają własną strukturę wsparcia technicznego opartą na wielu przypadkach implementacji na różnych platformach, co redukuje ich koszty wdrożeniowe (i czasem także koszt ich testowania).
Koszty wsparcia technicznego w przyszłości zależą od tego, w jaki sposób dana specyfikacja technologiczna będzie ewoluować – w tym sensie wszelkie nieprzewidziane zmiany okazują się szczególnie drogie. Kluczową zaletą standardów otwartych jest fakt, że proces osiągania konsensusu stosowany w ich utrzymaniu redukuje prawdopodobieństwo niespodziewanych i gwałtownych zmian. Dzięki temu w przypadku standardów otwartych koszt przyszłego wsparcia technicznego staje się bardziej przewidywalny.
W rezultacie szeroko przyjęte standardy otwarte zyskują popularność wśród programistów ze względu na swoją skuteczność w realizacji konkretnych zadań, zgodność ze współczesną praktyką projektową, możliwość wdrażania na platformach, z których mają korzystać oraz z powodu przewidywalnych kosztów. Oczywiście wszystkie te czynniki zazębiają się wzajemnie, co sprawia, że w zasadzie nie można zawczasu przewidzieć, czy dany standard zostanie rzeczywiście szeroko przyjęty. Dlatego też ekosystem standardów oparty na możliwości wyboru, przejrzystości i na wysokiej wadze przywiązywanej do technicznej doskonałości wydaje się tak istotny w zapewnieniu standardom zdrowej „puli genetycznej”.
Parafrazując powiedzenie „klienci głosują swoimi portfelami na najlepsze produkty” - możemy powiedzieć, że ostatecznie to programiści „głosują klawiaturą” na wybór najbardziej użytecznego standardu.
Drugi post z cyklu „Standardy” – tym razem Steve Mutkoski, starszego specjalistę ds. strategii standaryzacyjnych w zespole Craiga…
Jak wcześniej wspomniał Craig Shank, standardy stanowią ważną część rynku technologii ICT, przyczyniającą się do współdziałania, współpracy, konkurencji i pozyskiwania zaufania klientów. Chciałbym iść tym śladem i podkreślić, że czynnikami ożywiającymi rynek ICT są otwartość i oferowanie możliwości wyboru.
Sprawą zasadniczą w zapewnieniu rozwiązań, które połączą produkty i technologie mogące zaspokoić potrzeby naszych klientów, jest stworzenie właściwie działającego środowiska standaryzacyjnego. Są tacy, którzy wskażą jakieś konkretne opracowanie czy wybrany model standaryzacyjny jako najlepsze i obowiązujące. W Microsoft uważamy jednak, że otwartość w opracowywaniu standardów to najlepszy sposób, aby potrzeby każdego zostały zaspokojone, niezależnie od tego, czy dotyczą one szybkich innowacji, szerokich zastosowań, efektywności kosztów czy jakichś szczególnych oczekiwań klientów. Sądzimy także, że otwartość w zakresie opracowywania i wdrażania standardów prowadzi do szerszych możliwości wyboru na rynku. Jesteśmy również zdania, że to wolny rynek najlepiej decyduje o powodzeniu danego standardu – firmy i klienci będą używać standardów ze względu na to, które z nich najpełniej zaspokoją ich potrzeby, a nie ze względu na to, że zostały one akurat dopuszczone przepisami prawa.
Co firma Microsoft ma na myśli, mówiąc o „wyborze” w odniesieniu do standardów?
Dla nas wybór oznacza przyjęcie standardów formalnych (przemysłowych) i nieformalnych (de facto) oraz szeroko akceptowanych specyfikacji przemysłowych jako narzędzi umożliwiających wdrożenia technologii. Każdy z tych elementów ma swoją szczególną funkcję i wartość. Te zróżnicowane podejścia przynoszą pożytek różnym społecznościom o bardzo rozmaitych zainteresowaniach; żadna organizacja ani proces nie przewyższa innych pod względem dostarczania „doskonalszych” standardów. Można się spodziewać, że gałęzie przemysłu i firmy skorzystają z danego standardu lub z wielu różnych, o ile standardy te będą odpowiadać potrzebom rynku i zaoferują im najlepsze możliwości osiągnięcia sukcesu w odpowiedniej dla nich dziedzinie.
Microsoft angażuje się w opracowywanie standardów. W strategicznym interesie firmy Microsoft leży uczestniczenie w różnych przedsięwzięciach standaryzacyjnych, dzięki nim bowiem zyskujemy gwarancję, żenasze produkty są kompatybilne ze środowiskiem technologicznym w jakim działają.
Nasz „kompas” w opracowywaniu standardów
W oparciu o doświadczenie w pracy w globalnym ekosystemie standaryzacyjnym Microsoft opracował zestaw podstawowych zasad, które stosujemy, decydując się na zaangażowanie i uczestnictwo w przedsięwzięciach tego typu. Udane opracowania standaryzacyjne można osiągnąć poprzez współpracę na styku różnych gałęzi przemysłu, toteż jesteśmy przekonani, że poniższe zasady mogą i powinny być stosowane przez wszystkich zainteresowanych:
Współudział – Standardy cieszą się powodzeniem wówczas, gdy zaspokajają potrzeby rynku. Uważamy, że rzeczą istotną dla każdego zainteresowanego – czy jest nim mała firma czy duża, rynek wschodzący czy rynek dojrzały - jest możliwość uczestniczenia we wszelkich rodzajach opracowań standaryzacyjnych. Jesteśmy zdania, że silna i prężna społeczność standaryzacyjna cechuje się uwzględnianiem głosów pochodzących ze wszystkich obszarów rynku, łącznie z tymi, które nie mają doświadczenia w opracowywaniu i wdrażaniu standardów w przemyśle komputerowym.
Przejrzystość – W procesach ustanawiania standardów powinno dążyć się do osiągnięcia konsensusu i szerokiego porozumienia pomiędzy uczestnikami, a także do neutralności uczestników, co dla nas oznacza, że w przebiegu procesu żaden z punktów widzenia nie jest faworyzowany w stosunku do innego. Procesy te oraz związana z nimi dokumentacja powinny być publicznie udostępnione i poddane komentarzom, uzupełnieniom i testom. Przejrzystość wdrożenia jest również istotnym, a często pomijanym, składnikiem standaryzacji. Umożliwia ona lepsze współdziałanie i lepszy przebieg wdrożeń. I tak na przykład firma Microsoft dokumentuje swoje działania na rzecz standardów i ich implementacji w swoich podstawowych produktach. Publikujemy bardzo obszerną dokumentację produktów i specyfikacje protokołów, oferujemy Microsoft IP (Własność Intelektualną) w ramach inicjatywy Open Specifications Promise, a także licencjonujemy wiele elementów naszego portfela własności intelektualnej. Przejrzystość i udostępnianie informacji stwarza innym szersze możliwości opracowywania produktów, które współdziałają z rozwiązaniami firmy Microsoft, stanowią ich uzupełnienie, a nawet konkurują z nimi.
Doskonałość technologiczna – Standardy cieszą się powodzeniem, ponieważ zaspakajają realne potrzeby klientów i dostarczają dodatkową wartość tym, którzy je implementują i użytkują. Wartość ta pochodzi z wkładu technologicznego, jaki został wniesiony w dany standard. Uważamy, że rzeczą istotną jest stwarzać takie środowisko w ekosystemie standaryzacyjnym, które będzie wnosić jak najcenniejszy wkład technologiczny. Jakość samej specyfikacji jest nie mniej ważna niż jakość zastosowanej technologii. Standard okaże się użyteczny dla rynku i przyczyni się do podjęcia współdziałania tylko wtedy, gdy jasne będą jego cele i gdy zostanie zaopatrzony w dobrze sformułowana specyfikację.
W następnym artykule omówimy w zarysie te elementy, które zdaniem Microsoft są konieczne do utrzymania ekosystemu standaryzacyjnego.