Apple i walka filozofii: Gorsze-jest-lepsze kontra Właściwy-sposób

Artykuł/Blog Forum 14.09.2016
Apple i walka filozofii: Gorsze-jest-lepsze kontra Właściwy-sposób

Poniżej opiszę dwie filozofie tworzenia produktu. Jedna z nich wyda nam się w naturalny sposób słuszna, a druga zła. Nie ważne jednak co wybierzemy, i tak będziemy w błędzie. Przede wszystkim dlatego, że obie filozofie są tylko złudzeniem. Poza tym dają świetne efekty.

Zacznijmy może od początku. W 1989 roku programista Richard Gabriel wraz kolegami zastanawiali się dlaczego język programowania C oraz system operacyjny Unix stały się popularne, a stosowany przez nich język Lisp nie. Niewiele myśląc Richard powiedział, że najwidoczniej „gorsze jest lepsze.”

Parę miesięcy później myśl ta stała się podstawą artykułu „Lisp: Good News, Bad News, How to Win Big.” Richard przedstawił w nim dwie konkurujące filozofie, różniące się tylko naciskiem na to co jest ważniejsze, gdy musimy dokonać wyboru pomiędzy wykluczającymi się ścieżkami rozwoju tworzonego przez nas programu komputerowego.

Pierwsza z nich nosi nazwę gorsze-jest-lepsze.

Zwolennikami tej szkoły mają być programiści z New Jersey, a dokładniej firmy Bell Labs, która stworzyła język C i rozwijała Unixa.

Podstawowe założenia filozofii gorsze-jest-lepsze to:

  • Prostota – podczas tworzenia projektu najwyższą wartością jest prostota. Przy czym ważniejsze jest aby program był prosty w budowie, nawet kosztem trochę trudniejszej obsługi.
  • Poprawność – projekt powinien być poprawny we wszystkich swoich aspektach. Możemy poświęcić odrobinę poprawności, jeśli uprości to projekt.
  • Spójność – projekt powinien dążyć do spójności, ale możemy jej odrobinę poświęcić na rzecz prostoty. Najlepiej jednak zwyczajnie odrzucić część projektu związaną z pobocznymi przypadkami użycia, wprowadzającymi sprzeczności i komplikującymi budowę, ponieważ osiągamy wtedy większą prostotę.
  • Kompletność – program musi być użyteczny w jak największej liczbie scenariuszy, oczywiście na ile ma to sens z praktycznego punktu widzenia. Kompletność warto poświęcić na rzecz innych wartości. Czasami jednak możemy zrezygnować z odrobiny spójności na rzecz kompletności, gdy nie wpłynie to negatywnie na prostotę budowy.

Druga filozofia nosi nazwę właściwy-sposób i utożsamiana jest ze szkołą programowania MIT/Stanford.

Podstawowe jej założenia to:

  • Prostota – program powinien być możliwie prosty. Przy czym ważniejsze jest aby program był prosty w obsłudze, nawet kosztem trochę bardziej skomplikowanej budowy.
  • Poprawność – nie możemy sobie pozwolić na jakiekolwiek ustępstwa w kategorii poprawności. Projekt musi być poprawny we wszystkich swoich aspektach, koniec i kropka.
  • Spójność – na równi z poprawnością ważna jest spójność, także projekt musi być spójny, koniec i kropka. Aby uniknąć pojawienia się sprzeczności możemy poświęcić odrobinę prostoty i kompletności.
  • Kompletność – program musi być użyteczny w jak największej liczbie scenariuszy, oczywiście na ile ma to sens z praktycznego punktu widzenia. Prostota nie powinna negatywnie wpływać na kompletność projektu.

Innymi słowy podejście właściwy-sposób wymaga od nas poświecenia takiej samej uwagi wszystkim czterem wartościom równocześnie: prostocie, poprawności, spójności i kompletności. Natomiast w przypadku filozofii gorsze-jest-lepsze najważniejszą cechą projektu staje się prostota budowy i wydajność. Wciąż interesują nas poprawność, spójność i kompletność, ale wartości te schodzą na trochę dalszy plan.

Jak oba podejścia działają w praktyce?

Możemy to zobaczyć na przykładzie opisanego przez Richarda problemu PC-losering – jeśli żądanie przerwania zostało dostarczone do programu, gdy ten był zablokowany dokonując dłuższego wywołania systemowego np. operacji odczytu lub zapisu pliku, co system operacyjny powinien zrobić?

Właściwym rozwiązaniem jest wycofać długą operację i ponowić ją zaraz po tym jak kod procedury obsługi przerwania zostanie wykonany lub opóźnić przerwanie do czasu zakończenia odczytu/zapisu. Niestety wymaga to setek linii bardzo skomplikowanego kodu, w którym drobne błędy miałyby poważne konsekwencje.

System Unix stawiając na prostotę zwyczajnie zwracał flagę mówiącą, czy zdążył zakończyć wywołanie systemowe, czy też nie. Program w takiej sytuacji musiał samodzielnie sprawdzić flagę i zdecydować, co robić dalej. Podejście gorsze-jest-lepsze pozwoliło zminimalizować ilość kodu po stronie systemu operacyjnego, przenosząc skomplikowane działanie gdzie indziej.

