Zamówienie skierowane do software house w Poznaniu ma zwykle jedną z dwóch postaci: firma chce zbudować system od zera albo rozbudować program, który już działa i nie nadąża za procesami. Zakres usługi wynika z tego, jak duża jest organizacja. Mała firma kupuje zazwyczaj jedną aplikację i jej utrzymanie. Średnia zamawia system połączony z programem finansowo-księgowym, a często także z magazynem obsługiwanym na urządzeniach mobilnych.

Poniższy opis porządkuje, co składa się na taką usługę u wykonawcy działającego jako software house i jak wygląda podział pracy między zamawiającym a zespołem. Osobno opisano stos technologiczny oraz organizację współpracy zespołowej, tutaj uwaga skupia się na zakresie i modelu usługi.

Software house Poznań - cztery obszary usługi

W ofercie SoftwareStudio, opisanej w tym serwisie i na stronie oprogramowania na zamówienie, powtarzają się cztery obszary. Każdy z nich ma osobny rezultat i osobny sposób rozliczenia.

  • Oprogramowanie na zamówienie - aplikacje webowe i bazodanowe pisane pod proces zamawiającego, z dokumentacją techniczną.
  • Wsparcie i utrzymanie - naprawy błędów i drobne zmiany funkcji oraz nadzór nad kopiami zapasowymi.
  • Integracje - połączenia aplikacji z ERP oraz z systemami kurierskimi przez interfejsy lub bazę pośrednią.
  • Hosting i licencje - uruchomienie aplikacji w chmurze prywatnej wykonawcy i rozliczanie w abonamencie miesięcznym lub rocznym.
ObszarWynik dla zamawiającegoTypowy sposób rozliczenia
Oprogramowanie na zamówieniedziałająca aplikacja z dokumentacjąwycena zakresu, etapy z odbiorami
Wsparcie i utrzymaniestabilne środowisko produkcyjneabonament albo godziny wg zgłoszeń
Integracjedane przepływają między systemami bez przepisywaniawycena interfejsu, potem utrzymanie
Hosting i licencjedostęp przez przeglądarkę bez własnej serwerowniopłata miesięczna lub roczna

Granice między obszarami są płynne. Aplikacja napisana na zamówienie potrzebuje utrzymania, a integracja bez hostingu wymaga po stronie klienta serwera z uprawnieniami do bazy. Umowy w tym modelu zwykle opisują całość jako projekt z etapem wdrożeniowym i osobną częścią serwisową.

Oprogramowanie na zamówienie od analizy do odbioru

Najobszerniejszą częścią usługi jest wytworzenie aplikacji. SoftwareStudio deklaruje w swoich materiałach specjalizację w aplikacjach internetowych i bazodanowych, co oznacza, że większość prac dotyczy modelu danych i logiki procesu, a nie samego wyglądu ekranów. Szersze omówienie tematu znajduje się na stronie o dedykowanym oprogramowaniu na zamówienie oraz w opisie tworzenia aplikacji webowych.

Analiza wymagań

Prace zaczynają się od opisu procesu, który ma być obsłużony. Na tym etapie powstaje lista dokumentów i ról użytkowników. Analitycy zapisują też dane wejściowe oraz miejsca, w których obecny proces się zatrzymuje. Zespół sprawdza także istniejące systemy, bo od nich zależy, czy aplikacja będzie musiała się z nimi integrować, czy je zastąpi.

Wytworzenie i testy

Po zatwierdzeniu zakresu programiści budują aplikację w iteracjach. Każda kończy się fragmentem, który da się uruchomić i obejrzeć, a testy obejmują logikę w bazie oraz interfejs. W praktyce najwięcej błędów wykrywa się przy danych przenoszonych ze starego systemu, dlatego migrację warto traktować jako osobne zadanie z własnym harmonogramem.

Reguła: zakres etapu musi być opisany tak, aby odbiór dało się sprawdzić bez interpretacji, czyli listą dokumentów i statusów, które mają działać.

Wdrożenie i przekazanie

