Tworzenie aplikacji mobilnych

Krzysztof Kempiński
Jan 13 · 17 min read

W ramach podcastu “Porozmawiajmy o IT” miałem okazję porozmawiać z Krzysztofem Wojewodzicem o tworzeniu aplikacji mobilnych.

Posłuchaj naszej rozmowy w wersji audio 🎧 👇


Cześć, mój dzisiejszy gość to CEO Escola s.a — Sofware house specjalizującego się w tworzeniu aplikacji mobilnych. Posiada Background akademicki w technologiach IT i w zarządzaniu. Jest prelegentem i od niedawna również podcasterem, o czym pewnie powie. Mój dzisiejszy gość to Krzysztof Wojewodzic. Cześć Krzysztof, bardzo mi miło gościć Cię w podcaście.

Cześć Krzysztof, cześć wszystkim.

Właśnie powiedziałem, że Krzysztof zajmuje się, czy też na tą chwilę pewnie najwięcej swego czasu poświęca na prowadzenie Software House, który tworzy aplikacje mobilne i właśnie o aplikacjach mobilnych trochę sobie porozmawiamy, ale tak jak możecie sobie zobaczyć, nagrałem już kilka odcinków takich bardziej technicznych, o iOS, o Androidzie. Natomiast w dzisiejszym odcinku chciałbym porozmawiać o tworzeniu aplikacji mobilnych bardziej całościowo, trochę z punktu widzenia osoby, która prowadzi tego typu biznes, ale też pod kątem spojrzenia na cały proces wytworzenia aplikacji mobilnej. Ja zawsze zadaję pytanie-Krzysztof, czy słuchasz podcastów, jeśli tak to, jakich najczęściej, co mógłbyś polecić?

Podcasty to jest świetna sprawa jak dla mnie, kiedy biegam, kiedy spaceruję z dzieckiem, także ostatnio przyznam, jeżeli chodzi o IT, to są dwa moje ulubione-Porozmawiajmy o IT, więc bardzo mi miło być gościem jednego z moich ulubionych podcastów, jak i Biznes w IT Piotrka Budzkiego. Oba te podcasty to dla mnie jest super wiedza i inspiracja do założenia naszego podcastu, który prowadzimy od niedawna z Jędrzejem, od 5 miesięcy, który się nazywa Escola Mobile i faktycznie jest to jedyny podcast na razie w Polsce poświęcony technologiom mobilnym, także można powiedzieć, że masz Krzysztof właściwego gościa na właściwym miejscu, bo faktycznie zajmuję się technologiami mobilnymi właściwie od 3 lat nieprzerwanie i udało mi się rozwinąć tę firmę Escola w dość krótkim czasie, skupiając się tylko wokół Mobile. Z zagranicznych podcastów, to wbrew pozorom preferuję książki zazwyczaj od podcastów, ponieważ te najlepsze podcasty mam wrażenie, niestety już są tak mocno zpozycjonowane, tak mocno wyreklamowane, że przyznam, że odrobinę mnie to zniechęca, ale może jeszcze nie trafiłem na ten dobry.

Jasne, Waszego podcastu słucham też, doceniam. Jest to dla mnie możliwość rozszerzania wiedzy, jeśli chodzi o mobile. W odcinku (oczywiście zalinkujemy), a też zapraszam do tego, żeby w aplikacji, w której słuchacie podcastów, wyszukać sobie podcastu Escola, z pewnością będzie to dla Was wartościowa treść. Ok, to co? Przechodzimy do tych aplikacji mobilnych. Na początku chciałbym Cię zapytać, skąd w ogóle wynika fenomen aplikacji mobilnych? Czy to jest taka realna potrzeba użytkowników, którą próbuje się zaspokoić? Czy może jest to raczej element takiego prestiżu dla firm, że po prostu warto mieć swoją aplikację mobilną, natomiast jest to raczej element taki dodatkowy do biznesu? Co Ty o tym myślisz?

