What a software house can give you?

4 grudnia 2020
Jakub Rojek Jakub Rojek
Kategorie: Współpraca, Oferta, Branża, Dla klientów

Chyba każdy członek danej branży jest w stanie powiedzieć, czym dokładnie zajmuje się jego firma, zaprzyjaźnione spółki oraz przynajmniej mniej więcej orientuje się w tym, jakich kompetencji można spodziewać się po innych przedstawicielach danej gałęzi rynku oraz pokrewnych działalnościach. Krótko mówiąc - o swoim podwórku może opowiadać bez końca i to najczęściej z sensem. Co więcej, dotyczy to nie tylko wiedzy o tym, co oferują osoby z określonej branży, ale także czego nie oferują. Niestety, czasami nie idzie to w parze z wiedzą o tym, jak to wszystko wytłumaczyć osobom nieobeznanym (w tym także potencjalnym klientom), co łączy się zazwyczaj z nieświadomością tego, że ktoś w ogóle nie rozumie, czego spodziewać się po firmie z danego "sektora".

Dlatego dzisiaj spróbuję wytłumaczyć Wam (lub Tobie, gdyż będę zwracał się do Ciebie jako potencjalnie zainteresowanego tematem), czego możecie oczekiwać po software housie oraz których usług powinniście szukać u innych dostawców (oczywiście, nie zważając na to, że istnieje coś takiego jak outsourcing). Naturalnie, nie jestem w stanie podejść do tego uniwersalnie - każda firma ma swoje priorytety, inaczej wyspecjalizowaną załogę i inne obszary działań (mimo że wszystko tworzą kod). Dlatego pozwólcie, że opiszę to wszystko na przykładzie mojej firmy, a więc Wilda Software z Poznania.

W jaki sposób software house może mi pomóc w biznesie?

Odpowiedź brzmi: "na najróżniejsze". A czego się spodziewaliście?

Tak całkiem poważnie, to software house'y, jak sama nazwa mówi, tworzą oprogramowanie, a więc w przeważającej części aplikacje, programy komputerowe. Oczywiście takie, które sobie klient zażyczy, o ile mieszczą się w zakresie usług świadczonych przez daną firmę. Najczęściej są to aplikacje webowe (a więc takie, do których dostęp użytkownika ma w przeglądarce internetowej), aplikacje mobilne (do uruchomienia na smartfonie), a także aplikacje desktopowe (uruchamialne na komputerze - obecnie zdecydowanie w odwrocie jeśli chodzi o potrzeby klientów). Niektóre organizacje zajmują się również aplikacjami na bardziej specyficzne środowiska (np. drukarki, zegarki itd.) oraz takimi o bardzo wyspecjalizowanej funkcjonalności. Na szczęście, zanim podpiszesz jakąkolwiek umowę z software housem, masz prawo do wzajemnego "macania się" (bez skojarzeń) i zestawienie swoich potrzeb z możliwościami firmy. Nie obrażaj się, gdy usłyszysz "przykro nam, ale akurat takiego oprogramowania nie będziemy w stanie wykonać" - nie jest to złośliwość skierowana w Twoją stronę, ale - paradoksalnie - przejaw troski, gdyż oznacza to, że firma nie marnuje Twojego czasu, jest szczera (być może aktualnie nie ma potrzebnych zasobów, aby zmieścić się w wyznaczonym przez Ciebie czasie) i często da namiary na firmy, które mogą bardziej Ci pomóc. 

Ale nie tylko poprzez aplikacje firmy trafiają do serc klientów.

Czy zanim zawrzemy formalności, będziemy mogli porozmawiać?

Naturalnie! Pośrednio odpowiedziałem na to w poprzednim akapicie, ale powtórzę - zanim dojdzie do podpisania jakiejkolwiek umowy, która wymagałaby od Ciebie opłat, software house chętnie wysłucha szczegółów Twojego pomysłu i zaopiniuje, jak to sobie wyobraża oraz jakie rozwiązanie proponuje. Najczęściej zajmuje to kilka spotkań lub rozmów telefonicznych, w czasie których zarówno Ty będziesz mógł zdecydować, czy warto wejść w tę współpracę, jak i firma będzie mogła wstępnie zorientować się, z czym będzie wiązał się dany projekt. 

