Mając na uwadze efektywność swej pracy, każdy programista, bez względu na staż pracy dąży do tego, aby dostarczane przez niego rozwiązania były jak najlepsze jakościowo. Dlatego bez względu na to, czy tworzymy jedynie amatorski projekt, czy też realizujemy projekt komercyjny, z pewnością dążymy do tego, aby dostarczane przez nas oprogramowanie w jak największym stopniu spełniało postawione cele biznesowe, niezależnie od tego, czy są one narzucone przez klienta, czy jedynie przez nas samych.
Jednak, aby stworzyć dobrą jakościowo aplikację, trzeba mieć świadomość tego, przez jakie etapy powinno się przejść. Jest to szczególnie ważne dla młodych programistów, którzy dopiero co nabierają wprawy. Przy tworzeniu aplikacji nie można bowiem zapominać o pewnych kluczowych etapach realizacji projektu. Świadomość przebiegu wspomnianego procesu twórczego jest więc bardzo ważna dla każdego programisty. Z tego też powodu zrodziła się myśl, aby przedstawić Wam krok po kroku, jak standardowo przebiega proces tworzenia aplikacji. W dzisiejszym wpisie postaram się zaprezentować Wam "od kuchni", jak powstaje aplikacja.
Wszystko zaczyna się od dobrego pomysłu
Bez względu na to, czy jesteś programistą z wieloletnim doświadczeniem, czy dopiero stawiasz swoje pierwsze kroki w obszarze tworzenia aplikacji, wiedz, że każda dobrze prosperująca aplikacja bierze swój początek od pojawienia się dobrego pomysłu. Chcąc stworzyć ciekawą i niepowtarzalną aplikację, trzeba wpaść na taki pomysł, efektem którego będzie stworzenie oprogramowania, które w jak największym stopniu odpowiada bieżącym potrzebom społecznym, technologicznym i kulturowym, wypełniając przy tym niezapełnioną dotąd niszę. Dobrego developera poznaje się bowiem po jego nieszablonowych pomysłach i nieoczywistych rozwiązaniach technologicznych.
Zbieranie wymagań
Jeśli realizujesz projekt komercyjny, początkowym etapem będzie poznanie wymagań klienta. Ważne jest, aby już od samego początku mieć świadomość tego, do czego się dąży i w jakim kierunku powinna nastąpić realizacja projektu. Często już na etapie zbierania wymagań programista wspomaga klienta swą wiedzą i doświadczeniem, weryfikując zasadność wprowadzenia do projektu jego pomysłów, proponując alternatywne rozwiązania w przypadku pojawienia się tych niepraktycznych propozycji.
Podczas realizacji projektu komercyjnego oczywistym faktem jest to, że punktem wyjścia do wszelkich działań programistycznych są wymagania klienta. Nie zawsze jednak wszystkie są na tyle realistyczne, aby móc je zrealizować, dlatego w praktyce każda aplikacja komercyjna tworzona jest tak, aby dopasować ją możliwie jak najbardziej do przedstawionych wymagań klienta i wspólnie nakreślonych celów biznesowych, lecz wszystko docelowo dopasowywane jest do technicznych możliwości oraz aktualnych trendów rynkowych.
Analiza
Kiedy znasz już wymagania klienta i wiesz w jaką stronę powinieneś podążać, kolejnym etapem winno być rozłożenie idei projektu na czynniki pierwsze. Na tym etapie developer powinien zastanowić się nad tym, jakie są realne możliwości stworzenia aplikacji według posiadanych wytycznych, jakie funkcjonalności można by w oparciu o nie stworzyć i co kluczowego powinna zawierać wspomniana aplikacja, aby była możliwie jak najbardziej zbieżna z oczekiwaniami klienta oraz z tym, czego oczekuje od branży technologicznej rynek.
W tym kontekście warto podpatrzeć, co proponuje konkurencja. Dobrze jest poszerzyć swój obraz na dany temat również o to co oferują inni i jednocześnie odpowiedzieć sobie na pytanie, jakich rozwiązań w świecie IT nadal brakuje. Taka analiza jest szczególnie istotna w kontekście całego procesu twórczego, ponieważ pozwala odpowiedzieć sobie na pytanie, czy proponowane przez nas rozwiązanie technologiczne jest zbieżne z aktualnym zapotrzebowaniem rynkowym i czy potencjalny produkt wyróżni się pośród konkurencji.
Planowanie
Gdy zdobędziesz już wszelkie niezbędne informacje zarówno na temat oczekiwań klienta, jak i aktualnej sytuacji rynkowej, będziesz w stanie stworzyć sobie pewną wizję tego projektu. Po przeanalizowaniu wszelkich za i przeciw przychodzi bowiem czas na planowanie. Na tym etapie niezbędne jest rozpisanie wszelkich priorytetów oraz celów biznesowych, tak aby mieć punkt wyjścia do dalszych rozważań. Od tego jak zostanie zaplanowana praca zależą bowiem ostateczne rezultaty i jakość wytwarzanego oprogramowania.
Warto więc już na tym etapie zastanowić się do jakiej grupy docelowej zaadresowana jest aplikacja, jaki jest jej główny cel i jakie potrzeby zaspokaja. Odpowiedź na te i inne pytania pozwoli określić, jakie funkcjonalności powinna zawierać aplikacja, ułatwiając przy tym dobór odpowiedniej do realizacji tego projektu developerskiego technologii i narzędzi.
Na tym etapie programista powinien zastanowić się, które ze znanych mu rozwiązań technologicznych pozwolą osiągnąć zamierzony efekt. Mając bowiem świadomość tego do czego się dąży, łatwiej jest dobrać odpowiednie parametry techniczne aplikacji. Zebrane wymagania oraz skonstruowany plan działania są swego rodzaju punktem wyjścia do kolejnych etapów realizacji projektu.
Ustalenie etapów realizacji
Następną rzeczną, którą należy zrobić jest rozpisanie szczegółowego harmonogramu realizacji projektu, a więc stworzenie listy konkretnie umiejscowionych w czasie zadań w odniesieniu do terminów ich realizacji. Sformułowanie wspomnianych zadań jest próbą zdefiniowania swego rodzaju wzajemnie zależnych od siebie kamieni milowych. Stworzenie takiego harmonogramu pozwala nie tylko zapewnić terminowość wykonania projektu, lecz także chroni nas przed pominięciem kluczowych etapów jego realizacji.
Jeśli projekt jest realizowany przez większą liczbę developerów oraz innych specjalistów, na tym etapie warto spotkać się również z nimi, aby omówić szczegóły i etapy pracy każdego z członków zespołu developerskiego, tak aby mieć pewność, że każdy z nich ma świadomość tego, jakie są założenia projektu, jakie są jego zadania, jak należy komunikować się z pozostałymi członkami zespołu oraz jaki jest harmonogram realizacji projektu.
UI/UX-owe zaplecze
Kolejnym ważnym elementem jest design i ogólna struktura aplikacji. Na tym etapie warto zastanowić się nad wszelkimi aspektami związanymi z tym, co wpływa na wrażenia związane z użytkowaniem aplikacji. Kluczowym aspektem jest więc nawigacja, wygląd poszczególnych modułów oraz ogólny wygląd aplikacji. Oczywiście praca w samym frontendzie i backendzie jest ważna, jednak na ostateczny odbiór aplikacji mają wpływ również wszelkiego rodzaju działania UX Designerskie, a więc wszystko to, co związane jest z tym, co ostatecznie widzi użytkownik, a więc całym szlifem interfejsu.
Dbałość o UX-ową otoczkę jest bardzo istotne, ponieważ wpływa na ostateczny odbiór i satysfakcję z użytkowania aplikacji. Poziom zadowolenia i ogólna ocena aplikacji często jest zależna od doświadczeń związanych z łatwością jej obsługi oraz umiejętnością znalezienia dostępnych funkcjonalności. Często takie aspekty, jak niedopasowany design, niezrozumiała nawigacja, czy nieresponsywny widok mogą skutecznie zniechęcić do korzystania z aplikacji.
Tworzenie aplikacji
Po zakończeniu etapu przygotowawczego, najwyższy czas przystąpić do działania. W tym momencie programista przechodzi do pisania kodu źródłowego aplikacji. Na tym etapie wszelkie wymagania klienta, ustalone cele biznesowa oraz ogólnie przyjęta koncepcja projektu zostaje przełożona na konkretny produkt. Cały proces twórczy odbywa się więc w oparciu o wcześniej przygotowaną dokumentację dotyczącą specyfikacji aplikacji.
Stworzony prototyp aplikacji jest efektem pierwotnie opracowanej wizji, zaś efektem przeprowadzonych wcześniej analiz są różnego rodzaju scenariusze działania aplikacji, dzięki którym na etapie wykonawczym programista jest w stanie dobrać możliwie jak najlepszą i dopasowaną do specyfiki projektu technologię i narzędzia, będąc jednocześnie przygotowanym na ewentualne modyfikacje, gdy wystąpią nieoczekiwane przeciwności.
Na etapie tworzenia prototypu aplikacji zachowany jest stały kontakt z klientem, w przypadku gdyby pojawiła się potrzeba doprecyzowania różnego rodzaju problematycznych kwestii.
Testowanie aplikacji
Nieodzownym elementem tworzenia aplikacji jest testowanie. Na tym etapie powstały we wcześniejszych fazach prototyp zostaje poddany testom, tak, aby móc przekształcić go w pełni funkcjonalny produkt. Dzięki przeprowadzonym testom możliwe jest wychwycenia wszelkiego rodzaju błędów funkcjonalnych, bądź nieprawidłowości w działaniu kodu, które uniemożliwiłyby prawidłowe działanie aplikacji. Bardzo ważne jest, aby na tym etapie przyjrzeć się możliwie jak najdokładniej każdemu elementowi aplikacji, tak aby móc zawczasu poprawić wszelkie występujące mankamenty.
Tak więc odpowiednio przeprowadzone testy nie tylko zmniejszają ryzyko wystąpienia komplikacji wynikających z przerwy w dostępie aplikacji w przypadku pojawienia się błędu, lecz także chroni developera przed niezadowoleniem klienta wynikającym z wszelkich finansowych i wizerunkowych strat wynikających z nieprawidłowego działania aplikacji.
Na tym etapie weryfikowane jest również to, czy aplikacja spełnia pierwotną funkcję oraz to, czy jest spójna z celami biznesowymi i wymaganiami klienta. Podczas fazy testów weryfikacja aplikacji następuje również ze strony samego klienta, ponieważ programista dąży do tego, aby ostatecznie również i on ma był zadowolony z efektu końcowego jego pracy.
Wdrożenie aplikacji
Po długim i mozolnym procesie twórczym oraz następującej po nim fazie testów nadchodzi czas, kiedy to aplikacja zostaje udostępniona do szerszego użytku. Dla developerów jest to dość stresujący moment, ponieważ jest to czas, kiedy to efekt ich pracy poddany jest opinii publicznej. Oczywiście w pierwszej kolejności aplikacja udostępniana jest jedynie mniejszej grupie odbiorców, aby móc zebrać pierwsze opinie osób postronnych, a dopiero z czasem zostaje wypuszczona na większą skalę.
Jest to rozwiązane w ten sposób, ponieważ na etapie pierwszego udostępnienia możliwe jest jeszcze wprowadzenie pewnych korekt, czy to w kodzie źródłowym, wyglądzie, czy też funkcjonalnościach, bez większych negatywnych skutków wynikających z tego tytułu. Gdy jednak aplikacja przejdzie początkową weryfikację, zostaje przekazana do ogólnego dostępu, już na większą skalę.
W przypadku aplikacji komercyjnych, etap wdrożenia jednoznaczny jest również z przekazaniem stworzonej aplikacji klientowi, szkoląc go uprzednio z jej obsługi. Wraz z przekazaniem klientowi aplikacji, udostępniona zostaje mu także dokumentacja dotycząca działania tejże aplikacji.
Monitorowanie i utrzymanie aplikacji
Wdrożenie aplikacji nie jest jednak równoznaczne z końcem pracy developera. Przekazana do ogólnego użytku aplikacja wymaga bowiem stałego monitorowania jakości jej działania oraz bieżącego wychwytywania pojawiających się błędów w jej działaniu. Ważna jest także obserwacja reakcji i opinii odbiorców oraz stałe odpowiadanie na ich potrzeby.
Wspomniany monitoring jest niezwykle ważny w kontekście zachowania ciągłości działania aplikacji i wpływania na jakość doznań związanych z użytkowaniem aplikacji.
Rozwój aplikacji
Wraz z użytkowaniem aplikacji może zaistnieć potrzeba rozwoju pewnych obszarów aplikacji. Raz wydana aplikacja nie oznacza bowiem, że nie zaistnieje z czasem potrzeba rozbudowania istniejących funkcjonalności o kolejne moduły. Szukanie możliwych obszarów rozwoju jest niezwykle ważne, ponieważ pozwala znajdywać odpowiedzi na pojawiające się potrzeby odbiorców, w rezultacie czego możliwe jest docieranie do kolejnych użytkowników.
W przypadku tworzenia aplikacji komercyjnych, nawet po oddaniu aplikacji klientowi należy się swego rodzaju support developerski. Bywa tak, że niektóre z modułów pierwotnej aplikacji dostarczane są jedynie w wersji podstawowej, a wraz z rosnącym zainteresowaniem użytkowaniem aplikacji oraz na skutek pojawiających się opinii użytkowników zachodzi potrzeba rozbudowania istniejących modułów.
Podsumowanie
Jak można zauważyć, proces tworzenia aplikacji nie jest łatwym zadaniem. Programowanie aplikacji to wieloetapowy proces myślowo – zadaniowy, który wymaga nie tylko dużego zaplecza wiedzy, lecz także i predyspozycji analitycznych oraz umiejętności przewidywania pewnych działań.
Aby wypuścić na rynek ciekawą i dobrze funkcjonującą aplikację, potrzeba wielu godzin pracy. Jednocześnie wydane do użytku publicznego oprogramowanie nie może zostać pozostawione same sobie, ponieważ wymaga ono ciągłego doskonalenia.
W pracę developera wpisane jest więc ciągłe monitorowanie i zachowanie dbałości o jakość dostarczanego oprogramowania. Opisany proces tworzenia aplikacji jest swego rodzaju prowizorycznym schematem ukazującym "od kuchni", jak powstają aplikacje. W praktyce proces tworzenia programu, czy aplikacji w każdym przypadku wygląda inaczej, ponieważ na przebieg procesu twórczego ma wpływ wiele indywidualnych zmiennych.
Niemniej jednak przedstawiony schemat może być dla wielu developerów swego rodzaju punktem odniesienia podczas codziennej pracy programistycznej. Bez względu na to, czy jesteś developerem, czy po prostu ciekawi Cię, jak wygląda proces tworzenia aplikacji, warto abyś miał świadomość tego, na czym polega wspomniany proces.
To wszystkie na dzisiaj. Jeżeli taki artykuł Ci się spodobał, to koniecznie dołącz do mojej społeczności – darmowe zapisy, gdzie będziesz również miał dostęp do dodatkowych materiałów i przede wszystkim bonusów. Do zobaczenia w kolejnym artykule.
Poprzedni artykuł - Tworzenie Własnych Aplikacji i Projektów Po Godzinach – Dochód Pasywny Programisty