Ja może powiem, jak u mnie się zaczęła przygoda z aplikacjami mobilnymi. Ja robię w życiu IT różne rzeczy. Najwięcej jednak poświęciłem firmom produktowym. Miałem przyjemność zakładać pierwszą szkołę językową online, która odniosła dość duży sukces zarówno w Polsce, jak i w kilkunastu krajach na świecie i w 2013 roku, żeby promować naszą szkołę języka online, zrobiliśmy aplikację. Wyobraź sobie nasze zdziwienie, kiedy w krajach tak egzotycznych, jak Meksyk, Kanada (egzotycznych z poziomu Wrocławskiej firmy) znaleźliśmy się na pierwszym miejscu w kategorii edukacja. Naszą aplikację pobrało pół miliona osób w dość krótkim czasie. Nagle okazało się, że liczba rejestracji szybuje na księżyc, a de facto nie poświęcamy ani złotówki na promocję. To był 2013 rok i to był taki początek tego boom mobilowego. Potem tę firmę sprzedałem, natomiast kiedy wróciłem do biznesu IT, już jako właściciel Software House, kupiłem 4 małe Brandy, małe Software House i patrzyłem, które z nich się bardziej rozwija. Czy te związane z animacjami, z technologią frontendowymi, webowymi, czy mobilnymi, no i wrzucając nowych klientów w Excela i dotychczasowych klientów, znowu wyniki jasno wskazały-Mobile to jest to, w roku 2016. No i właściwie do dzisiaj nic się nie zmieniło. Mobile jest dla mnie po prostu zjawiskiem rosnącym, ale nie tylko dla mnie. Jeżeli popatrzymy na statystyki, choćby ruchu w internecie, mobile vs. desktop, czy wydatki choćby w E-commerce, Mobile vs. desktop, widzimy, że te wzrosty są ogromne po stronie telefonów. Dlaczego tak się dzieje? Dlatego, że jest to urządzenie, które mamy cały czas przy sobie. 95% czasu jesteśmy w odległości mniej niż metra od naszego telefonu. No bo zazwyczaj, nawet kładąc się spać, odkładamy go na szafkę nocną i jest bardzo blisko nas. Już nie wspominam o ewenemencie zabierania telefonu do toalety i to ile mądrych myśli na Facebooka, czy LinkedIna powstało właśnie z toalety [śmiech]. To jest po prostu narzędzie, które jest dosłownie przedłużeniem naszej ręki. Są badania, które porównują poziom stresu związanego ze zgubieniem telefonu. Jest to mniej więcej porównywalne z sytuacją ataki terrorystycznego lub katastrofy. Ludzie po prostu czują, jakby utracili kontakt ze światem, kontakt ze swoimi znajomymi, mają takie bliskie odczucie. Nie wiem, czy pamiętasz określenie PC, już teraz rzadziej używane-Personal Computer, że to jest moje, tego nie powinno się ruszać, to jest osobiste. Tak naprawdę telefon jest czymś takim PC do potęgi, to jest tak personalne, praktycznie każdy ma to zahasłowane na siebie i nawet nie daje tego używać swojej małżonce, czy dziewczynie, co więcej nie ma na to jakiś twardych danych, ale spodziewam się, że najczęstsze odkrycie i problemy w związkach-odkrycie zdrady, to jest właśnie telefon w dzisiejszych czasach. Przypadkowo odpalony, gdzieś zostawiony i tak dalej…także po prostu to jest coś dla nas niezwykle osobistego, co wpływa zarówno na nasze życie osobiste, jak i na biznes. A jak już mówimy o stylu życia osobistego i biznesu, to coś, co mnie najbardziej fascynuje w mobilu jako zjawisku, jest właśnie zmiana nawyków użytkownika. Co mam na myśli przez zmianę nawyków? Pewnie 10 lat temu powiedziałbyś swojemu dziecku, nigdy nie wsiadaj do samochodu, nie daj się zagadać obcym ludziom, a dzisiaj, gdy chcesz, żeby Twoje dziecko wróciło do domu, to powiesz-no to weź Ubera. Czyli de facto pozwalasz swojemu dziecku wsiąść z obcą osobą, która nie ma kwalifikacji do prowadzenia tego auta, nie zna miasta, często nie zna języka i godzimy się na to. To jest ogromna zmiana nawyku na Airbnb, nauczyliśmy się rozmawiać, wynajmować mieszkania od też totalnych nieznajomych, bez żadnych ubezpieczeń, gwarancji, statusu tego, ale internet i te technologie mobilne dają nam takie niezwykłe poczucie bliskości. Na Bla Bla Car wsiądziemy z nieznajomym do auta, na Uberze…w Airbnb będziemy spać u nieznajomych.

