Ile kosztuje stworzenie aplikacji mobilnej?

Programowanie 2019-03-02

Witajcie w kolejnym odcinku. Dzisiaj opowiem Wam, ile kosztuje stworzenie aplikacji mobilnej. Nie będę się tutaj skupiał głównie na sprawach finansowych. Chciałbym pokazać też, jak dużym przedsięwzięciem jest stworzenie nawet niepozornie wyglądającej aplikacji.

Etapy powstawania aplikacji

Zanim przejdziemy do konkretów, stworzymy sobie taki mały zarys procesu powstawania aplikacji. Oczywiście to, co tutaj napiszę, ma zastosowanie tylko w większych projektach, gdzie nie wystarczy nam tylko jeden programista z głową pełną pomysłów. W zależności od podejścia możemy wyróżnić kilka etapów. My nie będziemy się zbytnio zagłębiać w szczegóły, dlatego wyróżnimy sobie 4 główne: planowanie, wykonywanie, publikacja oraz utrzymanie. Zawierają one cały proces powstawania aplikacji — od pomysłu aż do finalnego projektu.

 

Planowanie

Jest to początkowy etap powstawania każdej aplikacji, nawet tej najmniejszej. Nie zawsze wygląda on tak samo, lecz zawsze prowadzi do tego samego — opracowania planu działania. Tak jak pisałem wcześniej, będziemy się skupiać tylko na tych większych aplikacjach. W początkowych etapach klient spotyka się głównie z managerami lub z ludźmi odpowiedzialnymi za pozyskiwanie klientów. Przeważnie nazywa się ich handlowcami lub sprzedawcami. Klient przedstawia tym ludziom swoją wizję aplikacji, a oni starają się wyciągnąć jak najwięcej szczegółów, tak żeby móc przekuć wszystko na wstępny spis wymagań. Kolejne spotkania mają na celu dopracowanie tej listy. Na nich zaczynają pojawiać się też programiści. Doradzają oni w wyborze odpowiednich technologii, proponują pewne zmiany koncepcyjne i informują klienta o wszystkich ograniczeniach technicznych. Po maksymalnym doprecyzowaniu wymagań rozpoczyna się proces wyceny aplikacji. Można tutaj zastosować dwie metody szacowania:

  • Fixed price (stała cena) – to podejście jest stosowane do projektów, w których jasno można określić zakres prac, które muszą zostać wykonane. Aby takie podejście miało sens, trzeba zamrozić listę wymagań tuż przed rozpoczęciem pracy nad aplikacją. Wprowadzanie zmian w projekcie jest utrudnione i wymaga za każdym razem dodatkowej wyceny nowych funkcjonalności. W przypadku tego podejścia klient z góry wie, ile potrwa, oraz ile będzie kosztował finalny projekt. Częstą praktyką jest zawieranie w umowie kar za nie wywiązanie się z obowiązujących terminów.
  • Time & material (czas i zasoby) – Nie bijcie za to tłumaczenie, po prostu nie mam pojęcia jak to lepiej przełożyć na język polski. W tym podejściu chodzi o to, że przed rozpoczęciem prac zakładamy tylko pewne ramy, w jakich powinien się zawierać końcowy produkt. Metoda ta jest mocno elastyczna, ponieważ nie wyceniamy tutaj końcowego projektu, lecz czas naszej roboczogodziny. Na podstawie zdefiniowanych wymagań przedstawiamy klientowi jakiś przedział cenowy oraz czasowy, w jakim zmieści się aplikacja, informując jednocześnie, że każda zmiana wpłynie na wzrost tych wielkości. W podejściu tym ważna jest transparentność i ciągła integracja. Należy regularnie pokazywać klientowi postępy w pracach oraz jasno przestawiać, nad czym zespół aktualnie spędza czas. W takim podejściu klient na każdym etapie może wprowadzać zmiany i nie wymaga to większych ingerencji w umowę.

Wykonywanie

Zanim programiści przystąpią do faktycznej pracy, najpierw musimy stworzyć projekt graficzny. Powiem szczerze, że miałem pewien problem, czy powstanie projektu graficznego zaliczyć do planowania, czy może jednak do wykonywania. Wszystko jednak zależy od firmy. Czasami projekt graficzny powstaje jeszcze zanim w ogóle wycenimy aplikację, ponieważ na podstawie gotowych ekranów łatwiej jest wycenić ilość czasu potrzebnego na wykonanie danej usługi. Natomiast w innych firmach interfejs jest projektowany już po zaplanowaniu całości.

