Wstęp

Kilka słów o mnie

Cześć, nazywam się Mateusz i chciałbym Ci przedstawić projekt, w którym będę starał się zrealizować 12 aplikacji w 12 miesięcy. Komercyjnie programowaniem zajmuje się od ponad 3 lat, natomiast niekomercyjnie od około 10 lat.

Moje doświadczenie

Przez cały ten czas udało mi się stworzyć sporo aplikacji webowych jak i desktopowych, znalazły się także aplikacje mobilne, więc mam nadzieje, że moja wiedza techniczna pomoże mi w realizacji tego projektu. W swoich projektach głównie staram się wykorzystywać technologie takie jak ASP.NET Core MVC/Web API (Backend) w połączeniu z React + Typescript + Redux (Frontend). Aplikacje mobilne realizuje przy pomocy React Native.

Cel tego projektu

Główny cel

Moim osobistym celem jest stworzenie aplikacji, która w jakiś sposób pomoże ludziom, usprawni jakieś procesy. Dodatkowo chciałbym również skonfrontować swój perfekcjonizm a także umiejętności budowania aplikacji i marketingu. Czas jaki sobie daje na napisanie aplikacji z jednej strony może być wystarczający, z drugiej strony może być go za mało. W moim przypadku biorąc pod uwagę perfekcjonizm, na który „choruje” stawiam sobie dosyć trudny cel.

Pierwsze przejawy perfekcjonizmu

Już na samym początku przy tworzeniu bloga, mój perfekcjonizm dawał o sobie znać w przypadku wyboru szablonu, czcionki, struktury i ogólnego zamysłu publikowania postów. Uznałem, że zgodnie z zamysłem, nie będę przywiązywał do tego uwagi (przynajmniej na początku) i skupie się na tworzeniu zawartości. Mogę poświęcić miesiąc czasu i stworzyć pięknie wyglądający blog, który zaspokoi moje oczekiwania, lecz blog nadal nie będzie prezentował żadnej wartości z powodu braku jakichkolwiek treści.

Nauka, nauka i jeszcze raz nauka

Nie ukrywam, że przede mną ciężkie zadanie i jestem całkowicie świadom tego, że może mi się nie udać. Mam jednak nadzieje, że przez cały ten czas będę miał pod górkę bo wtedy będę uczył się najwięcej. Z projektu na projekt będę uczył się na błędach, starał się je dokładnie analizować aby w przyszłości, przy następnych aplikacjach nie powielać tych samych błędów.

Sposobu realizacji projektu

Realizacja tego projektu będzie odbywać się na zasadzie trzech etapów, developmentu, marketingu i feedbacku z rynku. Na budowę i marketing każdej aplikacji poświęcał miesiąc czasu. Jeżeli nie uda mi się ukończyć aplikacji w miesiąc, porzucam go i wyciągam wnioski dlaczego tak się stało.

Ficzery będą dorzucane do aplikacji jeżeli zostanie mi jeszcze trochę czasu do końca miesiąca a także po otrzymanym feedbacku od użytkowników. Głównie będę skupiał się na funkcjonalnościach, których będą wymagali użytkownicy, nie na tych, które według mnie będą super.

Strzał w dziesiątkę

Jeżeli aplikacja po jakimś czasie trafi rozwiązaniem w konkretny problem i zacznie zbierać ruch organiczny, zacznę przerzucać jakąś ilość godzin na nią aby móc pracować nad ficzerami i poprawą bugów. Równolegle natomiast będę tworzył następne aplikacje zgodnie z zamysłem projektu.

Development – tworzenie aplikacji

Od momentu rozpoczęcia będę miał średnio 30 dni na dowiezienie działającej aplikacji z corową funkcjonalnością (MVP). W tym momencie będę skupiał się wyłącznie na funkcjonalności, która będzie rozwiązywać konkretny problem. Poza corową funkcjonalnością nie robię nic innego pomimo tragicznego wyglądu aplikacji lub małej ilości funkcjonalności. Jeżeli zostanie trochę czasu do końca miesiąca, wtedy skupie się nad UI (User Interface) i UX (User eXperience).

Co do MVP

MVP (Minimum Viable Product) – jest to produkt wykonany małym kosztem (czasowym), który rozwiązuje konkretny problem i jest gotowy do wprowadzenia na rynek w celu zbadania zapotrzebowania na wytworzone rozwiązanie. Moje produkty chciałbym realizować w ten sam sposób, dowożąc rozwiązanie problemu spędzając przy tym jak najmniej czasu ale mieszcząc się w jednym miesiącu na każde rozwiązanie problemu.