Dokładnie, czyli nie da się inaczej powiedzieć jak o fenomenie, właśnie tak jak powiedziałeś, no to liczne implikacje, na to, w jaki sposób się zachowujemy, w jaki sposób żyjemy. Myślę, że do tego tematu jeszcze wrócimy. Ja chciałem jeszcze podciągnąć pod taki rys trochę historyczny, to, w jaki sposób te aplikacje się kształtowały, bo niekiedy spotykam się właśnie z aplikacjami mobilnymi, które są takim można powiedzieć biednym kuzynem, innego, pełnoprawnego produktu, najczęściej aplikacji webowych, bo z tym pewnie mamy do czynienia. Chciałem Cię zapytać pod kątem doświadczeń, które macie jako Escola, czy to jest częsty przypadek, że ta aplikacja mobilna jest takim dodatkiem, czy też może jest raczej odwrotna tendencja? Odwrotne podejście do tego, żeby najpierw powiedzmy stworzyć aplikację mobilną i od tego rozpocząć tworzenie biznesu, albo na tym oprzeć tworzenie biznesu i dokładać inne klocki jako kontynuację właśnie tej pierwotnej myśli?

Niewątpliwie boom na mobile, który zaczął się w 2010/11 roku sprawił, że wszyscy zapragnęli mieć aplikację mobilną. Tylko że z posiadaniem aplikacji mobilnej jest jak z posiadaniem dobrego samochodu, to znaczy, trzeba na to wydać pieniądze. Zresztą ta metafora jest bardzo stosowna też, jeżeli chodzi o wydatki. Dlatego, że aplikacja mobilna i jej stworzenie, kosztuje mniej więcej tyle, co zakup samochodu. Można zrobić aplikację za 50 tysięcy złotych, czyli za tyle, za ile kupimy Fiata Tipo z klimatyzacją i radiem, ale nie będziemy mieli tam jakiś super bajerów. Jeśli chcemy zrobić bardziej zaawansowaną aplikację, wydamy na to 100, 200, 300 tysięcy. A jeżeli oczywiście chcemy mieć Maybacha, bo to ma być potężna aplikacja, rozbudowana, łączyć się z wieloma systemami, to tak jak Maybach, będziemy musieli za nią zapłacić milion złotych, czy milion dolarów, czy nawet więcej. Faktycznie część firm zapragnęło zrobić aplikację po kosztach, no i to nie zawsze źle się skończyło, to znaczy znam aplikacje w Polsce, które mają 2 miliony pobrań, których wytworzenie kosztowało niedużo pieniędzy. Ponieważ ich wartość jest ogromna, wartość użytkowa. Jak popatrzysz na wiele aplikacji, jeżeli one niosą wartość i zmieniają nawyki, to mogą być bardzo wartościowe, nawet jeżeli technologicznie nie są rozbudowane. Popatrz na aplikację Yanosik, czy ta aplikacja jakoś powala nas niesamowitym designem? UX?

Z posiadaniem aplikacji jest tak, jak z posiadaniem dobrego samochodu.

Nie, nie.