Wbrew pozorom, dalsze kroki niekoniecznie oznaczają wydanie bardzo dużej sumy i rozpoczęcie procesu produkcyjnego - aby dokładniej zrozumieć oczekiwania klienta, software house za stosunkowo małą opłatę przeprowadzi bardziej szczegółową analizę wymagań oraz proponowanej architektury. Wynikiem tego etapu będzie parę dokumentów, które zazwyczaj stają się później aneksem do umowy, ale przede wszystkim, w większych detalach (aczkolwiek nie na zupełnie "niskim poziomie", gdyż nie zawsze jest to możliwe) opisują projekt, co jest punktem wyjścia do dalszych prac projektowych i implementacyjnych.

Jak wygląda proces produkcyjny i w jaki sposób będzie powstawał mój projekt?

Oczywista odpowiedź brzmi: "to zależy". I to nie tylko od firmy, ale także od samego projektu, a konkretnie technologii, rozmiaru, "zdolności podziału" i innych czynników. Zazwyczaj wygląda to tak:

1) Wspólnie rozmawiacie o projekcie i przygotowujecie specyfikację lub zwyczajny opis (jeśli projekt nie jest za duży). Na tym etapie powstaje lista wstępnych wymagań, zarówno funkcjonalnych (CO dana aplikacja będzie robiła) oraz pozafunkcjonalnych (JAK dana aplikacja będzie to robiła).

2) Powstaje bardziej szczegółowa wycena projektu.

3) Na podstawie listy wymagań i wycen poszczególnych zadań, następuje propozycja zadań na tzw. pierwszy sprint lub ewentualnie propozycja podziału zadań na poszczególne sprinty, w zależności od sytuacji. Dzieje się to, oczywiście, po konsultacji z Tobą i po uwzględnieniu Twoich potrzeb biznesowych (być może chcesz wdrażać aplikację "na raty" i pewne funkcje potrzebujesz wcześniej - zasygnalizuj to software house'owi!).

4) Następuje implementacja (realizacja) danego sprintu, zakończona wdrożeniem i udostępnieniem Tobie pracy.

5) Możesz przetestować istniejącą funkcjonalność i zgłosić uwagi, w tym takie, które zmieniają pierwotną pulę wymagań - dlatego zazwyczaj nie planuje się wszystkich sprintów naprzód.

6) Kroki 3-5 są powtarzane aż do zakończenia realizacji wszystkich wytycznych lub satysfakcjonującego Cię wyniku.

7) Zazwyczaj na tym etapie projekt jest testowany bardziej dokładnie niż wcześniej, aby wyłapać wszystkie nieścisłości i "dziwne sytuacje". Idealnie, gdy w testach uczestniczysz nie tylko Ty, jako klient, ale także użytkownicy (lub osoby ich reprezentujące), którzy korzystają z aplikacji tak, jak będą to robić na co dzień - pamiętaj, że programiści i testerzy software house'u, jakby się nie starali, nie są w stanie przewidzieć wszystkich zachowań użytkowników. Zresztą, nikt tego nie jest w stanie zrobić - nawet użytkownicy.

8) Następuje wdrożenie na ustalony wcześniej serwer produkcyjny. Dotyczy to nie tylko warstwy technicznej, ale chociażby szkoleń dla użytkowników i/lub przygotowania instrukcji.

9) Zaczyna się tzw. okres serwisowania i gwarancji, w trakcie którego software house poprawia ewentualne błędy zgłoszone już po "premierze", wprowadza modyfikacje na warunkach ustalonych wcześniej lub wspólnie opracowujecie plan rozwoju aplikacji.