Załóżmy, że projekt interfejsu użytkownika mamy już gotowy, przechodzimy więc do kolejnego etapu. Większość firm używa jakiegoś oprogramowania wspomagającego zarządzanie projektem. To właśnie na tym etapie wprowadzane są do niego zadania do wykonania wraz z odpowiednim opisem. Przeważnie wygląda to w ten sposób, że przechodzimy po kolei wszystkie ekrany aplikacji i do każdego ekranu dodajemy opis funkcjonalności i sposób, w jaki całość powinna działać.

Po tym etapie do pracy przystępuje zespół programistów, w zależności od przyjętej metodologii pracy (nic się nie martw, niebawem napiszę o tym osobny artykuł) programiści rozdzielają między siebie zadania. Zanim jednak rozpoczniemy pracę nad projektem, musimy ustalić kilka kwestii dotyczących sposobu pisania kodu. Musimy między innymi wybrać odpowiednią architekturę, sposób nazywania zmiennych i metod, przedyskutować sprawę testów jednostkowych i wiele innych. Dopiero po tych wszystkich ustaleniach możemy zabrać się do faktycznej pracy.

Oczywiście to nie wygląda tak, że programiści siedzą sobie zamknięci w piwnicy i piszą bez przerwy kod, do czasu aż cała aplikacja będzie gotowa. Przeważnie ustala się pewien okres, po którym przedstawiamy aktualny postęp prac klientowi. Jest to idealny moment na podsumowanie oraz wprowadzenie ewentualnych poprawek przez klienta. Cały proces powtarzamy aż do zakończenia implementacji.

Publikacja

Wbrew pozorom etap ten nie jest taki lekki i przyjemny. Wszystko dlatego, że przed publikacją wykonuje się szczegółowe testy wszystkich funkcjonalności. To właśnie wtedy wychodzi bardzo wiele błędów i nieścisłości, mimo że wszystko i tak jest testowane na bieżąco. Kolejnym powodem jest to, że od momentu planowania projektu do jego publikacji mija przeważnie sporo czasu. Dlatego część funkcjonalności mogła się „zestarzeć” i klient postanawia wprowadzić nieco modyfikacji. W tym etapie robimy również rzeczy, które wcześniej były odkładane na później. To właśnie wtedy dopisujemy jakieś brakujące testy, dopieszczamy interfejs użytkownika, optymalizujemy aplikację i tak dalej. Jest to też czas, w którym nasza aplikacja jest sprawdzana przez zewnętrzne firmy, z którymi współpracujemy. Wszystkie te etapy mogą prowadzić (a przeważnie prowadzą) do powstania dodatkowych zadań do wykonania.

No dobrze, załóżmy, że wszystkie zadania zostały wykonane prawidłowo i nasza aplikacja jest dopieszczona w stu procentach. Teraz już wystarczy ją tylko opublikować w Google Play lub App Store i koniec… No właśnie nie koniec, bo tutaj przechodzimy do ostatniego punktu naszego procesu.

 

Utrzymanie

programowanie test

Nie ma aplikacji idealnych, dlatego nie możemy jej tak po prostu zostawić po publikacji samej sobie. Musimy być przygotowani na to, że pojawią się jakieś błędy lub sugestie od użytkowników, które wymuszą wprowadzenie pilnych zmian. Przeważnie tych zmian nie ma zbyt dużo, dlatego nie ma potrzeby, aby cały zespół programistów nic nie robił, tylko czekał na zgłoszenie błędu od użytkowników. Dlatego stosuje się różne podejścia do tego etapu. Możemy albo oddelegować część programistów do obsługi tych błędów, albo wprowadzić coś w rodzaju dyżurów. Dyżury polegają na tym, że programiści na co dzień pracują nad zupełnie innym projektem, ale są świadomi, że w każdej chwili może im się trafić jakieś zadanie do rozwiązania. Przeważnie programiści za takie coś dostają dodatkowe wynagrodzenie.

To jest też moment, w którym do pracy przechodzi zespół analityków. Zajmują się oni analizą danych o tym, w jaki sposób użytkownicy używają naszej aplikacji. Jeśli ciekawi Cię, skąd biorą się takie dane, to polecam odcinek o śledzeniu użytkowników. Na tej podstawie mogą zasugerować jakieś zmiany, które zostaną wprowadzone w przyszłych wydaniach aplikacji.

 

