Jeśli jesteś klientem software house’u, np. takiego jak nasz, prawdopodobnie zdarza Ci się mieć trudność z zaakceptowaniem kosztów realizacji zleceń programistycznych. Firma IT, która świadczy usługi rozwoju Twojego serwisu, sprawia wrażenie, że za nawet drobne modyfikacje żąda ciężarówek pieniędzy. Wiesz, dlaczego odnosisz takie wrażenie? Bo, to co oni dla Ciebie robią przypomina jakąś “czarną magię” – natura problemów, które dla Ciebie rozwiązują, często jest niejasna i wymaga specjalistycznej wiedzy, żeby ją zrozumieć i zaakceptować. Dlatego dziś chciałbym odczarować jedne z najbardziej drażliwych tematów na linii software house – klient.
Z poniższego tekstu dowiesz się też, jak w eEngine Software House podchodzimy do kluczowych zagadnień współpracy biznesowej z naszymi klientami. Przy okazji poznasz też kluczowe obszary naszej codziennej pracy od przysłowiowej “kuchni”.
Jedno jest stałe w branży IT: ZMIANA
W branży IT jest tylko jedna stała, która towarzyszy naszej pracy od zawsze. Jest to zmiana. Przeglądarki internetowe ciągle się aktualizują. Serwisy nieustannie podlegają modyfikacjom. Powstają nowe narzędzia… i odkrywane są nowe dziury w systemach zabezpieczeń aplikacji. Wszystko, co dzieje się w tzw. świecie IT podlega nieustannym przemianom. Te czasami są większe, czasami mniejsze. I nawet, jeśli z punktu widzenia użytkownika nic się nie zmienia, to wcale nie oznacza, że nic się nie zmieniło.
Niekiedy jest tak, że nawet aktualizacja naszej przeglądarki internetowej może mieć wpływ na funkcjonowanie lub wyświetlanie danego serwisu. A może w międzyczasie Google będzie oczekiwać od stron internetowych czegoś innego, niż tylko bycie RWD lub względnie szybkie ładowanie się stron? Jeżeli zdarza Ci się wystawiać aukcje na Allegro, to na pewno w ten czy inny sposób odczuwasz, kiedy portal zaczyna wprowadzać zmiany w metodach swojego API i w związku z tym, musisz zmodyfikować swój serwis pod tym kątem. A jeśli z jakichś przyczyn potrzebujesz mieć zintegrowany serwis z facebookowym feedem, to na pewno co jakiś czas zdarza się, że przestaje on działać. Powód jest bardzo prosty: Facebook ciągle się zmienia. Podobnie jak cały Internet.
Wymieniłem tylko kilka przykładów tego, że świat IT podlega nieustannym przemianom. Ale wyobraźmy sobie (i zaakceptujmy), że dotyczy to bardzo wielu elementów i procesów, jakie mają miejsce w tej branży. Szczególnie, że rozwija się ona w niesamowitym tempie: powstają kolejne narzędzia, języki programowania, sposoby wytwarzania oprogramowania i jego utrzymywania. Ten element naszej rzeczywistości gna jak szalony, a do tego dotyczy tak wielu obszarów ludzkiego życia, że nie sposób przejść obok zjawiska tych zmian obojętnie.
Dlatego każdy właściciel serwisu lub sklepu internetowego, integratora łączącego różne systemy, aplikacji mobilnej na smartfony musi być świadom tego, że nie inwestując w swój serwis, żeby ten mógł gonić za tymi zmianami, prędzej czy później odczuje swój brak perspektywicznego myślenia. Ten przełoży się na biznes, który będzie coraz mniej zarabiał. Stworzenie czegokolwiek w Internecie jest tylko pierwszym krokiem. W zasadzie to najprostszy etap ze wszystkich, bo prawdziwe wyzwanie zaczyna się w momencie, w którym przychodzi nam utrzymać swój serwis i sprawić, że będzie on rentowny. Nie da się tego zrobić bez nieustannego rozwoju. Na ten składa się inwestowanie pieniędzy, czasu i zasobów ludzkich w ciągłe wprowadzanie zmian, a także poprawianie błędów i optymalizowanie naszej aplikacji.
Jako firma staramy się podchodzić do wszystkich (nawet najbardziej drażliwych) tematów otwarcie i szczerze, dlatego to co zaraz napiszę może zabrzmieć dość brutalnie: zmieniaj się, albo przegrywaj z tymi, którzy to rozumieją.
W związku z niekończącą się zmianą branży IT, serwisy wymagają ciągłego dostosowywania do otaczającej je rzeczywistości. A to sprawia, że musimy je rozbudowywać, ale też modyfikować niektóre mechanizmy lub integrować się z innymi systemami. W ten oto sposób powstaje system naczyń połączonych, którego (siłą rzeczy) zaczynają prędzej czy później dotykać różnego rodzaju usterki. Będą one szczególnie brzemienne w skutkach, jeśli jako właściciel takiego serwisu postanowimy marginalizować udział testów, optymalizacje i szeroko pojętą opiekę, jaką mogą roztoczyć nad naszym e-biznesem programiści.
Tego typu prace dobrze jest odpowiednio uwzględnić w kosztach, jakie ponosimy w związku z rozwijaniem serwisu. Najprościej jest policzyć ile zarabiamy na naszej aplikacji i następnie podjąć męską decyzję – przeznaczyć stosowne budżety na opiekę. Żeby zobrazować to zagadnienie w sposób nieprogramistyczny użyję metafory sportowca profesjonalisty.
Wyobraź sobie, że Twój serwis to ów sportowiec. Pozbawiając go regularnej opieki fizjoterapeuty (tutaj firmy IT) i jednocześnie cały czas wystawiając go w zawodach (sklep internetowy cały czas sprzedaje, zwiększa ilość asortymentu i integracji z innymi systemami) wystawiasz go na ryzyko kontuzji (pojawią się błędy destabilizujące funkcjonowanie serwisu). Nie muszę Ci tłumaczyć, że to co najmniej nieroztropne postępowanie zarówno wobec “sportowca”, jak i swojego serwisu internetowego.
To, co napisałem powyżej świetnie oddaje sytuację Nokii, która w pewnym momencie swojej ekspansji zrozumiała, że już dawno przestała być liderem rynku – przegapili kluczowe zmiany, jakie dotknęły rynek smartfonów, co w konsekwencji doprowadziło ich do miejsca, w którym są dzisiaj. Fińska marka niby nie popełniła żadnych błędów, ale z jakiegoś powodu przegrała wyścig z Apple, Samsungiem i pozostałymi producentami.
Największa trudność w kontaktach między firmą IT a klientem
Jako firma IT jednym z naszych głównych zadań, przed jakimi codziennie stawiają nas nasi klienci, to rozwiązywanie problemów programistycznych. Bez większych wątpliwości mogę stwierdzić, że to jest właśnie kwintesencja naszej pracy.
Niestety, ale żeby zrozumieć znamienitą większość problemów, które rozwiązujemy potrzeba specjalistycznej wiedzy ze świata IT, umiejętności programistycznych i analitycznych. Tych klienci często nie posiadają. Z jednej strony nie muszą, bo gdyby znali się na wytwarzaniu oprogramowania, to po co wtedy mieliby nas zatrudniać? Ale wtedy… kto zajmowałby się prowadzeniem ich biznesów?
Nierzadko też, klienci nie do końca rozumieją i (niekiedy sprawiają wrażenie, że nawet nie chcą zrozumieć) natury rzeczy, którą się zajmujemy. W codziennej obsłudze klienta zdarzyło nam się usłyszeć, że specjalnie coś psujemy na sklepie internetowym, żeby klient musiał nam zlecić naprawę jego oprogramowania. I co najgorsze (z punktu widzenia takiego klienta): będziemy za naprawę oczekiwać zapłaty.
A taka sytuacja, że coś się nagle psuje, często wynika z opisanego wcześniej procesu przemian, jakim poddawany jest ogólnie pojęty Internet. Nie mniej, bez próby zrozumienia tego stanu rzeczy po stronie klienta, współpraca nad rozwojem jego oprogramowania będzie szalenie trudna. Wynika to z tego, że firma IT obsługująca jego serwis będzie tracić równie dużo energii na wyjaśnienie i wytłumaczenie natury problemu, co na jego naprawę.
Firmy programistyczne powinny być niczym mędrcy, którzy dzielą się swoją wiedzą i umiejętnościami. Właśnie po to, żeby odbiorcy ich usług mieli pełne spektrum i doświadczenie tego, za co przychodzi im zapłacić. Ale ten kij ma dwa końce. Osoba, do której ów mędrzec będzie chciał dotrzeć ze swoim przekazem, musi cechować się otwartym umysłem i przede wszystkim, chęcią zrozumienia natury problemu. Do tego dochodzi jeszcze zaakceptowanie tego, że głównym zadaniem software house’u jest rozwiązywać problemy klientów. I w tej oto pracy często jest tak, że programiście dłużej może zająć samo przeanalizowanie zagadnienia czy tego, jak dana funkcja ma działać, niż sama realizacja. Przygotuj się na wielkie zaskoczenie: za cały poświęcony czas (analizy i stricte kodowanie), klient jest zobligowany zapłacić. Dlaczego? Już wyjaśniam.
Dlaczego czas jest (prawie) najważniejszy
Czas to jeden z najważniejszych czynników regulujący warunki współpracy pomiędzy firmą programistyczną, a klientem. Obok naszego “know how” i zaangażowanych w projekt ludzi, to najważniejsza wartość, jaką możemy dostarczyć naszym partnerom biznesowym. Jako software house nie wytwarzamy nic namacalnego. Świadcząc usługi programistyczne tworzymy coś (oprogramowanie), co często trudno jest zrozumieć, zobaczyć czy w ogóle wyobrazić sobie na jakimkolwiek polu abstrakcji (jeśli nie jest się programistą). Jednocześnie, przekłada się to “COŚ” na biznes klienta, pozwalając mu generować jeszcze większe przychody.
Dlatego tak bardzo istotny jest z naszej perspektywy czynnik czasu w obliczu tego, co mamy do zrobienia w perspektywie nadchodzącego dnia, tygodnia czy miesiąca. Czas jest ograniczony. Podobnie jak zasoby ludzkie, którymi dysponujemy. W momencie, w którym klient rozumie, jak bardzo istotny jest to element, jednocześnie jest w stanie zaakceptować to, że realizując coś dla niego w ramach umówionego czasu poświęcamy dla niego to, co dla nas najważniejsze.
Być może brzmi to odrobinę zbyt filozoficznie, więc spróbuję wyjaśnić ten element w bardziej przyziemny sposób. Jeśli serwis ma się rozwijać, zarówno pod względem nowych funkcji, optymalizacji działania, ale też efektywniejszego utrzymywania go i wprowadzania zmian (czyt. oszczędności czasu, jaki jest poświęcany na obsługę techniczną), to najpierw musimy zainwestować w niego odpowiednią jednostkę czasu. A ten kosztuje, bo nierozerwalnie związany jest z pracą człowieka. To jest właśnie największa wartość, jaką możemy zaoferować naszym klientom i ich serwisom. Dlatego za “czas”, który im poświęcamy, klient zobligowany jest nam zapłacić. Realizując różnego typu zlecenia za darmo, bo klientowi wydaje się, że tak powinno być, ponosimy istotne dla nas koszty alternatywne: co moglibyśmy robić w tym czasie innego, dla kogoś kto rozumie procesy, w ramach których funkcjonują internetowe przedsięwzięcia.
Biznes musi się spinać, wie to każdy kto zdecydował się podjąć wyzwanie prowadzenia firmy. Dlatego chcemy wybierać takich klientów, którzy rozumieją specyfikę branży IT i akceptują fakt, że za poświęcony czas i pracę programistów na koniec miesiąca otrzymają od nas fakturę. Wydaje się to oczywiste, ale wierzcie mi – w IT nie ma czegoś takiego jak oczywiste rzeczy. Wielu klientom nadal wydaje się, że dokonanie jakiejś zmiany w ich serwisie kończy się na wyklikaniu jej przez programistę w kilka minut. Rzeczywistość jest zgoła inna i żeby pochylić się bardziej szczegółowo temu zagadnieniu poświęcę mu więcej miejsca następnym razem.
Mission Impossible: odczarować branżę IT
Klienci często postrzegają nas jako swego rodzaju “czarodziejów”. Przychodzą do nas z pewnym problemem, a my swoją “magią programowania” dostarczamy im efektów, których oczekują. Jednak samej natury tego, jak działa to co zaprogramujemy nie są w stanie zrozumieć. I tym samym, trudno jest im zaakceptować poziomy kosztów pewnych wycen. Rozumiejąc to zjawisko, bo sam jestem osobą nietechniczną, chciałbym wyjść naprzeciw tej sytuacji i w kolejnych wpisach zmierzyć się z największymi zagadkami wytwarzania oprogramowania przez firmy programistyczne, takie jak nasza. Mam nadzieję, że będziecie mi w tej podróży towarzyszyć.