Realizacja samego projektu przebiega zazwyczaj w tzw. metodyce zwinnej, z której najpopularniejszy jest Scrum wprowadzający rzeczone sprinty, a więc etapy, na które podzielony jest proces wytwórczy. Jeśli chcesz w szczegółach poczytać, jak to wygląda u nas, zachęcam do zaglądnięcia na naszą stronę.

Czy software house dochowa tajemnicy o moim pomyśle na projekt?

Oczywiście, podobnie jak firma z każdej innej branży. Na początku współpracy zazwyczaj podpisywana jest umowa o zachowaniu poufności (tzw. NDA, czyli non-disclosure agreement), która nakazuje obu stronom zachowanie dla siebie szczegółów prowadzonych rozmów i wymienionych pomysłów. Zresztą, software house zachowałby się bezmyślnie, gdyby zaadaptował "kropka w kropkę" koncepcję ujawnioną przez klienta bez jego zgody i profitów dla niego, szczególnie tuż po rozmowach - nie trzeba być Sherlockiem Holmesem, aby zorientować się w tym, co by się wtedy wydarzyło. Dlatego, drogi kliencie, możesz czuć się bezpiecznie ze swoim pomysłem na biznes. Co najwyżej dasz inspirację drugiej stronie, ale ponownie - to dotyczy każdej branży i każdej rozmowy, nie tylko na poziomie biznesowym.

Mam projekt IT, który wymaga rozwoju, poprawy lub odnowienia. Czy mogę zgłosić się do software house'u?

Jak najbardziej możesz się zgłosić - zlecenia tego typu stanowią pokaźny procent projektów niektórych firm IT. Niemniej, w tym temacie trzeba pamiętać o dwóch rzeczach.

Po pierwsze, nie ma co ukrywać, że software house'y takie zlecenia robią, ale niespecjalnie je lubią. Powód jest dość prosty - trudno "wejść" w coś, co jest rozwinięte i wdrożone na serwer, a czego od początku się nie planowało i wykonywało. Najczęściej takie przekazanie projektów dotyczy sytuacji, kiedy firma poprzednio realizująca projekt nie popisała się lub nie jest w stanie go dalej rozwijać - w obu przypadkach można się spodziewać, że wynika to albo ze złej jakości kodu (co w końcu pogrążyło wykonawcę), albo szalonych niedoszacowań, co także nakłada presję na "nowy" software house. Co więcej, w takich przypadkach rzadko można liczyć na przybliżającą projekt dokumentację, przez co zorientowanie się w kodzie wymaga czasu oraz stalowych nerwów.

Po drugie (i wynikające z pierwszego), przejęcie takiego projektu nie jest "bezszwowe" i wycena nie będzie tożsama z tą podaną przez poprzedniego wykonawcę (który prawdopodobnie przestał nim być właśnie przez obietnice, których nie był w stanie spełnić). Także dlatego, że nowy software house będzie musiał założyć czas na analizę projektu i odnalezienie się w nim, co - jak już wiemy - nie zawsze jest proste.

Nie piszę o tym dlatego, aby odstraszyć Ciebie, drogi kliencie, od takich "transferów" - często są one potrzebne i opłacalne dla obu stron. Piszę o tym dlatego, abyś miał na uwadze, że nie zawsze taktyka polegająca na wyborze najtańszego wykonawcy, aby zaczął projekt z myślą, że w razie czego zostanie przekazany komuś innemu, oznacza oszczędności. 

Czy wycena projektu jest darmowa?

W 90% tak, podobnie jak bardzo wstępna analiza tego, co byłoby potrzebne do prac (czyli to, co jeszcze ma miejsce przed pisaniem dokumentacji, nie mówiąc już o rozpoczęciu realizacji projektu). Co prawda, wstępną wycenę należy traktować orientacyjnie - o właściwym oszacowaniu (a więc koszcie projektu) możemy mówić zazwyczaj dopiero w momencie, kiedy analitycy bardziej zagłębią się w temat i zobaczą, z czym może być ewentualny problem, a więc także więcej pracy. Często dość małe szczegóły decydują o koszcie, ale na szczęście, bywają one opcjonalne, tj. nie są potrzebne do tego, aby projekt robił to, co powinien. Kiedyś napisałem o tym trochę więcej.