Stack technologiczny

Mam zamiar wykorzystywać tylko te technologie, które aktualnie umiem. Na chwile obecną postanawiam nie uczyć się nowych technicznych rzeczy, chyba, że któryś projekt będzie tego wymagał.

Marketing – promocja wytworzonych aplikacji

W momencie gdy stwierdzę, że corowa funkcjonalność została dowieziona, uznam, że aplikacja jest skończona i jest gotowa do promocji. Metody promocji będą podobne dla każdej aplikacji, lecz miejsca będą się różnić w zależności od grupy docelowej. Dla przykładu jeżeli uznam, że rozwiązanie problemu nie będzie wymagało stworzenia aplikacji mobilnej, wtedy odejdzie promocja poprzez Google Play i App Store.

To nie jest mój konik

W ciągu tego projektu będę starał się przykładać większa uwagę co do sposobów promocji, określania grupy docelowej i docierania do niej. Nie ukrywam, że będąc techniczną osobą nie miałem styczności z marketingiem pisanych aplikacji gdyż w zawodzie najzwyczajniej w świecie programista nie odpowiada za to. Tego tematu jestem ciekaw najbardziej gdyż od marketingu będzie zależało czy aplikacja odniesie sukces.

Feedback użytkowników

Coś na co będę zwracał szczególną uwagę i co będzie decydowało o dalszych losach aplikacji. Produkt będzie tak długo rozwijany, jak długo będą z niego korzystać użytkownicy zgłaszający swoje spostrzeżenia co do dalszej przyszłości aplikacji. Mam cichą nadzieję, że opinia użytkowników będzie konstruktywna i krytyczna przez co poznam prawdziwe potrzeby zmiany aplikacji.

Zdecyduj o funkcjonalnościach

Jak już wspomniałem, aplikacja będzie pisana pod użytkowników, którzy będą z niej korzystać. Dlatego też to użytkownicy będą mogli decydować jakie nowe funkcjonalności powinny pojawić się w niedalekiej przyszłości a także co powinno być poprawione.

Postęp aplikacji

Wpisy podsumowujące będę publikował zawsze po miesiącu budowania i marketingu aplikacji. Będę starał się opisywać wszystkie wnioski jakie wyciągnąłem podczas developmentu i marketingu aplikacji, wszystkie problemy i trudności, które po drodze napotkałem. Chciałbym aby te podsumowania dawały jakąś wartość innym osobom, które będą w podobnej sytuacji.

Perfekcjonizm

Tutaj chciałbym trochę bardziej rozwinąć temat perfekcjonizmu, jak to tak naprawdę wygląda u mnie i w jaki sposób przeszkadza mi to w realizowaniu siebie.

Z jednej strony perfekcjonizm powinien być czymś dobrym bo ma chronić nas przed dowożeniem gównianych rzeczy. Nie pokażemy nikomu czegoś co jest słabej jakości bo będziemy po prostu obawiać się krytyki (podłoże problemu). Z drugiej strony perfekcjonizm może przeszkadzać nam w osiąganiu celów, ponieważ za co się nie weźmiemy to będziemy wymagali od siebie wykonania tego w 100% poprawnie, bezbłędnie.

Bardzo szybko doświadczyłem perfekcjonizmu w tym projekcie stawiając bloga czy chociażby pisząc ten post lub opisując te zjawiska tak jak to rozumiem. Dzieje się tak dlatego, że na przykładzie bloga, obawiam się fiaska przez słaby szablon bloga. Na przykładzie wpisu i opisywanego zjawiska, obawiam się, że ktoś nie podzieli mojego zdania, ktoś będzie sądził inaczej niż ja i w ten sposób nie zrobię tego bezbłędnie. Prawdę mówiąc nie jest możliwe lub jest bardzo zrobienie czegoś, z czym będą zgadzać się wszyscy, którzy to zobaczą.

Jedyną radą na ten moment jaką mogę dać to pozwolenie sobie na popełnianie błędów, pozwolenie na nie bycie najlepszym. Musimy przestać myśleć o błędach jako o czymś złym czy wstydliwym. Jeżeli pozwolimy sobie na popełnianie błędów to zaczniemy działać od razu a każdy błąd będziemy traktować jako wartościową naukę. Bardzo trudno jest osiągnąć sukces nie popełniając po drodze żadnych błędów, o ile nie jest to niewykonalne.