Styl New Jersey wydaje się więc gorszy. Okazuje się jednak, że zasada gorsze-jest-lepsze zastosowana do oprogramowania daje nadzwyczaj dobre efekty. Z definicji połowa komputerów na świecie jest wolniejsza od mediany. Ze względu na prostszą budowę programy tworzone w filozofii gorsze-jest-lepsze łatwiej na nich uruchomić.

Jeśli funkcjonalność tych aplikacji będzie znośna, rozprzestrzenią się jak wirus wśród użytkowników. Sukces zachęci twórców oprogramowania do jego rozwijania aż do momentu, gdy osiągną jakość na równi z projektami spod znaku właściwego-sposobu. Tak powstały popularne systemy operacyjne Windows, Android oraz ChromeOS.

Z drugiej strony mamy filozofię właściwy-sposób.

Wymaga ona od nas, abyśmy każdy aspekt produktu zaprojektowali, a następnie pieczołowicie wprowadzili w życie. Nawet jeśli wykonanie ostatnich 20% miałoby pochłonąć 80% poświęconego w sumie czasu. Na myśl od razu przychodzi iPhone oraz iOS.

Oryginalny projekt telefonu Apple zakładał wpuszczenie szkła wyświetlacza w aluminiową obudowę. Na kilka miesięcy przed premierą Jobs spotkał się jednak z Jony’m Ive’em i powiedział „Nie spałem cała noc, ponieważ zdałem sobie sprawę, że po prostu nie kocham tego co zrobiliśmy„. Centralnym punktem iPhone’a miał być ekran. Tymczasem obudowa wizualnie z nim konkurowała zamiast go eksponować.
Urządzenie wyglądało zbyt muskularnie, produktywnie, biurowo. „Chłopaki tyraliście nad tym designem przez ostatnie 9 miesięcy, ale musimy go zmienić” usłyszeli członkowie zespołu Ive’a. „Będziemy musieli pracować nocami i weekendami. W razie czego możemy rozdać Wam trochę broni palnej, gdybyście chcieli nas zabić„.

Nowy projekt okazał się bardziej przyjazny. Miał tylko cienką, stalową ramkę i szklana powierzchnia Gorilla Glass sięgała prawie samego brzegu urządzenia. Inżynierowie musieli przebudować w związku z tym całe wnętrze telefonu. Procesor, antena i radio zmieniły swoje położenie na zmodyfikowanej płycie głównej. Wiele firm nie zawracałoby sobie głowy nową wizją i wypuściło na rynek pierwotny aparat. Ale nie Apple.

iPhone wydaje się więc utożsamiać filozofię właściwy-sposób i zarazem zaprzeczać podejściu gorsze-jest-lepsze.

Niestety obie filozofie są tylko złudzeniem. Przede wszystkim dlatego, że nikt nigdy nie stworzył produktu kierując się wyłącznie jedną z nich.

Pierwszy wypuszczony model iPhone’a był bardziej zapowiedzią lepszej przyszłości niż doskonałym produktem samym w sobie. Brakowało mu aplikacji, funkcji kopiuj/wklej oraz obsługi MMS-ów. Za to nieźle zawieszał się, tracił zasięg i zrywał połączenie. Nic dziwnego, skoro na serce telefonu wybrano przyciętą wersję systemu operacyjnego OS X (opartego na Uniksie), instalowaną do tej pory na normalnych komputerach.

Co więcej podczas premiery iPhone był na tyle niedopracowany, że pracownicy biorący udział w przygotowaniu prezentacji pili w jej trakcie, aby ukoić nerwy. Telefon miał tylko 128 MB RAM i kilka fotografii mogło ją zapchać. Metodą prób i błędów udało się opracować w miarę bezpieczną „złotą ścieżkę” czyli listę czynności, które Steve musiał wykonać w ściśle określonej kolejności. Dzięki temu iPhone wyglądał na w pełni działające urządzenie.

Spójrzmy na jeszcze jeden produkt Apple, iPoda.

Projektując interfejs Jobs stosował zasadę trzech intuicyjnych kliknięć. Jeżeli wybranie piosenki lub jakiejś funkcji wymagało więcej zachodu, dostawał szału. W efekcie skomplikowane działania trafiły gdzie indziej, do programu iTunes. Użytkownik mógł stworzyć playlistę tylko na normalnym komputerze i przenieść ją na grajka dopiero po połączenia obu urządzeń.

Także iPod wydaje się być znacznie bliższy filozofii gorsze-jest-lepsze. Wracając do problemu PC-losering zauważymy, że twórcy Unixa myśleli bardzo podobnie. Wciśnięcie klawiszy Ctrl+C podczas odczytu pliku nie powinno skutkować automatycznym wznowieniem tego odczytu przez system operacyjny. Tylko aplikacja wie, czy ma to sens i dzięki zwracanej fladze może podjąć decyzję.

Innymi słowy gorsze, lepsze oraz właściwe są pojęciami względnymi.