Warto też wspomnieć o tym, że software house może wycenić Ci projekt od strony realizacji samego oprogramowania - musisz pamiętać, że do tego powinieneś doliczyć kwestie związane z utrzymaniem, przygotowaniem treści (przynajmniej tej początkowej), administracją, grafiką i innymi rzeczami, o których napiszę nieco niżej. 

Co ja wnoszę do projektu?

Klient w projektach IT nie jest tylko i wyłącznie osobą, która daje pieniądze i mówi, co mu się podoba lub nie podoba - często jest (oczywiście, jeśli jest taka wola z obu stron) członkiem zespołu i żywo konsultuje decyzje oraz odpowiada na wątpliwości zespołu. Nie da się ukryć, że o ile software house'y znają się na tworzeniu oprogramowania, tak nie posiadają tego, co Ty - wiedzy dziedzinowej z danej branży. Dlatego tak ważne (szczególnie przy bardziej specjalistycznych systemach) są regularne rozmowy po starcie projektu, wyjaśnianie różnych terminów, a także konfrontowanie realizacji z Twoimi założeniami.

W tym momencie mógłbyś się przestraszyć, że oznacza to konieczność ciągłej dostępności z Twojej strony - niekoniecznie. Współpraca może wyglądać tak, że spotkania w celu wyjaśnienia wątpliwości lub komunikowanie o nich może następować "raz na jakiś czas", przez co aktywność z Twojej strony można ograniczyć do minimum. Tym niemniej, pamiętaj, że to Ty jesteś ekspertem w danej dziedzinie biznesowej i od tego, jak dobrze zrozumieją Twoje potrzeby osoby zarządzające projektami IT (a które są do tego "szkolone") i programiści zależy powodzenie przedsięwzięcia.

Jak wygląda gwarancja i serwisowanie projektów?

Jak każdy produkt, także na oprogramowanie udzielana jest gwarancja, która zazwyczaj wynosi 12 miesięcy, ale zależy też od rozmiaru projektu i - ponownie - indywidualnych ustaleń. Gwarancja obejmuje poprawki błędów, które ujawniły się już po ukończeniu danych prac oraz drobniejsze modyfikacje wynikające z błędnych założeń. Należy jednak pamiętać, że dodanie nowych funkcji czy nieco większe zmiany są już traktowane inaczej. I tutaj dochodzimy do serwisowania.

Po realizacji projektu, jeśli zamierzasz go wypuścić użytkownikom w pewnym stadium, a później dalej rozwijać, warto z software housem porozmawiać o usłudze serwisowej, czyli czymś w rodzaju "abonamentu na dalsze prace". Masz wówczas możliwość wykupienia pewnej miesięcznej puli godzin na preferencyjnych warunkach, które możesz (ale nie musisz) wykorzystać na dalszy progres w aplikacji. Można to przyrównać do abonamentu u operatora komórkowego lub w usłudze streamingowej. Wszystko zależy od dogadania się i indywidualnych ustaleń - wiedz jednak, że po ukończeniu projektu nie zostajesz pozostawiony sam sobie z kodem źródłowym.

Czy software house odpowiada również za administrowanie serwerem i utrzymywanie go?

To zależy, ale często nie, szczególnie u mniejszych firm oraz w większych projektach. Administrowanie serwerem jest zadaniem wymagającym innych umiejętności i trybu pracy niż te, które charakteryzują programistów. W praktyce software house'y mogą doradzić w wyborze serwera, polecić administratora i przeprowadzają wdrożenia nowych wersji oprogramowania. Zazwyczaj utrzymują też pierwszy, testowy serwer, na którym klient i wybrani użytkownicy mogą weryfikować powstające oprogramowanie. Natomiast konfigurowanie i monitorowanie produkcyjnej maszyny, na której będzie stał projekt, to inna bajka i istnieją osoby (administratorzy), którzy zajmują się tym profesjonalnie i zarekomendują też wybór poszczególnych rozwiązań na większym poziomie szczegółowości niż programiści. Zazwyczaj albo software house współpracuje z kilkoma administratorami i ich poleca, albo - jeśli jest większą firmą - faktycznie sam dysponuje taką osobą w zespole. Zdarza się też, że to klient ma takiego specjalistę po swojej stronie i jemu chce oddać "władanie nad maszyną". Warto też wspomnieć, że przy mniejszych i mniej wymagających projektach najczęściej sam zespół programistyczny dogląda serwer.

