Z teorią rynku efektywnego związany jest też artykuł: Teoria bliższa życiu: Rynek Efektywny vs Rynek Fraktalny
Hipoteza rynku efektywnego powstała na potrzeby inwestycji kapitałowych na giełdzie. Czy da się ją zastosować w odniesieniu do informatyki?
Kilka ostatnich dyskusji w których uczestniczyłem ujawniło, że wielu informatyków lewituje wciąż jeszcze w błogim przeświadczeniu, że wystarczy być bardzo sprawnym technicznie specjalistą, żeby móc zawojować część świata mocno związaną z komputerami. Niestety najnowsze tendencje pokazują, że informatyk musi być doskonałym specjalistą od biznesu, finansów, księgowości bądź logistyki, nie przestając być dobrym informatykiem. W związku z tym, że słyszałem ostatnio wielokrotnie powtarzane tezy o rynku efektywnym, których kontekst sugerował zupełny brak zrozumienia tego problemu, chciałbym przedstawić czytelnikom mój pogląd na tą hipotezę i jej znaczenie w realnym, komputerowym świecie.
Hipoteza rynku efektywnego największą popularność osiąga w pracach związanych z analizą rynków giełdowych. W ogólnej postaci mówi ona, że ceny papierów wartościowych odzwierciedlają wszystkie dostępne w danym momencie informacje. Jeśli firma zdobywa w przetargu ciekawy kontrakt, wtedy w oczach inwestorów wartość tej firmy rośnie, co poprzez mechanizmy popytu i podaży przekłada się na wyższe ceny jej akcji. W praktyce inwestorzy nie czekają z zakupem akcji takiej atrakcyjnej firmy do chwili rozstrzygnięcia kontraktu. Analizują możliwość wygrania bądź przegrania go na podstawie wcześniejszych działań tej firmy i jej potencjale. Oczywiście nie wszyscy inwestorzy oceniają firmę jednakowo oraz nie wszyscy mają ten sam horyzont inwestycyjny, co pozwala na istnienie obrotu akcjami. Natomiast średnia ocen wskazuje na oszacowanie wartości firmy w oczach wszystkich osób interesujących się tą spółką. Jeśli wygrana jest bardziej prawdopodobna od przegranej, inwestorzy zaczynają podejmować decyzje o zakupie wcześniej, traktując sam fakt udziału w przetargu jako ważną informację wpływającą na wartość samej firmy. Tak więc jeszcze przed jego rozstrzygnięciem cena spółki, która ma szansę go wygrać zaczyna rosnąć i w chwili jego rozstrzygnięcia prawie wszyscy przekonani o jej zwycięstwie posiadają już upragnione akcje. Na wartość firmy wpływają nie tylko kontrakty, ale posiadane technologie, know-how czy ogólna pozycja rynkowa, jak również czynniki zewnętrzne związane z konkurencyjnymi firmami oraz ogólnymi trendami na rynku. Wszystkie te zewnętrzne i wewnętrzne czynniki to informacja, która wpływa na wartość spółki. I jeśli informacja ta się zmieni, to i wartość spółki się zmieni. Teoria rynku efektywnego, w odniesieniu do giełdy mówi, że na zmianę informacji rynek zareaguje bez żadnych opóźnień. Gdyby bowiem zareagował z opóźnieniem, wtedy można byłoby zarobić na inwestycji w akcje tej firmy. Ale teoria zakłada, że inwestorzy są racjonalni to znaczy jeśli wiedzą, że da się na czymś zarobić, to od razu tą wiedzę wykorzystują. Wiadomo już, że teoria w tej kwestii jest prawdziwa. Większość badań mówi, że czas reakcji inwestorów na zupełnie nieznaną i niespodziewaną wiadomość to w zależności od rynku około 15-20 minut.
W teorii zarówno koszt obrotu akcjami jak i koszt pozyskiwania informacji jest zerowy. Jednak wielu specjalistów, którzy próbują badać efektywność rzeczywistego rynku (Fama, MacBetch, Roll, Elton, Gruber) używają bardziej realnej definicji efektywności rynku, która mimo uwzględnienia występująch ograniczeń nie jest wcale bardziej łagodna. Otóż praktycy mówią, że ceny odzwierciedlają informacje tak długo, dopóki koszt uzyskania tych informacji nie przekroczy spodziewanych zysków (bądź strat) związanych z zajęciem właściwej pozycji. Takie praktyczne podejście jest o tyle ważne, że umożliwia wytłumaczenie przyczyn powstawania anomalii, czyli przypadków, gdy ceny nie odzwierciedlają w pełni wszystkich informacji. Specjalistą od wyłapywania anomali jest wspomniany wcześniej Fama. To on jest autorem potwierdzonej tezy, że małe przedsiębiorstwa pozwalają zarobić na swoich akcjach więcej niż duże. Przyczyny takiego stanu rzeczy są dość dobrze znane. Otóż zarządzający funduszami inwestycyjnymi nie lubią, a często wręcz nie mogą inwestować w małe firmy ze względu na ich mniejszą (z ich punktu widzenia) płynność. A to właśnie fundusze dysponują największą siłą analityczną, która pozwala wychwytywać natychmiast wszystkie okazje do zarobków. Tak więc jeśli fundusze rezygnują z możliwości zarabiania na akcjach małych firm, wtedy wprawni indywidualni inwestorzy mają przeciwko sobie niedzielnych inwestorów, co jak się można domyślać skutkuje pewnym kąskiem nieefektwności. Druga znana anomalia (efekt stycznia) również wynika z interpretacji niektórych przepisów przez fundusze. Otóż inwestorzy instytucjonalni lubią mieć na koniec roku w swoim portfelu dobrze wycenione aktywa (gotówkę, ewentualnie obligacje rządowe). W związku z tym w styczniu muszą dokupować akcje spółek, których pozbyli się w grudniu, co jak można się spodziewać powoduje wzrosty cen akcji. I wytłumaczenie byłoby w pełni wiarygodne, gdyby nie jedno drobne "ale". Gdyby przyjąć, że jest prawdziwe, należałoby oczekiwać efektu grudnia, na którym namiętnie zarabialiby specjaliści od krótkiej sprzedaży. Niestety efekt grudnia nie występuje (zawsze w tym miejscu żartuję, że shorciarze wyjechali w szortach na Hawaje). Obecnie jednym z głośniejszych przeciwników efektywności rynku jest Haugen, który napisał brawurową książkę, w której usiłuje wykazać, że efektywność rynku to mit teoretyków. Książka jest wspaniała, tylko ciągle się zastanawaiam, dlaczego Haugen zdecydował się zarabiać na tej książce, a nie na giełdzie, na której według jego słów zarabianie jest dziecinnie łatwe.
Wróćmy jednak do realnego świata, jeśli oczywiście świat komputerów i informatyków można nazwać realnym. Zastanówmy się co w świecie informatyki może oznaczeć rynek efektywny. W stosunku do dóbr naturalnych (mięso, metale, paliwo) efektywność oznacza, że klienci nabywający te dobra są skłonni zapłacić za nie tylko tyle, ile naprawde są warte w świetle wszystkich dostępnych informacji. Doskonałym przykładem efektywności rynku stał się na jesieni 2005 roku gwałtowny spadek cen mięsa kurczaków (i wszelkiego rodzaju drobiu) po sygnałach pojawienia się ptasiej grypy. Warto jednak zwrócić uwagę na fakt, że sama cena produktu (wyrażona w jednostkach monetarnych) nie jest jedynym wyznacznikiem popytu na dany produkt. W wielu miastach, a w zasadzie na ich obrzeżach, funkcjonują rynki, na których można kupić warzywa i owoce 50-70 procent taniej, niż w sklepiku tuż obok naszego domu. A jednak większość osób kupuje te produkty mocno przepłacając (w stosunku do cen z targowisk z obrzeża miasta). Śmiem twierdzić, że osoby te płacąc nominalnie znacznie więcej, niż sklepikarz zapłacił wytwórcy, wybierają najniższą dla siebie cenę. Dlaczego tak uważam? Otóż do ceny rynkowej z obrzeży powinno się dodać koszty dojazdu do miejsca tej taniej sprzedaży. Zarówno w postaci kosztów realnych (pieniądze na benzynę czy bilet) jak i koszty trudno przeliczalne na gotówkę (czas dojazdu, zmęczenie, ryzyko braku oczekiwanego towaru). To wszystko powoduje, że idziemy na zakupy do lokalnego warzywniaka, mimo iż wiemy, że nominalna cena na rynku jest niższa. I to jest właśnie efektywność rzeczywistego rynku. Świadomie lub podświadomie wybieramy opcję, która powoduje zakup towarów w najkorzystniejszej dla nas cenie. I nie ma tu miejsca na żadną anomalię. Jeśli rynek hurtowy jest tylko 15 minut od nas, a nie idziemy na niego spacerkiem, nie jst to żadna anomalia czy brak informacji, tylko czyste lenistwo, które wyceniamy znacznie wyżej, niż różnice w cenach, między różnymi miejscami zakupu tego samego towaru.
Spróbujmy jednak przełożyc to na rynek informatyki. Uważam, że efektywność można podsumować tezą, że użytkownik kupi ten z dwóch takich samych komputerów, który jest dla niego tańszy. Dokładnie to samo będzie z oprogramowaniem. Jeśli dostępne są dwa idealnie takie same programy, wtedy użytkownik kupi ten program, który jest dla niego tańszy (łącznie zapłaci za niego mniej). Ale nie ma idealnie takich samych programów. Programy różnią się od siebie, a użytkownik musi zdecydować jak różnica w tych programach przekłada się na ich wartość. Często użytkownik przekłada tą różnicę bardzo nieliniowo. Ten, który korzysta ze słabszego programu i wystarcza mu on do wszystkich jego potrzeb konieczność dopłaty (przy zakupie bardziej rozbudowanej wersji) traktuje jak niepotrzebnie wyrzucone pieniądze. I odwrotnie użytkownik bogatszej wersji raczej nie zdecyduje się na zamianę jej na słabszą wersję, mimo tego, że będzie ona wielokrotnie tańsza (jeśli regularnie używa funkcji niedostęnych w wersji słabszej). Myślę, że efektywność rynku konsumenckiego może zostać przełożona na globalną racjonalność klientów. Jestem przy tym za stosowaniem pojęcia efektywności w praktycznej postaci Famy, to znaczy uznać koszt dotarcia do informacji, za jeden ze składników ceny towaru. Tak więc sugestia, że użytkownik o czymś nie wie, nie oznacza według mnie niemożliwości dotarcia do informacji, tylko próbie oszczędności na kosztach jej uzyskania. Takie podejście może więc skutkować tym, że ludzie będą kupować nominalnie droższy produkt (jeśli koszty ukryte nominalnie tańszego produktu będą większe), co nie zachwieje tezą o realnej efektywności rynku.
Jako dygresja do kwestii kosztów ukrytych i wartości danego produktu, z perspektywy klienta biznesowego, należy wspomnieć o traktowaniu licencji jako środka trwałego i wynikających z tego konsekwencji w postaci innego traktowania rynku oprogramowania klientów indywidualnych i instytucjonalnych. Zacznijmy od tego, że w większośći krajów zakup licencji na oprogramowanie jest traktowana podobnie jak zakup środka trwałego (tak jak budowa hali fabrycznej czy zakup maszyn do tej hali). A zakup środka trwałego podnosi wartość firmy (ponieważ w oczach inwestorów firma dysponuje większymi środkami do osiągnięcia suksesu lub może być drożej sprzedana). Odwrotnie praca ludzka przynosi firmie czyste straty, gdyż podnoszą się koszty jej bieżącej działalności. Z tej zależności wynika czemu firmy tak chętnie inwestują w sprzęt (nawet bardzo drogi), który umożliwia czasem nawet tylko niewielką redukcję zatrudnienia. Takie zachowanie skutkuje rozwijaniem się bardzo popularnej mody na tak zwane bezobsługowe oprogramowanie. Jakkolwiek wszyscy wiedzą, że nie ma bezobsługowych programów, to hasło takie jest bardzo chwytne. Zwłaszcza jeśli część usług związanych z używaniem programu można ukryć w licencji (instalacja, pomoc techniczna itp). Tak więc dwa porównywalne pod kontem wydanych pieniędzy rozwiązania (podejście kasowe) będą potraktowane różnie (w podejściu memoriałowym), jeśli udział licencji i pracy ludzkiej będzie w obu projektach na różnym poziomie. W różnych firmach podejście może być nieco inne (zależne od preferencji dyrektora finansowego, zarządu bądź rady nadzorczej), ale ogólna idea będzie bardzo podobna. Klienci indywidualni nie czują takiego rozwarstwienia, to znaczy zapłacone pieniędze zawsze tak samo obciążają ich budżet (bez względu na źródło kosztów w postaci licencji bądź pracy innych osób). Zastanawiałem się, czy nie może to być źródłem jakiś większych anomalii na rynku efektywnym, ale doszedłem do wniosku, że produkty dla klientów indywidualnych i korporacyjnych to w większości przypadków rozdzielne produkty, więc myślę, że nie stanowi to większego problemu.
Innym przejawem efektywności związanej z oprogramowaniem jest optymalne wykorzystanie dostępnej funkcjonalności oprogramowania. Tu zapewne większość praktyków podniesie głosy sprzeciwu i każdy będzie miał przynajmniej kilka dobitnych przykładów, kiedy to użytkownicy mogli zrobić coś znacznie prościej, a z niewiadomych powodów robili to w sposób wolniejszy, bardziej skomplikowany i mocnej obciążający serwer. Zgadza się, sam mógłbym sypać takimi przykładami jak z rękawa. Jednak mimo mnogości takich przykładów uważam, że zjawisko to nie zaprzecza efektywności. Otóż uważam, że przyczynami stosowania rozwiązań nieoptymalnych, mimo że optymalne są dostępne, może być na przykład niewiedza (czyli na przykład brak szkolenia, przekonanie o braku czasu na nie czy zatrudnianie personelu o słabszych kwalifikacjach) bądź czynniki fizyczne powiązane ze zmianą sposobu postępowania (zamiast dwukrotnie możemy jednokrotnie wprowadzać numer paczki do systemu, ale wymaga to dwukrotnego obejścia stanowiska pracy, a wcześniej nie było to potrzebne). Najczęściej czynniki fizyczne zostały uwzględnione przy tworzeniu oprogramowania (posługując się poprzednim przykładem możliwe, że wystarczy przepchnąć paczkę po taśmociągu, bądź przewidziano lecz nie wdrożono stosowania innych opakowań, które nie sprawiają tego kłopotu). W praktyce często jako przyczynę nioptymalności można wskazać niepoprawne wdrożenie lub nadzór nad pracą, co tak naprawdę przekłada się na próbę oszczędności na niewłaściwym etapie, co jest może anomalią, ale nie w zjawisku efektywności tylko kompetencji zarządzających.
Pojęcia efektywności rynku można też użyć w związku z funkcjonalnością poszczególnych produktów. Jeśli na rynku istnieją dwa różne produkty o podobnej cenie i jeden z nich jest bardziej popularny, wtedy do wyrównania popularności potrzeba obniżenia ceny mniej popularnego produktu bądź podwyższenia jego funkcjonalności. I kwestia ta dotyczy funkcjonalności postrzeganej oczami klienta, a nie producenta bądź analityków zatrudnianych przez niego. Tak więc może się okazać, że znacznie lepiej sprzedaje się produkt 20% tańszy, mimo że ten droższy ma 5 razy tyle możliwości. Przyczyną może być zarówno fakt, że te super możliwości nie są przydatne przeciętnemu użytkownikowi jak i to, że koszt dotarcia do nich (np. szkolenie bądź komplikacja obsługi) jest tak wysoki, że nie rekompensuje różnic w funkcjonalności. Tak więc producenci analizując popyt na podobne produkty usiłują wydobyć od konsumentów wiedzę, które składniki danego produktu wpływają na konkretny wybór. I jak można to zaobserwować najciekawsze elementy podobnych pakietów informatycznych są dość szybko implementowane u konkurencji (zresztą dokładnie tak samo jest w urządzeniach elektronicznych domowego użytku, samochodach i innych produktach). I to też śmiało można nazwać efektywnością rynku. Nie istnieją bowiem znane rozwiązania, które pozwalałyby zarabiać przez dłuższy czas tylko wąskiej grupie producentów. Jakkolwiek jestem przeciwnikiem patentowania algorytmów, to nawet ta kwestia broni się w obrazie efektywności (myślę o tej realnej efektywności z kosztami transakcyjnymi i kosztami zdobycia informacji). Otóż konieczność zakupów opatentowanych technologii do rozszerzenia funkcjonalności produktu nie oznacza nic innego jak zwiększenie kosztów powstawania danego produktu. I znów rachunek kosztów w porównaniu z rachunkiem potencjalnych zysków powoduje podjęcie decyzji, czy warto daną funkcjonalnośc implementować czy nie.
Czy wiedza co to jest efektywność może się do czegoś przydać informatykom? Uważam, że tak i to bardzo mocno. Myślę, że jest to mechanizm, który pozwala dokładnie ocenić działanie zespołu konsultantów, projektantów, programistów i wdrożeniowców oraz oszacować, czy zaproponowane rozwiązanie jest dla odbiorcy globalnie tańsze. Jeśli przyjmiemy, że rynek jest efektywny, wtedy fakt wyparcia starego rozwiązania przez nowe oznacza, że to nowe okazało się tańsze. Oczywiście należy na tą kwestie patrzyć globalnie. To wzniesienie się ponad swoje otoczenie jest szczególnie przydatne na przykład w przypadku integracji dwóch firm o różnych systemach informatycznych. Jeśli przyjmiemy, że łaczą się firmy, w których dopracowano się już optymalności, wtedy prawie zawsze w miejscu, gdzie wymienia się system (celem ujednolicenia go w całej grupie), można wskazać pewne braki optymalności. Najczęściej przyczyną jest jeden z trzech aspektów, który nie podważa efektywności globalnej. Pierwszy to fakt, że posiadanie jednego współnego systemu informatycznego jest tańsze, niż straty wynikające z niedopasowania tego systemu do działań firmy, której się narzuca zmianę. Drugi wynika z różnic w zakresie działalności biznesowej między przejmującym i przejmowanym. Często zakresy działalności się nie pokrywają (bądź pokrywają tylko częściowo), więc nie można oczekiwać, żeby system jednej z firm całkowicie pokrył potrzeby drugiej. W miarę jak sygnały o konieczności zmian będą coraz silniejsze, można liczyć, że oprogramowanie zostanie właściwie zmodyfikowane. Kolejnym aspektem jest fakt, że oprogramowanie narzucone potencjalnie jest w stanie sprostać wymaganiom stawianym przez zdominowane środowisko, jednak tylko pod warunkiem, że nastapią również zmiany w procesach (które zapewne zostały zaniechane - tu najczęściej winne są osoby planujące integrację ponad głowami osób odpowiedzialnych za informatykę, bądź z udziałem takich osób, ale o niewłaściwych kompetencjach). Sądzę, że w przypadku integracji firm wszystkie przyczyny się na siebie nakładają, co powoduje oddolne przekonanie, że sprawy, zgodnie z prawem Murphy'ego, przechodzą ze złych w gorsze i po przejściu proces jest gotów do powtórzenia się. Jednak uważam, że spojrzenie globalne pozwala powiedzieć, że działanie takie (przy zachowaniu odpowiednio długiej skali czasu) jest efektywne.
Oczywiście spojrzenie przez pryzmat efektywności nie musi dotyczyć tylko przejęć firm i łączenia ich systemów informatycznych. Dokładnie to samo zjawisko można odnieść do drobnych wdrożeń i małych poprawek w już pracujących programach. Jeśli użytkownicy sugerują jakieś zmiany w programie, a następnie nie korzystają z nich, można podejrzewać, że sugestie zostały źle zrozumiane. Oczywiście mnóstwo jest przypadków, kiedy użytkownikom wydaje się, że jakaś zmiana przyniesie poprawę jakości pracy, a po wdrożeniu okazuje się, że tylko im się wydawało. Osobną kategorią są żądania nieprzemyślanych zmian w działaniu (na przykład nikt się nie zastanowił jak zmiana wpłynie na inny proces bądź nie zwócono uwagi na to, że w przypadkach w których dotychczas proces działał dobrze, teraz siłą rzeczy będzie działał źle). Trzeba jednak umieć rozróżnić przypadki, które sugerują nieefektywność rynku od tych, które udowadniają głupotę zleceniodawców.
Najlepiej o efektywności mówić w przypadkach, gdy rynek jest bardzo duży. I tu narzucają się dwa porównania, które pokazują, że nie zawsze nominalna cena produktu może świadczyć o całkowitych kosztach ponoszonych przez jego użytkowników. Pierwsze, to porównanie zestawu IIS, dotNET i technologii Active Serwer Pages z zestawem JAVA, Apache, Tomcat i technologią serwletów. Oba zestawy są nominalnie bezpłatne, jednak to zestaw na bazie JAVY uzyskuje zdecydowaną i niekwestionowaną przewagę według większości raportów. Można z tego wyciągnąć wniosek, że zwyciężca oferuje tańsze rozwiązanie. Na tą taniość składa się zapewne stabilność i bezpieczeństwo środowiska oraz tańszy sprzęt (jak twierdzą niektórzy) wystarczający do zbudowania porównywalnych projektów. Na przeciwległym końcu porównania znajduje się para Linux i Windows w zastosowaniu desktopowym. Tu też nikt nie ma wątpliwości, że na razie Windows bije Linuxa na głowę liczbą wdrożeń. Oczywiście ściągnę sobie na głowę niezadowolenie fanatyków rozwiązań Open Source, ale uważam, że jest to przejawem tego, że bezpłatny Linux jest wciąż zbyt kosztowną alternatywą płatnych Windowsów. Mam nadzieję, że z czasem się to zmieni, choć jak na razie cały czas występuje bardzo duża rozbieżność między wysokimi możliwościami oferowanymi przez Linuxa, które zupełnie nie wpasowują się w duże zapotrzebowanie potencjalnych użytkowników. Zapewne błędem jest próba zmuszenia użytkowników do zmiany swojego sposobu zachowania (co jest z ich punktu widzenia bardzo kosztowne) zamiast dopasowywania się do tego zachowania. Efekt, w którym nominalnie bezpłatny produkt przegrywa z płatnym oznacza, że na etapie konsultacji i projektu popełniono błędy, które skutkują wyższymi (z punktu widzenia użytkownika końcowego) łącznymi kosztami tego produktu (szkolenie, wdrożenie, używanie). Jak ktoś słusznie zauważył oprogramowanie otwarte i bezpłatne często pisane jest przez pasjonatów dla siebie (dla grupy o cechach zbliżonych do twórców tego oprogramowania). Tak więc Apache uzyskuje przewagę nad IIS, gdyż używają go programiści, natomiast Linux nie ma szans na taką przewagę, gdyż używają go (a raczej próbują używać) tak zwani zwykli ludzie.
Mam nadzieję, że moja wizja efektywności przybliżyła tą kwestię czytelnikom, którzy wcześniej nie mieli z nią styczności. Myślę też, że osoby które miały już jakieś swoje przemyślenia na ten temat mogą je skonfrontować ze swoimi tezami. Najważniejsze co chciałbym aby pozostało po przeczytaniu tego artykułu to przekonanie, że indywidualne racjonalne zachowania ludzkie prowadzą globalnie do efektywności rynku. Zarówno tego wielkiego, na poziomie światowych trendów jak i tego małego, na poziomie zachowań małych grup użytkowników. I z zachowań tych da się wywnioskować co jest zbyt drogie (zbyt trudne, zbyt ryzykowne, zbyt wolne) w naszym projekcie i się w nim nie sprawdza. Warto przy tym pamiętać, że jeśli z szacunków wynika, że uwzględniliśmy już wszystkie koszty używania pewnej funkcjonalności, a użytkownicy i tak z niej nie korzystają, niemal zawsze nie jest to świadectwem anomali czy nieefektywności tylko pominięciem w analizach jakiegoś ważnego czynnika, który podnosi koszty w sposób dla nas nieoczywisty lub trudny do zauważenia.