Nie, ale ona spełnia swoją funkcję. Nie chcemy płacić mandatów, a dużo osób w Polsce chce jeździć niezgodnie z przepisami. Aplikacja Qpony? Jest wiele aplikacji, które po prostu ściągamy ze względów użytkowych bardziej, niż technologicznych. Natomiast faktycznie klienci wiedzą coraz częściej, że nie jest łatwo przekonać klienta do pobrania aplikacji. Jest bardzo duża konkurencja. Jeśli popatrzysz na krajobraz aplikacji retailowych, masz aplikację Biedronki, Lidla, Żabki, Rossmanna, Intermarche, Carrefour, Tesco-każda z tych sieci sklepów ma w tej chwili swoją aplikację. No i jeżeli otworzysz je wszystkie na telefonie, to zobaczysz drastyczną różnicę, aplikacja Biedronka jest oceniana na 1,6, właściwie nie wiadomo czemu ona służy, wygląda jak biedny kuzyn weba, wygląda dużo gorzej, niż ich strona internetowa. Sam często się zastanawiam, czemu tak robią. Może to jest forma skuszenia Ciebie, że tak bardzo oszczędziliśmy na aplikacji, że dzięki temu kupisz tanio swoje produkty [śmiech] i zdarzają się takie sytuacje. Natomiast, jeżeli popatrzymy na inne porządne aplikacje, właśnie choćby wspomnianego Lidla, czy Rossmanna, to widać, że ktoś zainwestował, że to jest dopieszczone, że to jest zgodne ze wszystkimi standardami. Te standardy są dość dobrze opisane, są pewne standardy wielkości przycisku, są standardy jak zrobić wyraziście zdjęcia, czy nawet pozycjonować aplikacje w App store, czy Google Play, tak żeby klienci mogli je łatwo znaleźć. Także widać, że te dobre aplikacje przestrzegają tych wszystkich zasad i nie ma tu jakieś specjalnej filozofii, jak zrobić dobrą aplikację mobilną. To jest kwestia tylko tego budżetu, który przypomnę, jest mniej więcej odpowiedni budżetowi, zakupowi samochodu, albo chcemy Fiata Tipo, albo chcemy BMW. Oczywiście inna będzie aplikacja, która ma bardzo szybko działać, inna będzie, jeśli ma być przede wszystkim komfortowa w użytkowaniu. Tak jak różnią się między sobą samochody. Natomiast kluczowa jest właśnie użyteczność aplikacji. I tu można powiedzieć, że technologie aplikacyjne bardzo ewoluują, to znaczy jeszcze 3 lata temu tworzono aplikacje, to wszyscy mówili-trzeba robić je natywnie. I faktycznie wszystkie dobre aplikacje robione są technologiami natywnymi, czyli w iOS to był C#, teraz jest Swift, a w przypadku Androida to jest po prostu SDK Androidowe oparte na Javie, teraz Kotlin. Natomiast są już w tej chwili dobre frameworki, dobre języki jak Flater, czyli native,, które pozwalają na całkiem niezłe osiąganie wydajności aplikacji, pisząc tylko jeden raz aplikację, ewentualnie dopisując jakieś drobne elementy. Z React Native korzysta Facebook i nie widzimy, żeby ta aplikacja jakoś gorzej działała, niż aplikacje natywne. Także ta technologia cały czas ewoluuje, oczywiście pewne języki, czy frameworki, które jeszcze 2–3 lata temu wydawały się jakoś obiecujące, jak choćby Ionic, czy Xamarin, troszeczkę spadają, ale to się cały czas zmiania. No i wreszcie jest kwestia PWA, czyli Progressive Web Applications, czyli coś, co niektóre firmy sprzedają jako nowe aplikacje, a tak naprawdę to jest po prostu bardzo dobrze zrobiona strona internetowa. Myślę, że chwilę później o tym opowiemy w szczegółach, bo to nie jest wszystko takie proste, ale chcę powiedzieć, że technologie tworzenia aplikacji ewoluują, można to robić coraz taniej, natomiast jednocześnie coraz trudniej jest namówić klienta na pobranie aplikacji, ponieważ jest ich już tak dużo. W Google Store to jest 2,5 miliona aplikacji, w iStore to będzie około 2 milionów aplikacji, no i niestety większość z nich nie przebije 2,5 tysiąca pobrań, a pamiętajmy, że wiele aplikacji, jakby większość czasu użytkownicy korzystają z Facebooka, z Massengera, czy WhatsApp, więc konkurencja jest po prostu bardzo duża.

Jasne. To o czym powiedziałeś, to jest taka droga, kiedy zgłasza się do Was klient, który posiada już jakiś biznes, być może stronę, być może jakieś produkty i próbuje do tego dołożyć aplikację mobilną, która w jakiś sposób da takie dodatkowy kanał…na przykład kontaktu, sprzedaży, czy jakiś innych interakcji. Z drugiej strony możemy mieć też takie podejście Mobile First, kiedy wszystko rozpoczyna się od tej aplikacji mobilnej, dajmy na to Instagram, to jest de facto aplikacja, która powstała z takim podejściem Mobile First, czyli na początku tylko i wyłącznie aplikacja mobilna. Czy często spotykasz się z tego typu aplikacjami, czy to raczej jest taki trend, o którym mógłbyś powiedzieć, że jest wznoszący, czy raczej nie ma to jakiegoś szczególnego przełożenia na rynek?

Na pewno łatwiej jest wykołować aplikację istniejącemu produktowi. Weźmy banki, prawie każdy z nas ma w telefonie swoją aplikację, swojego banku. Masz konto w PKO, no to pewnie masz aplikację PKO. Statystyki są takie, że 4 miliony osób w Polsce ma aplikację PKO. Masz konto w Santanderze? Masz aplikację Santandera. Oczywiście dużo łatwiej jest przekonać klienta, żeby ściągnął aplikację, jeśli już korzysta z jakieś gamy produktów. Jeśli tankujemy często na Orlenie, prawdopodobnie będziemy chcieli skorzystać z aplikacji Orlen Mobile, gdzie możemy tankować i zapłacić za tankowanie bez podchodzenia do kasy, bo będzie to dla nas przykładowo wygodniejsze. Jeśli pijemy kawę w Starbucksie, ściągniemy sobie aplikację Starbucks. Natomiast, żeby być Uberem, Instagramem, Whatsappem, trzeba po prostu gigantycznych nakładów marketingowych. Są oczywiście aplikacje, które są które właśnie są Mobile first, bo na przykład towarzyszą jakiemuś fizycznemu produktowi. Weźmy rowery miejskie. Warszawa, Wrocław to jest Nextbike, Veturilo, a co macie w Poznaniu w tym momencie?