Wdrożenie obejmuje instalację na środowisku docelowym, import danych początkowych i szkolenie użytkowników. Po odbiorze zamawiający dostaje dokumentację techniczną oraz opis konfiguracji, dzięki czemu wiedza nie zostaje wyłącznie w głowach programistów. Ten element odróżnia usługę software house od jednorazowego zlecenia dla freelancera, choć obie formy mają swoje miejsce.

EtapDokument lub artefaktKto zatwierdza
Analizaopis procesu i lista wymagańzamawiający
Projektmodel danych i szkice ekranówzamawiający i architekt
Wytworzeniewersja testowa aplikacjiosoby odpowiedzialne za proces po stronie klienta
Wdrożenieprotokół odbioru i dokumentacjazamawiający
Ilustracja biura software house z zespołem programistów pracującym przy monitorach z kodem
Etap wytworzenia to codzienna praca zespołu nad kodem i testami, poprzedzona analizą procesu zamawiającego.

Wsparcie i utrzymanie po wdrożeniu

System wdrożony do produkcji zaczyna się starzeć od pierwszego dnia: zmieniają się przepisy i procedury w firmie, a także wersje przeglądarek. Utrzymanie oznacza więc regularną pracę, a nie wyłącznie gaszenie awarii. W materiałach SoftwareStudio wsparcie posprzedażowe jest częścią oferty aplikacji dedykowanych, a szczegóły zakresu ustala się indywidualnie w umowie.

Rodzaje zgłoszeń

W praktyce zgłoszenia dzielą się na błędy, prośby o zmianę i pytania o obsługę. Błąd to zachowanie niezgodne z odebraną specyfikacją i zwykle naprawia się go w ramach gwarancji lub abonamentu. Prośba o zmianę dotyczy nowej funkcji lub innego przebiegu procesu i podlega wycenie. Pytanie o obsługę trafia do wsparcia pierwszej linii.

Parametry umowy serwisowej

Umowa serwisowa opisuje czas reakcji i czas usunięcia usterki dla poszczególnych priorytetów, okno serwisowe na aktualizacje oraz sposób zgłaszania. Konkretne wartości ustalają strony, dlatego w tym opisie nie podaje się liczb. Warto natomiast rozróżnić dwa parametry: czas reakcji, czyli moment pierwszej odpowiedzi, oraz czas naprawy, czyli moment przywrócenia działania.

  • Czas reakcji - liczony od zgłoszenia do pierwszej merytorycznej odpowiedzi wykonawcy.
  • Czas naprawy - liczony od zgłoszenia do przywrócenia funkcji, także rozwiązaniem obejściowym.

Szersze spojrzenie na obsługę informatyczną jako osobną usługę daje strona o outsourcingu IT w Poznaniu, gdzie punkt ciężkości leży na infrastrukturze, a nie na kodzie aplikacji.

Kopie zapasowe i ciągłość działania

Usługa software house obejmuje też decyzje o tym, ile danych można utracić i jak długo aplikacja może być niedostępna. Pierwszy parametr to RPO, czyli maksymalny wiek danych, które da się odtworzyć po awarii. Drugi to RTO, czyli czas od awarii do ponownego uruchomienia systemu. Obie wartości wynikają z procesu biznesowego, a nie z możliwości techniki, dlatego zamawiający powinien je podać już na etapie analizy.

Dla bazy SQL Server podstawą jest pełna kopia z sumą kontrolną i regularne sprawdzanie, czy plik da się odczytać. Sama obecność pliku kopii niczego nie dowodzi, bo uszkodzona kopia wychodzi na jaw dopiero przy odtwarzaniu. Polecenia poniżej to przykład ilustracyjny, a pełny opis opcji znajduje się w dokumentacji instrukcji BACKUP.

BACKUP DATABASE Aplikacja
    TO DISK = N'D:\Kopie\Aplikacja_full.bak'
    WITH CHECKSUM, INIT;

RESTORE VERIFYONLY
    FROM DISK = N'D:\Kopie\Aplikacja_full.bak'
    WITH CHECKSUM;

Reguła: kopia zapasowa jest wiarygodna dopiero po próbnym odtworzeniu na osobnym serwerze, a nie po samym zakończeniu zadania bez błędu.

Integracje z systemami zewnętrznymi

