Od ponad 4 miesięcy wraz z Arturem Krzynówkiem z DataProcess ciężko pracujemy nad całą platformą „Kiedy Śmieci”. O samym projekcie można więcej przeczytać na stronie https://kiedysmieci.info. Od stycznia projekt rozwija się bardzo dynamicznie. Już pod koniec pierwszego miesiąca tego roku przekroczyliśmy próg 5 tyś. aktywnych użytkowników, a praktycznie codziennie pojawia się około 150 – 300 nowych.
Wzrost jest więc widoczny. Cieszy nas to i pokazuje, że obrany przez nas kierunek jest doceniany i potrzebny. Jaki to kierunek? O tym za chwilę, ale by dokładniej całość wyjaśnić warto wspomnieć o samym projekcie.
Kiedy Śmieci to cały ekosystem aplikacji i systemów informatycznych w którego skład wchodzą:
– aplikacja mobilna na systemy Android (publikowana w Google Play i Huawei App Galery),
– aplikacja mobilna na system iOS Apple (dostępna w App Store),
– panel konfiguracji dla gmin,
– zestaw mikro serwisów po stronie serwerowej zapewniających obsługę wysyłki powiadomień, publikacji wiadomości i obsługi danych w bazie,
– serwer REST API do komunikacji z aplikacjami mobilnymi,
Elementów jest sporo, ale każdy z nich był budowany tak by wykonywać jak najprostsze działania. Jak najszybciej i jak najwydajniej.
Od strony dwóch grup użytkowników, a więc gmin (panel konfiguracji) oraz mieszkańców (aplikacje mobilne Android i iOS) najważniejsze było uproszczenie obsługi i działania. Poświęciliśmy dużo, naprawdę dużo czasu by aplikacje zmieniać, poprawiać i aktualizować tak by zapewniały jak najprostsze użytkowanie. Patrząc po stałości wykorzystania (przy istniejącym, dość trudnym rynku konkurencji) myślimy, że efekt ten udało nam się osiągnąć.
Tu dochodzę do sedna sprawy, którą chciałem poruszyć w niniejszym artykule – minimalizm. Pojęcie to chcieliśmy odnieść zarówno do interfejsów aplikacji, jak i działań samego systemu. Aplikacje mają dostarczać tylko te elementy które są niezbędne, wymagane i przede wszystkim potrzebne. Mamy wiele pomysłów na nowe funkcje. Wiele wskazówek otrzymujemy od samych użytkowników i gmin, ale stosujemy tylko te, które są potrzebne dla szerokiego grona użytkowników. Dlaczego? By nie przytłoczyć końcowych odbiorców naszych rozwiązań mnogością opcji, które często trudno zrozumieć, czy tym bardziej praktycznie wykorzystać.
Czytając ostatnio jeden z artykułów technicznych w sieci trafiłem na ciekawy wpis o tym, że korzystamy z zaledwie kilku procent możliwości współczesnych telefonów (to jest dość oczywiste) i praktycznie zupełnie nie korzystamy z instrukcji ich obsługi. Autor artykułu polecił to sprawdzić. Ściągnąłem więc instrukcję do jednego z testowych modeli. Dokument w PDF miał ponad 600 stron i „ważył” około 10 MB. Tylko przejrzenie spisu treści mnie zmęczyło – choć faktycznie pokazało mi mnogość możliwości. Nigdy tej instrukcji nie czytałem, choć telefon używam już od ponad 3 lat. Zapewne nigdy też do niej nie przysiądę. Pokazało mi to jak niewiele potrzeba by sprawnie korzystać z urządzenia. Zapewne większość użytkowników ma podobnie jak ja. To cenna lekcja, bo pokazuje, że przeciętne wykorzystanie jest dość proste, a nadmierne rozbudowanie funkcji przyprawi o ból głowy większość odbiorców.
W naszej aplikacji dla urządzeń mobilnych (Android i iOS) bardzo mocno położyliśmy więc nacisk na to by interfejs użytkownika był prosty, wręcz banalny, zastosowane funkcje jedynie minimalne – niezbędne. Z kodu wyrzuciliśmy wszystko co mogło być „na przyszłość” – zresztą zgodnie z dobrymi zasadami Agile. Aplikacje nie zawierają żadnych dodatkowych bibliotek, żadnych funkcji bezpośrednio niewykorzystywanych. Jeśli coś zmieniliśmy kolejne wersje były jeszcze bardziej zmniejszane i upraszczane.
Interfejs użytkownika dostarcza podstawowych funkcjonalności. Nie potrzebny jest samouczek, czy pomoc. Wystarczy kilkanaście sekund by odszukać swoją gminę i skonfigurować przypomnienia o odbiorze śmieci. Wszystko. Gdy gminy zaczęły się pytać o możliwość wysyłania wiadomości do użytkowników wdrożyliśmy taką funkcję, ale sprawiliśmy by była subtelna, nie narzucająca się użytkownikom końcowym. Początkowo budowaliśmy moduł wiadomości jak mały odpowiednik programów pocztowych. Tylko po co? To pytanie otworzyło nam oczy i ostatecznie, choć możemy zrobić wiele z wiadomościami, to podstawowa obsługa jest maksymalnie uproszczona – minimalizm w najlepszym wydaniu. Wchodzimy na listę wiadomości, możemy „pacnąć” (lub „tapnąć” – jeśli ktoś woli) i odebrać wiadomość od gminy. Choć wiadomości mogą być całymi serwisami WWW „pod spodem” to ich bezpośredni odbiór jest uproszczony i liczy się tylko prezentacja tego co użytkownik powinien otrzymać.
W interfejsie mamy dosłownie 7 przycisków – więcej nie potrzeba. Najważniejsze funkcje są stale dostępne i łatwo do nich wrócić. Minimalizm. Zarówno funkcji, jak i wyglądu. Według nas przekłada się na maksymalizację wrażeń użytkowania. To właśnie chcieliśmy osiągnąć.
Dużo trudniej było z panelem konfiguracji dla gmin. Stworzyć interfejs i całe rozwiązanie, które zapewni maksymalizację konfiguracji, przy minimalistycznym interfejsie z naciskiem na prostotę użytkowania to prawdziwe wyzwanie. O samym interfejsie dla Urzędów Gmin napiszę oddzielnie, bo jest to ciekawy temat i warto się podzielić przemyśleniami i wiedzą zdobytą w trakcie prac nad projektem. Najważniejsze jest jednak to, że tu również minimalizm i prostota przydały się i sprawdziły. Zdecydowana większość gmin już po kilku minutach od pierwszego zalogowania tworzy wpisy i udostępnia własne harmonogramy odbioru śmieci dla mieszkańców – bez większej pomocy, czy niepotrzebnego, długiego szkolenia.
Na koniec chciałbym przypomnieć (już niestety historię) pewnego programu. Historia ta przyświecała nam przez cały czas prac nad projektem Kiedy Śmieci. Pamiętacie jeszcze program Winamp? To był genialny, niesamowity program do odtwarzania plików mp3. Wiem, Winamp nie tylko odtwarzał muzykę i nie tylko w formacie mp3, ale w sumie o to mi właśnie chodzi. Jego pierwotne wersje właściwie pozwalały tylko na proste, podstawowe działania na plikach dźwiękowych (gdzie pod koniec lat 90 XX wieku biblioteki z muzyką były tworzone w pocie czoła, zgrywając i konwertując piosenki z płyt CD, lub nawet z nagrań z kaset magnetofonowych). Winamp był rewolucyjny. Prosty, mały i banalny w użyciu. Był idealny. Pamiętacie jednak co się stało z jego kolejnymi wersjami? Rozrastały się. Doszły najróżniejsze funkcje, które choć czasem używane były niepotrzebne dla większości użytkowników. Nawet ja – będąc wielkim fanem tego programu później szukałem alternatywy dla niego. Alternatywy mniejszej, bardziej minimalistycznej. Myśl o tym pozwalała nam lepiej pracować nad naszym projektem. Będziemy się trzymać „ścieżki minimalistycznego podejścia”, tak by projekt był jak najprostszy i dostarczał tylko potrzebne funkcje.