Ile kosztuje stworzenie aplikacji?

Przeszliśmy już z grubsza przez wszystkie etapy tworzenia aplikacji, teraz pora policzyć, ile to wszystko kosztuje. Nie chciałbym jednak, żebyście traktowali te wyliczenia jako wyznacznik kosztu wszystkich aplikacji, bo podane tutaj wartości będą jedynie szacunkowe. No dobrze, przejdźmy do konkretów, zacznijmy od czasu, bo od tego głównie zależy koszt aplikacji.

Nie ma jakiejś złotej liczby, która określi, jak długo robi się aplikację mobilną. Na potrzeby naszych wyliczeń załóżmy, że robimy aplikację średniej wielkości. Natomiast jej czas wykonania wynosi 6 miesięcy, w czym programowanie zajęło 4 miesiące. Dużo zależy, jak duży jest nasz zespół oraz jaka jest jego struktura. Przyjmijmy, że w naszym zespole jest 2 programistów Android oraz 2 programistów iOS. Stawka godzinowa programisty jest uzależniona od jego doświadczenia oraz lokalizacji, w której pracuje. Załóżmy, że każdy z naszych programistów zarabia 60 zł brutto na godzinę. Przy obliczaniu kosztów przyjmuje się, że miesiąc roboczy ma 168 godzin.

Tak, wiem — bardzo dużo założeń, lecz tylko to pozwoli nam poznać jakieś kwoty. Dzięki temu możemy dokonać prostych obliczeń: 4 miesiące x 168 godzin x 4 programistów x 60 zł daje nam 161 280 zł — to jest koszt pracy programistów. Jednak programiści to nie wszystko, poza nimi pracują też managerowie oraz grafik. Nasz projekt jest mały, wiec załóżmy, że mamy tylko jednego managera, który pracował przez cały czas trwania projektu. Stawki managerów są bardzo zróżnicowane, więc tutaj również przyjmijmy stawkę w wysokości 60 zł za godzinę. Po obliczeniu stawki managera według wcześniejszego wzoru wychodzi nam 60 480 zł za 6 miesięcy jego pracy. Został nam więc jeszcze tylko grafik i tutaj niestety nie podam Wam żadnych szacunków – po prostu za mało znam tę branżę, żeby strzelać jakimiś kwotami.

 

PodsumowanieWarto wiedzieć, ile czasu grasz lub przeglądasz Facebooka

Sumując kwotę wynagrodzenia programistów oraz managera dostajemy 221 760 zł, jednak pamiętajcie, że brakuje tutaj jeszcze kosztów pracy grafika. Oczywiście są to jedynie koszty samej pracy. Do tego wszystkiego musimy doliczyć jeszcze marżę firmy, koszty marketingu, opłaty licencyjne, koszty infrastruktury, obsługę prawną i tak dalej.

Długo zastanawiałem się, czy w ogóle używać w tym artykule konkretnych kwot, ponieważ sami widzicie, że są one małe precyzyjne. Chciałem Wam tylko zobrazować, jakiego przedziału jest to koszt i mam nadzieję, że mi się to udało. Tak więc podsumowując, odpowiedź na tytułowe pytanie powinna brzmieć mniej więcej tak: „Nie da się określić, ile kosztuje przeciętna aplikacja, ale są to kwoty dość duże”. Może nie jest to odpowiedź dość precyzyjna, ale sami widzicie, że precyzyjniej się nie da.

 

Dotarliśmy do końca dzisiejszego odcinka, tradycyjnie zachęcam do komentowania i pisania propozycji swoich tematów do poruszenia. Widzimy się już za tydzień — opowiem Wam o tym, kiedy aplikacja może uzyskać dostęp do lokalizacji użytkownika. Do zobaczenia za tydzień!

Zapraszam również na największe w Polsce forum dla programistów Android. Jeśli macie pytania odnośnie do kariery programisty — zapraszam do działu Kariera programowanie. Zachęcam również do przejrzenia działu Praca oraz zlecenia dla programistów — być może to właśnie tam znajdziesz swoją pierwszą pracę.

Pozostałe odcinki serii o programowaniu.






Przewiń stronę, by przeczytać kolejny wpis
x