A czy wypozycjonujecie mi stronę?

Dla osób, które nie są świadome tego, czym jest pozycjonowanie czy też SEO, spieszę z wyjaśnieniem, że w dużym skrócie chodzi o sprawienie, aby nasza strona internetowa była milej traktowana przez Google'a i częściej polecana przez niego w wyszukiwaniach, najlepiej na pierwszym miejscu. Wbrew pozorom, temat jest zdecydowanie bardziej skomplikowany niż używanie odpowiednich słów kluczowych i dlatego software house'y tym najczęściej też się nie zajmują (i to częściej nie zajmują się tym niż serwerami). Audyty SEO są przeprowadzane przez wyspecjalizowane firmy zajmujące się marketingiem internetowym (prawdopodobnie te firmy teraz mnie skrytykują, że bardzo upraszczam ich działalność). W tym przypadku dochodzi do ścisłej współpracy takiej firmy z software housem, gdyż większość uwag "pozycjonerów" ma charakter techniczny, a więc możliwy do wykonania przez programistów. Także w tym przypadku firmy IT często mogą polecić określonych marketerów. Co ważne, kwestie związane z SEO warto planować w początkowych fazach projektu, aby wprowadzanie zaleceń wiązało się z jak najmniejszymi kosztami. Zresztą, dotyczy to wielu kwestii, które są poruszane w tym artykule.

Czy przetestujecie oprogramowanie i przeprowadzicie audyt, jeśli Was o to poprosimy?

Tak, szczególnie jeśli chodzi o audyt. Zdarzają się zlecenia polegające wyłącznie na analizie danego oprogramowania czy dokumentacji i przedstawieniu własnej opinii na ten temat wraz z zaleceniami na przyszłość. W przypadku testowania sprawa jest bardziej skomplikowana i odpowiedź brzmi: "tak, ale są wyspecjalizowane firmy od tego". Te firmy posiadają nie tylko ekspertów potrafiących nakłonić każde oprogramowanie do ujawnienia swoich błędów niczym świetny prokurator podczas sprawy sądowej, ale także odpowiedni sprzęt wspomagający testowanie. Software house też może to zrobić (wszak często posiada zespół testerów, zwany często "QA Team"), aczkolwiek nie zajmują się tym na co dzień w takiej skali.

Czy jeśli po prostu będę chciał porozmawiać o projekcie IT i poznać opinię specjalistów, mogę się do nich zgłosić?

Oczywiście! Nie tylko te firmy realizują projekty IT, ale też je konsultują i opiniują, gdyż po prostu mają w tym doświadczenie i niejedno widziały. Jeśli nie jesteś pewny co do swojego pomysłu na oprogramowanie, jego realnej potrzeby powstania lub chcesz skonfrontować swój pogląd na software, to jak najbardziej skontaktuj się z software housem. Nigdy nie wiesz, do czego Cię to zaprowadzi, ale najczęściej do czegoś dobrego (nawet jeśli oznacza to tylko pozyskanie potrzebnej wiedzy).

Czy przygotujecie mi grafikę do strony?

