Jak wyciągnąć większą wartość z zamówionego oprogramowania?

2 june 2022
Jakub Rojek Jakub Rojek
Zdjęcie autorstwa krakenimages z Unsplash (https://unsplash.com/photos/376KN_ISplE)
Categories: Pricing, Cooperation, For clients

Wielokrotnie pisaliśmy na blogu o tym, że oprogramowanie jest bardzo różne, gdyż bardzo różne są potrzeby klientów oraz użytkowników. Istnieją zarówno aplikacje masowe, jak i wewnętrzne - więcej o tym pisaliśmy w jednym z naszych artykułów. Niezależnie od typu, każdy z programów jest zamawiany u firmy IT lub pośrednika z zamiarem spełnienia konkretnego celu biznesowego. Przykładowo, może nim być:

  • zminimalizowanie pomyłek w przetwarzaniu danych,
  • zwiększenie wydajności pracowników,
  • wspomaganie w wykonywaniu trudnych i czasochłonnych obliczeń,
  • lepsza kontrola postępu zadań w firmie,
  • umożliwienie zwiększenia zakresu lub liczby obsługiwanych klientów.

Warto jednak pamiętać o jednej rzeczy - co prawda, tworzenie oprogramowania zwykle nie wymaga posiadania milionów złotych, ale nie jest to też tanie przedsięwzięcie. Dlatego tak istotne jest poznanie potrzeb i przeanalizowanie ich, aby klient oraz zespół programistyczny wiedzieli, że tworzą coś, co rzeczywiście spełni wspomniany wcześniej cel i po prostu przyda się w pracy lub ma szansę czerpać zyski. Jednak dodatkowo uwzględniając niemałą inwestycję, warto przemyśleć to, czy można pójść krok dalej oraz przygotować system informatyczny do osiągnięcia jeszcze większych korzyści. Mamy tutaj na myśli stworzenie mechanizmów, które pozwolą nie tylko zrealizować to, co aplikacja miala robić, ale nawet odzyskać część przeznaczonych na nią środków. Dzisiaj spróbujemy przedstawić pomysły, w jaki sposób można to osiągnąć.

Umożliwienie dostępu wielu firmom

Jest to metoda, która odnosi się do aplikacji wewnętrznych, a więc takich, które pozwalają zarządzać danymi jednej firmie. Zazwyczaj dostęp do nich jest ograniczony wyłącznie dla osób mających konta (bez możliwości samodzielnej rejestracji), a czasami nawet samo otwarcie aplikacji wiąże się z użyciem VPN-a lub przebywaniem w danym miejscu. Oczywiście, ma to dużo sensu, gdyż zwykle taki system IT zawiera krytyczne informacje, jest dostosowany stricte do specyfiki danego przedsiębiorstwa i może stanowić nawet jego przewagę konkurencyjną, więc dzielenie się nim z innym podmiotem wydaje się co najmniej dziwne. Tym niemniej, czasami na miejscu zleceniodawcy warto się zastanowić, czy nie jest dobrym pomysłem udostępnienie go innym firmom.

W ten sposób aplikacja wewnętrzna może stać się półwewnętrzną i umożliwić zarabianie na udostępnianiu usługi przesiębiorstwom o podobnym charakterze. Z punktu widzenia samej funkcjonalności zazwyczaj niewiele się zmienia - gdy zleceniodawca podpisze umowę z inną firmą, to tworzony jest dodatkowy użytkownik, który następnie może działać w ramach innej spółki w systemie i zapraszać swoich użytkowników. Oczywiście, dane różnych firm są odseparowane od siebie, podobnie jak na np. serwerze pocztowym Google'a użytkownicy nie widzą swoich skrzynek mailowych. To dobra okazja, aby kupując system dla siebie, zrekompensować część środków poprzez wykorzystanie go do zarabiania dzięki innym podmiotom, a przy okazji rozpromowanie siebie jako innowatora w danej branży.

Z czym wiąże się takie działanie? Przede wszystkim, powinno być ono planowane od początku, tzn. sama potencjalna możliwość takiego udostępniania musi być zasygnalizowana na jak najwcześniejszym etapie. Niekoniecznie chodzi o wdrożenie wszystkich funkcji sprzedażowych - raczej ma to związek z tym, że wówczas software house inaczej podchodzi do konstrukcji bazy danych i uprawnień w systemie. To dokłada trochę pracy, ale przede wszystkim wymaga przeorganizowania sposobu przechowywania informacji i z tego powodu dodawanie takiej możliwości w już zrealizowanym systemie jest, co prawda, możliwe, ale bardzo utrudnione.

Należy też liczyć się z tym, że wpuszczenie do systemu wielu firm i tym samym związanych z nimi użytkowników, pociąga za sobą konieczność zapewnienia większych zasobów, zabezpieczenia danych i potrzebę zapewnienia wsparcia - w końcu dla zleceniodawcy systemu te dodatkowe firmy będą jego klientami. Do przenalizowania jest także sposób udostępniania konta i ich opłacania - można to robić ręcznie (poprzez dział wsparcia) lub automatycznie (poprzez integratory płatności). Rzeczy do przemyślenia jest sporo, ale w ostatecznym rozrachunku, jeśli tylko istnieje możliwość, że dany system może przydać się nie tylko w danej firmie, polecamy rozważyć analizę tego aspektu.

Warto porozumieć się z inną firmą i odkryć sposób na obupólne odniesienie korzyści (źródło - Jack Sparrow: https://www.pexels.com/pl-pl/zdjecie/biznesmen-mezczyzna-kobieta-biznes-5917480/)

Integracja aplikacji

Nie ma co ukrywać, że obecnie wiele systemów jest ze sobą zintegrowanych, wykorzystując koncentrację ruchu wokół najbardziej popularnych usług. Najprostszym przykładem może być możliwość rejestracji w systemie za pomocą konta na Facebooku, w Google'u czy Apple'u, jednak opcji jest znacznie więcej. Korzystają z tego też właściciele różnych systemów użytkowych, którzy mają świadomość, że ich potencjalni klienci używają rozwiązań bardzo znanych, w których przechowują informacje i mają konta, ale brakuje im tam dodatkowych funkcji. W takim wypadku wskazane jest pomyślenie nad integracją z takim systemem.

Proces wymian danych pomiędzy dwoma platformami zachodzi najczęściej poprzez API i jego przebieg jest bardzo uzależniony od właściwości systemu do zintegrowania. Czasem jest to w miarę proste, szczególnie gdy serwis udostępnia darmowe i dobrze udokumentowane usługi - w ten sposób np. Feedybacky pozwala wysyłać zgłoszenia do Jiry, Redmine'a czy Asany. Niekiedy integracja jest trudniejsza lub nakłada dodatkowe ograniczenia ze względu na charakter przesyłanych danych.

Można jednak sobie wyobrazić, że niektórzy dostawcy usług oferują pewną funkcjonalność masowemu odbiorcy, ale jednocześnie udostępniają ją (w wersji "deluxe") też insytucjom, dla których byłaby bardzo przydatna, ale nie chcą pozbywać się swoich wewnętrznych systemów. Działa to też w drugą stronę - korzystanie z pewnych usług może być utrudnione (np. proces ich rejestracji jest bardziej skomplikowany lub drogi), więc inne firmy wdrażają ją do swoich systemów, pozwalając na łatwiejsze użytkowanie i tym samym napływ użytkowników skuszonych udogodnieniami. To daje korzyść zarówno zleceniodawcy systemu, jak i właścicielowi systemu do integracji. Oraz, oczywiście, końcowemu użytkownikowi.

Jeśli chodzi o czas, kiedy wprowadzanie integracji jest możliwe, to ten moment jest różny - oczywiście, jak ze wszystkim, warto wiedzieć o zamiarach jak najwcześniej, ale w wielu systemach potrzeba tworzenia takich powiązań wynika np. z umowy z nowym klientem końcowym, często długo po wykonaniu bazowej funkcjonalności. Na szczęście, proces integracji zazwyczaj może być przeprowadzany w dowolnym momencie realizacji projektu.

Zamówienie panelu administracyjnego

Znamy również aplikacje, w których słowniki danych lub nawet treść są niemożliwe do edycji przez klienta - nie może on więc na żywo reagować na zgłoszenia użytkowników dotyczące np. brakujących danych. Dodatkowo, czasem zachodzi konieczność prześledzenia historii operacji lub kontroli informacji wprowadzonych przez użytkownika, który stwierdza jakiś błąd. W takim wypadku właściciel systemu najczęściej musi zwrócić się do firmy IT z prośbą o pobranie konkretnych danych lub ich analizę. To generuje koszty - czy można je optymalizować na dłuższą metę?

Jak najbardziej - warto zapytać o możliwość stworzenia panelu administracyjnego dla swojego systemu i uzgodnić, co miałoby być w nim wyświetlane i możliwe do wykonania. Najczęściej takie panele są dość proste w budowie, gdyż ich główną cechą jest funkcjonalność, a nie estetyka. Czasami są nawet konstruowane ze wstępnie gotowych modułów, które przyspieszają proces realizacji panelu, choć nadal wymagają pewnej pracy i znajomości np. danego frameworku. Dzięki takiej osobnej aplikacji klient może sam przeglądać wewnętrzne dane systemu (i to w wygodnej formie) oraz reagować na zgłoszenia użytkowników.

Umożliwienie zamieszczania treści przez użytkowników

Od wielu lat w Internecie trwa eksplozja treści dodawanych przez użytkowników. Ludzie bardzo lubią zamieszczać posty, komentarze i polecać różną zawartość, gdyż w ten sposób mogą zasygnalizować swoją obecność oraz przelać na Internet swoje odczucia. Zresztą, nie bez powodu taką popularnością cieszą się serwisy społecznościowe, choć na nich świat się nie kończy. Wyobraźmy sobie choćby sklep internetowy, który umożliwia swoim użytkownikom prowadzenie blogów, pozwalających prezentować swoją wiedzę na dany temat lub przemyślenia nakłaniające do dyskusji i zdobycia nowych kontaktów. Gdy dodamy do tego możliwość dodatkowego oznaczania ekspertów i wyróżniania swoich postów, to możemy osiągnąć efekt, w którym sklep będzie zarabiał nie tylko na sprzedaży samych produktów, ale też specjalnych opcji, ułatwiających twórcom pokazanie się szerszemu grona użytkowników.

Dodatkowo, jest to funkcja, która jak najbardziej może być dodana później, choć to zależy również od projektu. W tym przypadku należy pamiętać o aspektach bezpieczeństwa, moderacji treści (w celu m.in. ochrony przed spamem) oraz obsłudze procesu płatności, dzięki któremu twórcy będą mogli łatwo zostawiać swoje pieniądze w kasie właściciela oprogramowania.

Przygotowanie kreatora lub innego narzędzia

Bywa też tak, że system IT korzysta z pewnych szablonów, które muszą być definiowane. Problem w tym, że ich konstrukcja nie jest łatwa, a wręcz przeciwnie - trudna do osiągnięcia przez końcowego użytkownika. Może być to związane z wieloma rzeczami, ale zwykle chodzi o prostotę i wydajność obsługi takiej paczki danych w systemie IT. Wyobraźmy sobie teraz, że tego typu szablony są tworzone co jakiś czas, np. dla konkretnego klienta zleceniodawcy. Wówczas ten ostatni musi regularnie prosić firmę IT o przygotowanie potrzebnych struktur.

Występuje tu zatem przypadek podobny do wcześniej omawianego panelu administracyjnego i także w ten sposób może być rozwiązany, jednak równie dobrze można wyobrazić sobie dodatkowe narzędzia czy kreatory. Zwłaszcza, jeśli właściciel systemu chce udostępniać swoim użytkownikom możliwość samodzielnego konstruowania pewnych rzeczy. To dobry sposób nie tylko na oszczędność czasu, pokazanie się z dobrej strony, ale też możliwość dodatkowego zarobku, choćby przez mikropłatności. Możliwości w tym aspekcie są całkiem spore. Do tej kategorii można też zaliczyć udostępnienie API, choć to temat związany także z integracjami.

Nasz system IT może być oknem dla napływu dodatkowych środków (źródło - Chris Barbalis: https://unsplash.com/photos/J698hh61HPo)

Otwarcie aplikacji

Ten punkt zbiera i rozwija kilka innych obszarów omówionych powyżej. Można sobie wyobrazić, że system, który początkowo miał być wewnętrzny, jak najbardziej może zostać otwarty nie tylko na inne firmy, ale też "losowych", pojedynczych użytkowników. Co więcej, udostępnienie API (publicznego w całości lub częściowo) również może zapewnić wzrost popularności oprogramowania, a tym samym potencjalnie większy zysk. Należy tylko pamiętać, że tego typu działania są już związane z dużymi pracami od strony technicznej i z powiększeniem infrastruktury (w tym ze skalowaniem) - najczęściej wymagają również zmian w podejściu do uprawnień i przechowywania danych. Dlatego najlepiej, gdyby zalążek takiego pomysłu był znany od początku, choć z natury często pojawia się dopiero po pewnym czasie. Warto zatem pamiętać, że "otwieranie" systemu wiąże się z dość długim czasem analizy, samych prac i części wdrożeniowej.

Udostępnienie serwisu w wielu językach (internacjonalizacja)

Jest to dość oczywisty aspekt, ale warto o nim wspomnieć. W większości przypadków obecnie tworzone aplikacje są przygotowywane z myślą o internacjonalizacji (wyjątkiem są niektóre aplikacje wewnętrzne). Oznacza to, że programiści przewidują możliwość wprowadzenia nowego języka, choć niekoniecznie robią to od razu - potrzebna jest w końcu paczka tłumaczeń uzyskana od klienta. Warto pamiętać, że możliwość udostępnienia swojego serwisu w formie wielojęzycznej pozwala wypłynąć na szersze, międzynarodowe wody i po prostu uzyskać więcej użytkowników. Oczywiście, nie jest takie proste od strony biznesowej, jednak zawsze warto jest mieć internacjonalizację niż jej nie mieć.

Aplikacja mobilna

Ten punkt nie jest prosty do oceny, jednak chyba można spokojnie założyć, że wiele popularnych serwisów internetowych stała się taka także dzięki wersji na urządzenia mobilne. A tutaj możliwości też są dość szerokie - zauważmy, że taka aplikacja dzięki środowisku, w którym działa, może zapewnić więcej funkcji i dodatkowe opcje, także te płatne lub po prostu ułatwiające korzystanie z bazowych, zyskownych funkcji. Należy też jednak wspomnieć, że mamy tutaj dwie inne możliwości dogodzenia mobilnym użytkownikom, jakimi są zwykła aplikacja responsywna i PWA (ang. Progressive Web Application). I także w tym przypadku warto od początku wspomnieć wykonawcy o swoich planach.

Reklamy (np. Google AdSense)

Na koniec należy wspomnieć o jednym z bardziej oczywistym obszarów, a mianowicie zarabianiu na swojej stronie poprzez udostępnianie reklam. Jeśli tylko możemy sobie na to pozwolić i nie będzie to powodowało problemów "estetycznych" oraz biznesowych, to warto przemyśleć interfejs pod kątem miejsca na takie ogłoszenia - system na pewno w ten sposób się nie zwróci, ale pozwoli odzyskać część środków. Dodatkowo, warto wspomnieć o szerszym sposobie na promocję - przemyślenie i zrealizowanie możliwości obsługi treści sponsorowanych również może się opłacić.

Podsumowanie

Jak widać, istnieje wiele dróg ponownego wykorzystania swojego systemu informatycznego prowadzących do zarabiania w materialnej i niematerialnej formie, a także spopularyzowania swojej aplikacji. Znając te możliwości i decydując się na niektóre z przedstawionych opcji (lub inne), można ułatwić sobie trudną decyzję o zleceniu projektu informatycznego z perspektywą uzyskania dodatkowych korzyści poza zrealizowaniem swojego głównego celu biznesowego.

Pozdrawiam i dziękuję - Jakub Rojek.

We like to write, even a lot, but on a daily basis we develop web and mobile applications. Check some of the programs we have made.

About author

Jakub Rojek

Lead programmer and co-owner of Wilda Software, with many years of experience in software creation and development, but also in writing texts for various blogs. A trained analyst and IT systems architect. At the same time he is a graduate of Poznan University of Technology and occasionally teaches at this university. In his free time, he enjoys playing video games (mainly card games), reading books, watching american football and e-sport, discovering heavier music, and pointing out other people's language mistakes.

Jakub Rojek