Łatwiej jest zrobić aplikację dla istniejącego produktu. Każdy bank ma swoją aplikację

Też chyba jakiś Nextbike, powiem szczerze, że nie korzystam, ale też są miejskie jakieś rowery…

Chyba Nextbike ma w wielu miastach. Mewo, jest w Trójmieście. No, to jeśli chcemy z tych rowerów korzystać, musimy sobie ściągnąć aplikację. Jest Carsharing, w Warszawie jest Panek, Innogy, 4mobility…musimy pobrać aplikację, więc tutaj jakby Mobile First narzuca się. Mamy coś, co konieczne będzie pobranie tej aplikacji i też będzie relatywnie łatwo coś takiego wypromować. Tam, gdzie korzystamy z natywnych funkcji telefonu, choćby z GPS. Wczoraj pobrałem śmieszną aplikację, która cały czas w tle korzysta z twojej lokalizacji i blokuje się, kiedy jedziesz samochodem, wykrywa to. Aplikacja, która promuje to, żebyś nie korzystał z telefonu w czasie jazdy samochodem. To też z racji wykorzystania GPS będzie aplikacja, która głównie będzie opierać się o wykorzystanie telefonu, czyli będzie Mobile First. Na pewno, mając produkty webowe, czy mając produkty fizyczne, łatwiej zacząć. Jeżeli ich nie mamy, to jest bardzo trudno zacząć od mobile, żeby w ogóle ludziom powiedzieć, że mamy taką innowacyjną aplikację. Na pewno bardzo dobre są w to gry, które mocno korzystają z kanałów sprzedażowych, tak jak Youtube, czy Facebook, które chcą nas przekonać, żebyśmy ściągnęli tę grę zazwyczaj. Ona jest początkowo za darmo, potem trzeba zapłacić za jakieś dodatkowe przedmioty, levele i tak dalej. Natomiast, żeby zapłacić dzisiaj za ruch, za pobranie aplikacji, po prostu z racji, że jest duża konkurencja, jeżeli nie mamy jakichś elementów, które wypromują nasze aplikacje, choćby w Carrefourze, Rossmannie, ktoś Cię przy kasie zapyta, czy masz aplikację i czy chcesz z niej skorzystać, no to jest automatycznie reklama, zachęta, taka Just in Time, w odpowiednim czasie realizowana. Natomiast, jeżeli masz przykładowo aplikację do rezerwowania wizyt, taką jak aplikacja Booksy, czy Znany lekarz, no to faktycznie musisz wyłożyć bardzo dużo energii, żeby ludzie dowiedzieli się o Twojej aplikacji.

To teraz z punktu widzenia Software House, który prowadzisz, gdybyś mógł powiedzieć, jak wyglądają takie podstawowe etapy tworzenia aplikacji mobilnych. Powiedzmy, kiedy zgłasza się do Was klient, po finalny produkt, który można później ściągnąć sobie z jakiegoś Store. Też interesuje mnie to, czy znaczenie jakiekolwiek ma tutaj, czy ta aplikacja ma być docelowo na Androida, czy iOS, czy jakieś inne platformy, czy też podchodzi się do tego w ten sam sposób i to jest jakiś tam szczegół implementacyjny?

Powiedziałeś Androida, iOS, czy inne mniejsze platformy, to jeszcze jaka jest platforma?

[śmiech] już teraz Microsoft już pewnie nie istnieje tak de facto, Blackberry w Polsce raczej w ogóle…chyba de facto można mówić o tych dwóch.