Odpowiedź nie jest taka prosta i ponownie zależy od wielu czynników. Część software house'ów posiada swoich grafików na stanie (częściej niż administratorów), podczas gdy inne mają kontakt do zaprzyjaźnionych specjalistów z tej dziedziny. Jeżeli zależy Ci na tzw. prototypach niskiej wierności (ang. low fidelity), które przedstawiają jedynie wstępny zamysł interfejsu pozwalający skonfrontować wizję zespołu z Twoimi oczekiwaniami, to tym zajmują się zazwyczaj analitycy (do spółki ze specjalistami od UX, jeśli są dostępni) i tego możesz spodziewać się po software housie. Natomiast stricte prace graficzne i prototypy o większym poziomie szczegółowości, dobór fontu, kolorów, rozmiaru i ogólnie "design" to domena wyspecjalizowanych grafików, którzy po prostu to "czują". Podobnie, jak w przypadku SEO, często są to osobne firmy, które śliśle współpracują później z programistami. 

Czy software house przeprowadzi audyt bezpieczeństwa?

Nie - tym zajmują się osobne firmy, gdyż, podobnie jak administracja, jest to inna poddziedzina informatyki, wymagająca specyficznych umiejętności, zakresu wiedzy i podejścia.

Czy skonfigurujecie i będziecie serwisować mi drukarkę, sieć w firmie lub inny sprzęt/infrastrukturę?

Nie - software house'y tym się nie zajmują, chyba że przypadkiem mają u siebie osoby, które są z tym obeznane. Aczkolwiek tego typu zlecenia mają inny charakter niż przygotowanie oprogramowanie, także raczej musiałbyś szukać innych firm.

Czy zajmujecie się również marketingiem i/lub przygotowywaniem tekstów, a także obsługą mediów społecznościowych?

Klasyczne software house'y tego nie robią, natomiast trzeba wspomnieć o istnieniu firm opisujących siebie jako agencje interaktywne - są to zespoły posiadające zarówno specjalistów od oprogramowania, jak i ekspertów od marketingu (najczęściej też grafików). W zależności od wielkości i kompetencji takich firm, będą w stanie pokryć Twoje zapotrzebowanie zarówno na software, jak i strategię promocyjną, jeśli potrzebujesz rozwiązania "all-in-one". Nie da się też ukryć, że podobnie jak przy wcześniej poruszanych kwestiach "okołoaplikacyjnych", software house'y mają często kontakt do firm potrafiących zająć się marketingiem.


Mam nadzieję, że ten tekst będący swoistym Q&A przybliżył Wam choć trochę specyfikę takich firm, jak Wilda Software i pomógł podjąć Wam decyzję o ewentualnym kontakcie z wybranym potencjalnym wykonawcą Waszego pomysłu na projekt IT. Nie są to firmy realizujące absolutnie wszystko, co jest związane z wypuszczeniem oprogramowania do użytkowników - o tym warto pamiętać, podobnie jak o tym, że dużo zależy też od Was i Waszego zaangażowania, jak w każdym innym biznesie i branży. Tym niemniej, zapotrzebowanie na usługi IT jest obecnie tak duże, że warto wiedzieć, czego możesz się spodziewać od firmy o takim profilu i uwzględnić ją w swoich planach.

Jeśli uważasz, że czegoś nie wyjaśniłem wystarczająco lub pominąłem ważny wątek - śmiało piszcie, czekam na Wasze komentarze :) Zapraszam też oczywiście na naszą stronę internetową i do kontaktu.

Pozdrawiam - Jakub Rojek

Lubimy pisać, nawet bardzo, ale na co dzień tworzymy aplikacje webowe i mobilne. Sprawdź niektóre z wykonanych przez programów.

O autorze

Jakub Rojek

Główny programista i współwłaściciel Wilda Software, z wieloletnim doświadczeniem w tworzeniu i rozwoju oprogramowania, ale także w pisaniu tekstów na różnorakich blogach. Zaprawiony w boju analityk i architekt systemów IT. Jednocześnie absolwent Politechniki Poznańskiej i okazjonalny prowadzący zajęcia na tej uczelni. W wolnych chwilach oddaje się graniu w gry wideo (głównie w karcianki), czytaniu książek, oglądaniu futbolu amerykańskiego i e-sportu, odkrywaniu cięższej muzyki oraz wytykaniu innym błędów językowych.

Jakub Rojek