Często Steve Woźniak i Steve Jobs kłócili się o to, jak powinien być zbudowany idealny komputer. Pierwszy Steve reprezentował podejście geeka, drugi zaś estety. Tym co ich łączyło były ograniczenia.

Każdy projekt kształtowany jest głównie przez czynniki zewnętrzne, takie jak czas, pieniądze, waga, ilość pamięci, moment obrotowy itp. Realizując go podejmujemy setki decyzji, które można później dowolnie interpretować.

Gdy Alejandro Aravena, tegoroczny zdobywca najwyższej nagrody w dziedzinie architektury Pritzker Architecture Prize, budował osiedle domów dla uboższych rodzin w Chile, pytał przyszłych mieszkańców co wybierają: wannę czy grzejnik wody? Rząd mógł pokryć tylko część kosztów, także rodzina dostawała dwupiętrowe lokum, z dachem, dwiema sypialniami, kuchnią i łazienką.

Z czasem mieszkańcy mieli szansę samodzielnie wykończyć mieszkanie i dostosować je swoich indywidualnych potrzeb. Stąd nazwa projektu „połowa dobrego domu”. Ponieważ pieniędzy było niewiele, rodziny musiały wybrać jedno z udogodnień. Politycy, osoby decyzyjne i pracownicy zewnętrzni generalnie skłaniali się ku grzejnikowi. Ja też nie wyobrażam sobie życia bez ciepłej wody.

Jednak rodziny prawie w 100 proc. decydowały się na wannę. Do tej pory dla tych ludzi prysznicem była konewka stojąca na korytarzu lub podwórzu. Dzięki łazience i wannie po raz pierwszy mogli cieszyć się prywatnością. Poza tym nie było ich stać na rachunek za gaz do grzejnika.

Jeżeli spojrzymy na tą historię trochę głębiej niż tylko „biednych nie stać na dobre rzeczy” zobaczymy, że każdy produkt jest pewnym kompromisem między potrzebami i pragnieniami. Zarówno twórców jak i odbiorców.

Steve Jobs starał się oczarować świat produktami harmonijnie łączącymi inżynierię ze sztuką. Wierzył, że ludzie mają lepsze rzeczy do roboty, niż mozolnie grzebać przy komputerach. Jego pragnienie kontroli nad doświadczeniami użytkownika wymagało niestety odebrania tejże kontroli samemu użytkownikowi. Dlatego nie możemy wgrać na iPhone’a aplikacji spoza App Store, ani łatwo dostać się do wnętrza dowolnego urządzenia z logiem jabłuszka.

Z drugiej strony Steve Woźniak chciał dzielić się pasją budowania elektroniki i zachęcić ludzi do nauki. Rozdawał schematy swoich pierwszych projektów, aby jemu podobni zapaleńcy mieli pełną kontrolę nad posiadanym komputerem. Mogli go zrozumieć, rozwinąć i okiełznać, a nie tylko doświadczać.

Więc co jest takiego właściwego we właściwym sposobie lub gorszego w podejściu gorsze-jest-lepsze?

Nic, odpowiada Richard Gabriel w kolejnym artykule „Worse is Better is Worse,” tym razem napisanym pod pseudonimem Nickieben Bourbaki (aluzja do Nicolasa Bourbaki).

Po prostu subiektywnie odbieramy historie pewnych produktów i nie każda historia jest o nas lub dla nas. Wówczas cała walka filozofii, pięknie opowiadana przez firmy w ich materiałach reklamowych, rozgrywa się wyłącznie w naszych głowach.

Jeśli tak, prawdziwą lekcją z tej rozprawy będzie to, że biorąc się za jakikolwiek projekt głupotą byłoby mierzyć w cokolwiek poniżej najlepszego rezultatu. Sami jednak decydujemy, co znaczy lepsze.

Innymi słowy powinniśmy mierzyć wysoko, ale upewnić się też, że w ogóle strzelimy. Bo najważniejszy jest wysiłek włożony w realizację pomysły. Jak powiedział Jony Ive „Jest wiele rzeczy, które osiągamy na końcu każdego projektu. Otrzymujemy stworzony produkt oraz wszystko to, czego się po drodze nauczyliśmy. Przy czym to, czego nauczyliśmy się, jest tak samo konkretne jak sam produkt, ale zarazem znacznie cenniejsze, ponieważ jest naszą przyszłością.”

Tekst ukazał się pierwotnie na Blog Forum Spider’s Web. Blog Forum jest miejscem, w którym Czytelnicy Spider’s Web mogą publikować swoje własne teksty blogowe, a najlepsze z nich trafiają na stronę główną serwisu oraz na naszego Facebooka i Twittera.

*Utwór na wolnej licencji Creative Commons 0. Wybór licencji jest wynikiem śmiałego przekonania autora o wartości jego pracy. Dlatego udzielam wszystkim chętnym pozwolenia na dowolne korzystanie z tego utworu, również do celów komercyjnych, bez konieczności uznawania mojego autorstwa.

Michał Krajowski-Kukiel

Zobacz: iPhone 7 po kilku dniach

Czytaj i oglądaj więcej iPhonie 7:

Musisz przeczytać:

Dołącz do dyskusji

Advertisement