Tak, w tej chwili się uprościło. Może się to zmienić dlatego, że pewnie słuchacze słyszeli, Ty na pewno słyszałeś o tym, co się wydarzyło wokół Huawei, że Donald Trump i Ameryka bardzo nie chcą takiego sukcesu Chińskiej firmy. Czy skojarzenia są prawdziwe, czy nie, pewnie ten temat historia oceni. Natomiast Huawei ogłosił, że będzie robił swój system operacyjny, a że robi to dla gospodarki Chińskiej, zrobi to na pewno bardzo szybko i bardzo skutecznie, więc być może faktycznie, choć nie ma już Windows Phone, będziemy musieli robić jeszcze na system, który wytwarza Huawei. Póki co mamy Android i iOS i faktycznie zdarzało się, że robiliśmy dla próby na przykład…najpierw aplikację dla iOS, jeżeli odniosła sukces, to robiliśmy Androidową lub vice versa. W tej chwili praktycznie w procesie developmentu stosujemy takie podejście, że zazwyczaj troszeczkę nadganiamy jedną platformę, a potem drugą. W tej chwili właśnie kończymy w tym tygodniu taką aplikację dla dużej sieci sklepów i tam faktycznie Android…był gotowy już 2 miesiące temu, natknęliśmy się na pewne problemy, nauczyliśmy się pewnych rzeczy, w związku z tym nadgoniliśmy iOS, dzięki temu klient oszczędził troszeczkę pieniędzy, my oszczędziliśmy trochę czasu w trakcie developmentu. Natomiast standardowo robi się w tej chwili na oba te systemy, jeżeli nie ma jakieś wyraźnej dyspozycji, to zawsze idą one równolegle. Szczególnie tak jak wspomniałem, jeżeli wykorzystujemy technologię taką jak Flater, jak Native, czy Xamarin, no to jakby dzieje się to w sposób automatyczny. Na końcu po prostu czary-mary i mamy już dwa systemy gotowe. Także te dwa systemy praktycznie zawsze idą w tej chwili równolegle lub w niewielkim odstępie czasu. Jak wygląda proces tworzenia aplikacji mobilnej? Ja stosuję zasadę, którą nazywam zasadę świętej trójcy. Czyli, żeby rozpocząć projekt, potrzebne są 3 dokumenty. Zespół wymagań biznesowych (BRD), zespół wymagań funkcjonalnych (FRD) i zespół wymagań technologicznych (TRD). Biznesowe, funkcjonalne i technologiczne wymagania.

Aby rozpocząć projekt potrzebne są 3 dokumenty — zespół wymagań biznesowych, zespół wymagań funkcjonalnych i zespół wymagań technologicznych

Zazwyczaj nad biznesowymi pracuję ja i analityk, czyli dogadujemy się z klientem, co właściwie chce osiągnąć, czyli jeśli robimy aplikację, która jest…tak jak robiliśmy nie tak dawno aplikację promującą picie wody, dla grupy Żywiec, no to dogadujemy się, co chcemy osiągnąć, chcemy promować picie wody, chcemy gdzieś przemycać produkt, chcemy wykorzystać jakie animowane ludziki, kojarzące się z danym brandem. Dalej, co chcemy osiągnąć w sposób funkcjonalny? Czy to ma być bardziej gra? Czy to mają być jakieś ekrany? Czy to ma być jakiś system administracyjny? Tak jakby to można szczegółowo opisać, zazwyczaj pojawia się jakiś zespół ekranów, mock-upów, gdzie ustalamy, co właściwie ta aplikacja ma robić, już pokazując ekrany i opisy tych ekranów. No i na końcu mamy zespół wymagań technologicznych, czyli ustalamy, z jakim systemem będziemy się łączyć, czy jeżeli aplikacja jest złożona, to trzeba podopinać różne systemy do tego, po podłączać jakieś API i ustalić w jakiej technologii będziemy robić, czy będą to technologie natywne, czy technologie hybrydowe. I to znajduje się też w dokumencie technologicznym. Jeśli mamy wymagania biznesowe, funkcjonalne i technologiczne, możemy startować dopiero z projektem. Oczywiście, nie zawsze klient jest gotowy, często przychodzi z briefem kilkustronicowym, albo nawet półstronicowym i ma pewną koncepcję aplikacji. Wówczas spotykamy się na warsztaty i dopracowujemy w ciągu 1–2, czasami tygodniowych warsztatów, to, co faktycznie chcemy osiągnąć. Jakie cele biznesowe, jakie cele funkcjonalne, zaczynając oczywiście w tej kolejności, ponieważ nie ma co rozmawiać o technologii, o wyborze frameworku, czy doborze bibliotek, jeśli nie wiemy, co chcemy zrobić, to jest kluczowe. Większość klientów, którzy zamawiają, to są klienci biznesowi. Zdarzają się oczywiście zamówienia stricte technologiczne, w tej chwili pracujemy nad takim bardzo zaawansowanym projektem, który jest alternatywną dla przeglądarki Chrome. Bazuje na pewnych silnikach tam, ale ma wiele odstępstw i tam odpowiadamy za część Androidową, to jest bardzo technologiczny projekt, gdzie samo zadanie, które musieliśmy zrobić, żeby wejść do tego projektu, to jest projekt międzynarodowy, gdzie wiele centrów nad tym pracuje. No to musieliśmy się sporo namęczyć, chyba z 2 tygodnie rozwiązywaliśmy zadania, żeby się zakwalifikować do tego projektu. Wtedy akurat założenia biznesowe mniej nas interesowały, niż technologiczne, ale można powiedzieć, że to był wyjątek potwierdzający regułę. Zazwyczaj, kiedy przychodzi korporacja, taka jak Żywiec, Coca Cola, Bank Santander, chce ona określić, co chce osiągnąć biznesowo, potem bardzo szybko jest dogrywane, co ma być osiągnięte funkcjonalnie i zazwyczaj już na nas zdaje się jakie technologie do tego trzeba zastosować. Oczywiście, jeżeli to jest bank, to ma swoje wymagania związane z bezpieczeństwem, z zastosowaniem pewnych bibliotek i wtedy oczywiście trzeba uwspólnić wersję, żeby nie naruszyć tego, co klient stosuje. Lub też ma już jakieś wytworzone dotychczas kody, ma doświadczenie w tym zakresie i ma pewne preferencje. Na przykład, żeby to był Xamarin, ponieważ cały projekt jest .NET, będzie troszeczkę bliżej technologicznie, będzie bliższy stack technologiczny, więc ustalamy, że akurat tą aplikację chcemy w Xamarinie.

