Nieco przemyśleń o dzisiejszym oprogramowaniu
Do czego dziś służy oprogramowanie Pierwsza odpowiedź, która nasuwa się na myśl, to: "do wszystkiego". Ciężko temu zaprzeczyć, gdyż jest to sama prawda. Naszymi komputerami steruje oprogramowanie. Dekoder telewizji satelitarnej posiada swój system napisany w np. Javie. Nawet w samochodach, i to tych wcale nie takich nowych, mamy komputery pokładowe z programami pracy rozrządu. Oprogramowanie jest wszędzie. Ale czy naprawdę służy ono nam?
Dobro
Bynajmniej nie chodzi tu o odwieczną walkę dobra ze złem. Czym jest więc dobro? To jakiś obiekt albo jakaś wiedza, dające nam jakąś korzyść. Ot, na przykład, system operacyjny pozwala nam sterować komputerem. Jest dobrem, zakupionym np. wraz z komputerem.
Oprogramowanie, jak każde dobro, ma pewną cechę charakterystyczną. Autora. I tu jest sedno sprawy. Teraz ponownie pytam: do czego dziś służy oprogramowanie? Okazuje się, że odpowiedź jest tym razem odrobinę odmienna...
Money, money, money...
Abba, śpiewając tę piosenkę, trafili w sedno. Kasa. Oprogramowanie to czysty niepohamowany zysk. Można tworzyć setną implementację rozwiązania tego samego problemu, działającą identycznie jak pozostałe, a i tak można mieć pewność, że znajdzie się rzesza zapalonych zwolenników. Jak to wykorzystać? Bardzo prosto, kilka sztuczek marketingowych i jesteśmy na szczycie listy najbogatszych ludzi świata...
Po pierwsze - mnóż i nie przegrywaj Parafraza powiedzenia "dziel i zwyciężaj" jest tu chyba najlepszym określeniem. Najlepiej bowiem utworzyć tak ze 4 aplikacje narzędziowe, które wszystkie wzajemnie będą zachęcały użytkowników do zainteresowania się pozostałymi. Przykładowo, takie oprogramowanie antywirusowe. Jak kupujesz antywirusa, to zainteresuj się firewallem. Jak zainteresujesz się firewallem, to zapewne chciałbyś chronić swoją pociechę przed "niebezpieczeństwami" typu "zbyt długie siedzenie przy komputerze" i "strony o treści dla dorosłych". Oto i filtr rodzicielski. A to wszystko razem można zdobyć nieco taniej, kupując w zestawie...
Po drugie - nie wysilaj się Stwórz podstawowy interfejs, który jednak będzie zapewniał całkiem znośną wygodę. Ponieważ to pierwsza wersja, usuń kilka zaimplementowanych już, banalnych udogodnień - dodasz je kiedy indziej, mogąc wydłużyć "listę zmian" między kolejnymi wersjami. Ano właśnie - wersjonuj. Co roku wydawaj nową, "dużą" wersję swojej aplikacji opatrzonej magicznymi cyferkami odpowiadającymi roku wydania. "Śmietniczek 2k9", "Przenośnik 2010", "GKUploader '11", to przykładowe nazwy Twoich aplikacji.
Po trzecie - ponownie się nie wysilaj Pisząc program nie zwracaj uwagi na poprawność kodu. Pisz wszystko na odwal, korzystaj ze starych kompilatorów, nie zwracaj uwagi na optymalizację. Byleby szybko, tanio i bez wysiłku. W ten sposób błyskawicznie dorobisz się pakietu aplikacji, a więc szerokiego rynku zbytu.
Po czwarte - narób ludziom smaku Załóżmy, że planujesz utworzyć alternatywny dla Windowsa system operacyjny. Wcale nie musi być niesamowity, ba, nawet darmowy być nie musi. Najpierw wykonaj kontrolowany wyciek, że "chodzą pogłoski o nowym Systemie Operacyjnym w chmurze". Później "Google na baczności - nowy system operacyjny zagrożeniem nie tylko dla Windowsa". I tak dalej. Kolejnym krokiem będzie wpuszczenie "wersji alpha" do sieci torrent i zrobienie z tego afery. Wersja ta powinna mieć jak najwięcej guziczków, bajerków, dodatków, rzeczy, które wyglądają fajnie a nie działają, a także tragicznie słabą stabilność. W końcu wydaj publiczną betę ważną przez 90 dni i udostępnij wszystkim z niej korzystającym 10% rabatu na nowy system.
Po piąte - zapewnij wsparcie Jak już wydasz swoje aplikacje, w zgodzie z "po trzecie", będziesz miał zapewnioną pracę na następne parę lat. I zysk z tej pracy. Regularnie poprawiaj optymalizację i czystość kodu, w sposób w miarę niemęczący, ale dający wymierne efekty. Dodawaj frykasy. Do każdego changeloga dopisuj "poprawienie stabilności aplikacji". Przyjmuj wszelkie zgłoszenia o błędach - "poprawisz" je w pierwszej kolejności, ponieważ są widoczne i dadzą złudzenie, że bardzo dużo zmieniasz. Pozwalaj na roczną subskrypcję aktualizacji, a za rok możesz się spodziewać nowego przypływu gotówki...
Po szóste - wydaj darmową wersję równoległą lub ostateczną Jaki zysk w darmowości? Po pierwsze, jeśli wydasz wersję "free", możesz się spodziewać rzeszy użytkowników, która będzie chciała "więcej". Oni kupią wersję "pro". Najlepiej, jako wersję darmową wydać jedną z kompilacji sprzed paru lat - w ten sposób zapewnisz sobie, że nikt nie będzie próbował jej "odblokować". Do darmówki dodaj koniecznie przycisk upgrade'u. Po drugie, jeśli wydasz wersję ostatecznie darmową, rozgłoś to jako "taka i taka aplikacja nareszcie za darmo!". Nadal masz zapewnioną robotę i zyski. Skąd zyski w darmówce? Po pierwsze - "donation", znaczy się "co łaska". Po drugie, jeśli Twoja aplikacja jest modułowa, możesz dorobić do niej "sklep wtyczek" i udostępniać tam jej rozszerzenia. Jeśli odpowiednio pokombinujesz, będziesz w stanie przekroczyć zyski z wersji 100% płatnej. Zresztą, spójrz na sukces rynku gier MMO...
Po siódme - otwórz się w stronę ludzi Wystarczy tylko założyć "społeczność użytkowników", dać im forum do pomocy technicznej (i masz ten kłopot z głowy) oraz zaproić do programu pomocy w tłumaczeniu na języki obce, początkowo od siebie zapewniając wsparcie tylko dla swojego ojczystego i angielskiego.
Po ósme - bierz dużo nie dając za wiele Przez cały czas wydawaj nowe wersje tej samej aplikacji, robiącej dokładnie to samo, różniącej się naprawdę minimalnymi działaniami z Twojej strony. Bez wysiłku napędzaj rynek zbytu różnymi "tanimi" sztuczkami.
Zwycięstwo (nie)gwarantowane
Nie, nie próbowałem powyższej metody. Nie jest to przecież poradnik, tylko delikatna hiperbola (odrobinę przecież wyolbrzymiam) odnosząca się do dzisiejszego rynku. Przemyślenia wysnute na podstawie działań współczesnych producentów oprogramowania. Dają nam oni chłam, bo ciężko to inaczej nazwać. Robią aplikacje na kolanie, ponieważ wiedzą, że mogą stosować procesy "aktualizacji". Zamiast napisać wszystko zgodnie z dobrą szkołą programowania, poświęcić aplikacji o tych 10‑1000 osób więcej, zależnie od wielkości przedsięwzięcia, lepiej rozplanować zadania i zrobić to raz a dobrze, dla dobra ogółu, wolą oni zrobić to szybko, po łebkach, zapewniając niskie nakłady finansowe, szybki zysk z szerokiego rynku i utworzenie rynku zbytu dla kolejnych wersji "odrobinę poprawionych". Zamiast patrzeć na wygodę ludzi, na ich bezpieczeństwo, producenci patrzą na własną kieszeń i wygodę.
Od oprogramowania do moralności
I w związku z tym doszedłem do następujących wniosków: ludzie zatracili całkowicie już swój zmysł społeczny. Mieszkamy w wielkich miastach oddzieleni cienkimi ściankami działowymi w blokach, ale jeździmy samotnie wielkimi samochodami, słuchamy głośnej muzyki nie zważając na innych, wyprowadzamy psy na spacery zostawiając za sobą ślady na chodniku, w które ktoś rychło "wdepnie". Zamiast zapewnić sobie wzajemną swobodę i bezpieczeństwo, wykorzystujemy fakt, że sami zapewniamy dziury w zabezpieczeniach. Tworzymy dodatkową aplikację zapewniającą bezpieczeństwo, która te dziury łata, zarabiając w ten sposób podwójną sumę. Co z tego, że użytkownik końcowy był narażony na niebezpieczeństwo? Jak jest taki mądry, niech sam sobie to zaprogramuje, a co!
Nie na tym rzecz polega
Apeluję do wszystkich projektantów i producentów oprogramowania i nie tylko: zacznijcie myśleć o innych. Wiem, że tak się nie zarabia pieniędzy. Ale czy naprawdę to jest ważniejsze? Chcielibyście, żeby defibrylator mający zapewnić Wam życie przy zawale był obsługiwany przez dziurawą aplikację? Czy chcecie, aby Wasz telefon komórkowy zawiesił się w momencie, gdy dzwonicie na 112 będąc ofiarą napaści i uciekając przed uzbrojonym napastnikiem? Czy chcecie, aby dorobek Waszego życia, znajdujący się w systemie bankowym, stał się jedynie wspomnieniem w postaci porozrzucanych po dysku bitów, w wyniku błędu jakiejś nieznanej Wam aplikacji?
Podsumowanie przemyśleń o dzisiejszym oprogramowaniu
Sprzedawany jest nam chłam. Rzekomo finalne wersje aplikacji, które nigdy tak naprawdę nie wychodzą z fazy beta, i gdzie my jesteśmy betatesterami. I jeszcze za to płacimy... W ten sposób napędzany jest rynek, który zapewnia producentowi stały zysk, a nam - stałe aktualizacje. Oczywiście za opłatą... No... to teraz nie siedźcie tu już, tylko biegiem betatestować Waszego Windowsa lub Linuxa. I pamiętajcie: w dzisiejszej erze słowa "finalny" i "darmowy" pozostają tylko słowami, bez żadnego pokrycia. Dokładnie tak jak dolar pozostaje dziś bez pokrycia w złocie...