Aplikacja na zamówienie rzadko działa sama. Zwykle pobiera zamówienia z jednego programu, a wyniki oddaje do innego. Podstawy tego zagadnienia opisuje strona o integrowaniu aplikacji webowych. Poniższa tabela zestawia mechanizmy spotykane najczęściej, a dokumentacja ASP.NET Core Web API pokazuje, jak wystawia się interfejs REST po stronie serwera.

MechanizmJak działaGłówne ryzyko
Interfejs REST (JSON)system źródłowy wysyła żądanie POST, aplikacja odpowiada kodem 200 albo 4xx z opisem błędubrak ponowienia po przerwie w łączności
Baza pośredniajeden system zapisuje rekord, drugi odczytuje go w zadaniu cyklicznymduplikaty i rekordy w stanie niedokończonym
Plik w katalogu współdzielonymsystem źródłowy zapisuje plik, a aplikacja importuje go co określony czasodczyt pliku, który jeszcze jest zapisywany

Przy integracji przez bazę pośrednią ważne jest zabezpieczenie przed dublowaniem. Ten sam dokument może zostać przesłany dwukrotnie, gdy system nadawcy powtórzy wysyłkę po przerwie w łączności. Rozwiązaniem jest unikalny indeks na numerze zewnętrznym, który odrzuci duplikat już na poziomie bazy.

CREATE TABLE dbo.ImportZamowien (
    Id              INT IDENTITY(1,1) PRIMARY KEY,
    NumerZewnetrzny NVARCHAR(50)  NOT NULL,
    Tresc           NVARCHAR(MAX) NOT NULL,
    Status          TINYINT       NOT NULL DEFAULT 0,  -- 0 nowy, 1 przetworzony, 2 błąd
    UtworzonoUtc    DATETIME2(0)  NOT NULL DEFAULT SYSUTCDATETIME()
);

CREATE UNIQUE INDEX UX_ImportZamowien_Numer
    ON dbo.ImportZamowien (NumerZewnetrzny);

To przykład ilustracyjny, a nie schemat produktu. Pokazuje jednak zasadę: kontrola powtórzeń należy do warstwy danych, bo kod aplikacji nie zawsze widzi równoległe żądania.

Chmura prywatna i licencja subskrypcyjna

W oryginalnym opisie oferty SoftwareStudio model chmurowy oznacza brak zakupu licencji na własność i brak instalacji oraz administracji oprogramowaniem po stronie klienta. Aplikacje działają w profesjonalnym centrum danych ATM w Warszawie, na środowisku wirtualizacyjnym VMware vSAN. Szczegółowo temat rozwija strona o programach na zamówienie a chmurze i VMware.

Ilustracja serwerowni z szafami rack i monitorami, symbolizująca środowisko hostingowe aplikacji
Hosting aplikacji w centrum danych zdejmuje z klienta utrzymanie serwerów, ale nie zwalnia z odpowiedzialności za jakość danych.

Dla zamawiającego oznacza to inną strukturę kosztów. Zamiast jednorazowego zakupu licencji i sprzętu pojawia się opłata miesięczna lub roczna za dostęp do wybranej aplikacji i jej funkcji. Model ten ogranicza koszty utrzymania własnej serwerowni, ale wymaga spokojnej oceny, czy przy wieloletnim użytkowaniu łączna kwota nie przekroczy ceny zakupu na własność.

CechaLicencja na własnośćAbonament w chmurze
Wydatek początkowywysoki (licencja oraz sprzęt)niski, opłata cykliczna
Administracja serwerempo stronie klientapo stronie wykonawcy
Aktualizacjeplanowane i instalowane przez klientawdrażane przez wykonawcę
Dostęp do danychlokalnie, w sieci firmowejprzez przeglądarkę, z uwierzytelnieniem

Aplikacje mobilne na terminale i telefony

Część projektów wymaga pracy poza biurem: w magazynie, na placu lub u klienta. Dawniej takie rozwiązania powstawały dla kolektorów danych z systemami Windows CE i Windows Mobile, co opisuje strona o aplikacjach dla Windows CE i Mobile. Od 2015 roku oferta obejmuje aplikacje na terminale z systemem Android w wersji 4.x lub nowszej, a przykład zastosowania w magazynie pokazuje opis aplikacji magazynowej na Androida.