Później jak rozumiem, kiedy takie dokumenty są już ustalone, jest podpisana umowa, dochodzi do etapu developmentu, tutaj domyślam się, że wygląda to podobnie jak w każdym innych Software House, etapy testowania, być może jakieś scrumowego, mniej lub bardziej agilowego podejścia — w momencie, kiedy taka aplikacja jako produkt, jako kod jest gotowa, to dochodzi do etapu publikacji, tak?

Dokładnie, to znaczy my bardzo chętnie pracujemy w metodykach zwinnych, ponieważ to po prostu usprawnia komunikację. Nawet jeśli projekt jest na określonej cenie, bo bardzo ważnym do wyboru klienta jest czy chce pracować na określonej cenie, tzw. Fix Price, czy chce pracować na podstawie rozliczenia czasowego. Jeśli rozliczamy się czasowo, to faktycznie mogę być bardziej elastyczny w zakresie określenia szczegółowo, czym jest projekt. I faktycznie, jeżeli projekt jest nie do końca określony, to wtedy lepiej rozliczać się na podstawie czasu. Zachęcamy zawsze klientów, żeby dość szybko szli na rynek i testowali go. Oczywiście nie można za szybko, bo pamiętajmy, że jesteśmy oceniani i nie chcemy dostać jednej gwiazdki za nieskończony projekt, tylko chcemy dostać od razu 5. Tutaj trzeba dobrze wyważyć i takim dobrym podejściem jest faktycznie to, które znamy ze start upów, to znaczy z metodyki line start up-Minimum Viable Product, czyli dane wartości dla klienta. Przykładowo Google Maps ma w tej chwili dość sporo funkcjonalności, z wielu z nich nie korzystamy, choćby pobieranie map offline, czy jakieś wyznaczanie tras wieloetapowych, ale tak naprawdę 99% zastosowań to zabranie osoby z punktu A do B najszybszą drogą. To jest dla mnie ta najważniejsza funkcja, która obejmuje 99/100 przypadków. Oczywiście w miarę używania pojawiają się dodatkowe pomysły, choćby zabranie nas drogą alternatywną, bo akurat taka będzie preferencja użytkownika, zapisanie mapy online, wieloetapowe drogi i tak dalej…unikanie na przykład opłat za autostrady. Natomiast kluczowe jest to, żeby znaleźć coś, co klienci docenią, co nawet będzie wiadomo w przyszłości rozbudowywane, ale już działa stabilnie i funkcjonalnie.