Jestem na 100% pewien, że w tym projekcie popełnię masę błędów i zapewne popełnię ich więcej niż zdołam odnieść sukcesów ale tak naprawdę nie zrażam się. Wiem, że każdy błąd będzie nowym doświadczeniem, którego się nauczę i o którym postaram się pamiętać w przyszłości, przy kolejnych projektach.

Dodatkowo mówiąc o perfekcjonizmie, niezbędną umiejętnością jest przyjmowanie krytyki. O ile krytyka niesie ze sobą coś wartościowego, nie jest zwykłym hejtem czy lawiną wulgaryzmów to warto jest jej wysłuchać, wyciągnąć wnioski i wnieść poprawki.

Reid Hoffman – współzałożyciel LinkedIn napisał na twitterze: ,,If you’re not embarrassed by the first version of your product, you’ve launched too late’’

Więc mam zamiar wstydzić się pierwszej wersji swoich aplikacji. Z takim podejściem postaram się zrealizować ten projekt.

Prawo Parkinsona

Następnym tematem, który jest powiązany z tym projektem jest Prawo Parkinsona. Najpierw przytoczmy definicje, która opisuje to prawo.

,,Praca rozszerza się tak, aby wypełnić czas dostępny na jej ukończenie’’

Tłumacząc to troszkę dokładniej, chodzi tutaj o to, że konkretne zadanie zajmie nam tyle czasu, ile czasu na nie poświęcimy. Za przykład możemy wziąć jakiś projekt, który musieliśmy dowieźć na studia. Być może doświadczyłeś takiej sytuacji, w której spędziłeś całą noc na robieniu projektu, który musiał być gotowy rano pomimo tego, że wiedziałeś o tym od miesiąca to jakoś nie było czasu aby się za to zabrać? W rezultacie udało ci się zrobić projekt w całą noc (6-10h), na który miałeś miesiąc czasu i zająłeś się tym dopiero pod koniec terminu kiedy – jak to się mówi – miałeś nóż przy gardle. Działa tutaj też coś takiego jak prokrastynacja czyli krótko mówiąc, odkładanie czegoś na najpóźniejszy możliwy termin.

W tym projekcie na każdą aplikację przeznaczam miesiąc czasu od rozpoczęcia do jej ukończenia. Tak jak wspomniałem wcześniej, z jednej strony może być to za dużo gdyż dopiero pod koniec miesiąca zacznę dużo więcej czasu i zaangażowania poświęcać aplikacji. Z drugiej strony może być tak, że pomimo pełnego zaangażowania od początku do końca nie będę w stanie ukończyć aplikacji. Co by się nie stało, chciałbym to przetestować, przeanalizować rezultat, wyciągnąć wnioski i podzielić się tym z wami.

Podsumowanie

Dosyć już tego gadania, czas wziąć się do roboty. Co do pierwszej aplikacji to mam już zamysł jak ma wyglądać, co prawda nie rozwiązuje jakiegoś dosyć poważnego problemu. Zrobiłem research i zauważyłem, że sporo osób z czegoś podobnego korzysta, sporo osób potrzebuje ulepszeń do tego typu rozwiązania a także te rozwiązania nie są dalej usprawniane. Krótko mówiąc, zauważyłem, że jest trochę miejsca na podobną aplikację, więc spróbuje wejść w ten rynek.

Na początku zacząłem od budowy aplikacji mobilnej, następnie zajmę się serwerem, postawię bazę i postaram się to wszystko złączyć. Jeżeli wystarczy czasu to stworzę także wersję webową, gdyż aktualne rozwiązania tego problemu są na rynku aplikacji mobilnych. Aplikacja na początku musi być mobilna, także corową funkcjonalność uznaję w aplikacji mobilnej a aplikacja webowa będzie dodatkiem o ile wystarczy mi czasu.

Zatem to byłoby na tyle, następny wpis odnośnie tego projektu zobaczycie w okolicach początku kwietnia ze wszystkimi szczegółami.

Chciałbym Ci podziękować za przeczytanie tego wpisu a także poprosić o feedback. Jeżeli masz jakiekolwiek pytania to śmiało możesz do mnie napisać.

Pozdrawiam!