Ilustracja tabletów i telefonów wyświetlających ten sam system w chmurze na różnych urządzeniach
Aplikacja webowa i aplikacja mobilna korzystają z jednej bazy, więc dane widoczne na terminalu i w biurze pozostają spójne.

Praktyczna uwaga dotyczy wersji systemu: wersja 4.x była wskazywana jako minimalna w czasie wprowadzenia oferty w 2015 roku, a dziś o doborze urządzeń decyduje wsparcie producenta terminala i aktualny cykl wydań Androida, który opisuje dokumentacja dla programistów Android. Przy nowych wdrożeniach wybiera się więc sprzęt z aktualną wersją systemu.

Wycena i granice odpowiedzialności wykonawcy

SoftwareStudio wycenia projekty indywidualnie, ponieważ koszt zależy od liczby funkcji i integracji oraz od wymaganego terminu. Ogólne omówienie dostawcy usług o takim profilu zawiera strona o firmie informatycznej, a przy niejasnym zakresie pomaga wcześniejsza rozmowa doradcza opisana w artykule o doradztwie przy tworzeniu systemów IT.

Modele rozliczenia i podział ról

Ten sam zakres można kupić na kilka sposobów. Wybór modelu rozliczenia wpływa na to, kto ponosi ryzyko zmiany wymagań w trakcie prac, dlatego wart jest osobnego omówienia przed podpisaniem umowy.

ModelNa czym polegaKiedy pasuje
Stała cena za zakreskwota za opisany etap, zmiany wymagań wyceniane osobnozakres jest stabilny i dobrze opisany
Czas i materiałrozliczenie godzin zespołu wg stawekwymagania będą się zmieniać w trakcie prac
Abonamentstała opłata za utrzymanie i określoną pulę zmiansystem działa już produkcyjnie

Niezależnie od modelu podział ról pozostaje podobny. Zamawiający wskazuje właściciela procesu, który zatwierdza wymagania i odbiera etapy. Wykonawca odpowiada za projekt techniczny i jakość kodu. Sposób pracy zespołu w iteracjach opisuje osobno strona o współpracy z zespołem w Poznaniu.

Co wchodzi w wycenę

Rzetelna wycena zaczyna się od pytań, na które zamawiający potrafi odpowiedzieć bez wiedzy technicznej: ilu użytkowników będzie pracować w systemie, ile dokumentów dziennie przechodzi przez proces i z jakimi programami aplikacja ma się łączyć. Odpowiedzi pozwalają oszacować obciążenie bazy i liczbę interfejsów, a więc dwa czynniki, które najmocniej wpływają na pracochłonność.

Wycena obejmuje pracę analityczną i programistyczną oraz testy, do których dolicza się koszty wdrożenia. Osobno liczy się hosting, jeśli aplikacja ma działać w chmurze wykonawcy, i osobno utrzymanie. Rozdzielenie tych pozycji ułatwia porównanie ofert, bo część firm łączy je w jedną kwotę, co utrudnia ocenę.

Czego nie obejmuje usługa

Poza zakresem wykonawcy pozostają decyzje o przebiegu procesu. Nie należą do niego także dane wejściowe oraz uprawnienia w systemach zewnętrznych. Jeśli ERP klienta nie udostępnia interfejsu, integracja wymaga zgody i czasu dostawcy tego programu. Podobnie baza danych musi działać na wersji SQL Server objętej wsparciem: SQL Server 2016 zakończył okres rozszerzonego wsparcia w lipcu 2026, co potwierdza tabela cyklu życia w Microsoft Learn, więc starsze zalecenia dotyczące wersji 2012 i 2016 należy czytać z tą poprawką.

Reguła: przed podpisaniem umowy warto ustalić na piśmie, kto odpowiada za dane, kto za środowisko, a kto za integracje z programami trzecimi.

Demonstracja działania gotowych systemów SoftwareStudio jest dostępna w demo online, co pozwala ocenić styl aplikacji przed rozmową o zakresie projektu.