Jasne. Wspomniałeś, że uczestniczysz w takich rozmowach biznesowych, na tym pierwszy etapie, kiedy trzeba się dowiedzieć, po co tak naprawdę klient chce daną aplikację stworzyć. Później jest ten etap ustalania jakieś zakresu funkcjonalnego. Domyślam się, że obydwa te etapy mogą korzystać z różnego typu powiedzmy, prototypowania takiej aplikacji, po to, żeby oddać w jakiś sposób ten pomysł lepiej, niż właśnie tak jak powiedziałeś pół kartki opisu. Pewnie lepiej jest w jakiś sposób pokazać, czy Wy też korzystacie z jakiś takich narzędzi, rozwiązań, które umożliwiają zrobienie w miarę szybko prototypu i później bazowania na tym prototypie w dalszych rozmowach z klientem?

Prototypowanie aplikacji jest bardzo ważnym etapem. Mimo że stanowi tylko 10%, to jeśli nawalimy tutaj, to ciężko to odkręcić

Tak, prototypujemy też aplikacje i to jest bardzo ważny etap. Chociaż on stanowi tak naprawdę w cenie wytworzenia aplikacji, czy czasochłonności, można powiedzieć, że oko 10%, to jest prototypowanie, około 70% kosztu to jest koszt pracy developerów, 10% to koszt zarządzania projektem komunikacji i 10% to testowanie. Faktycznie te pierwsze 10% jest o tyle ważne, że jeżeli nawalimy tutaj, schrzanimy robotę i coś źle zaprototypujemy, to potem coraz trudniej to odkręcić. To znaczy koszt odkręcenia na etapie testów, w porównaniu z kosztem odkręcenia na etapie prototypowania są dramatycznie różne. Na pewno każdy z nas zna ten obrazek z huśtawką-co zamówił klient, a co dostał, co architekt widział…to się naprawdę często zdarza, nawet kiedy wydaje nam się, że pracujemy zwinnie, że się cały czas sprawnie komunikujemy. Faktycznie zdarzają się projekty, mamy w tej chwili też taki projekt bardzo złożony, do wyliczania jakichś aspektów finansowych, ryzyk kredytowych, gdzie właściwie przez 4 miesiące uswspólnialiśmy z klientem, to jest taki Londyński fundusz inwestycyjny. Co właściwie ten fundusz ma na myśli? Okazało się, że oni te same rzeczy definiowali na różne sposoby, pewnych rzeczy w ogóle nie definiowali. I pierwszy etapem projektu było napisanie słownika, co znaczy co. I tu nie mam na myśli słownika, że nie rozumieliśmy po angielsku, tylko co klient ma na myśli. Klient sam nazywał rzeczy w różny sposób albo właśnie nie potrafił pewnych rzeczy zdefiniować i klient czasami sam musi popracować, żeby dojść do tego, co dokładnie miał na myśli. Ponieważ wiemy, jak działa programowanie, że ono musi być bardzo algorytmiczne, musi korzystać ze szczegółowych zasad, musi być zero jedynkowe, to o ile człowiek się czasami domyśli, to komputer nie do końca. Oczywiście mamy sztuczną inteligencję i chcielibyśmy wierzyć, że ona wkrótce będzie się domyślała, co pomyślimy, to zakoduje, ale póki co jeszcze musimy się trochę pomęczyć [śmiech] Także faktycznie ustalenie czego klient chce, uważam za taki trudny etap, bardzo ważny etap. Robimy warsztaty dla klientów we własnym zakresie jako Escola, pracujemy z klientami, zapraszamy ich najczęściej do Gdańska, gdzie jest nasze główne centrum deweloperskie, gdzie są nasze osoby, które zajmują się designem, ale w przypadku trudnych projektów, bardzo złożonych, chętnie korzystamy też z zewnętrznych firm, z którymi współpracujemy. Prowadziliśmy dla Innogy jakiś czas temu warsztaty razem z Centrum Nauki Kopernik, dla takiego tam projektu, gdzie firma nam pomagała w prowadzeniu tego warsztatu. Także chętnie zapraszamy też firmy wyspecjalizowane, jeżeli jest duży projekt. No bo my jesteśmy Software House, gdzie ten proces UX-owy traktujemy jako wspomagającą, ale kiedy nasze kompetencje się kończą, zapraszamy już tutaj super ekspertów z tego zakresu.

Czytaj dalej na:

kkempin’s dev blog

Dev and life blog. Thoughts about programming, design patterns, Ruby and life.

Krzysztof Kempiński

Written by

IT expert. Ruby on Rails/iOS/Elixir programmer. Blogger. Podcaster.

kkempin’s dev blog

Dev and life blog. Thoughts about programming, design patterns, Ruby and life.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade