---
title: "Tworzenie oprogramowania na zamówienie"
description: "Usługi i integracje pisane na zamówienie w TypeScripcie, dostarczane w Twoim repozytorium, z dokumentacją do przejęcia."
language: "pl"
canonical: "https://zapolu.com/pl/services/custom-development/"
---

# Tworzenie oprogramowania na zamówienie

Nie każde wymaganie mieści się w gotowej platformie. Kiedy potrzebna jest
osobna usługa, warstwa integracyjna, narzędzie wewnętrzne albo
backend marketplace'u, budujemy to od podstaw w TypeScripcie,
ze spisanym zakresem, w Twoim repozytorium
i z dokumentacją na tyle dobrą, że po nas przejmie to każdy
kompetentny zespół.

## Co budujemy

- **Niestandardowe integracje** między e-commerce a systemami
  ERP / PIM / WMS, kiedy gotowy konektor pokrywa 80% przepływu,
  a brakujące 20% obejmuje procesy kluczowe dla Twojego biznesu
- **Narzędzia wewnętrzne**, które nie mieszczą się w panelu sklepu:
  silniki cenowe, obsługa zwrotów, dashboardy magazynowe, konsole
  obsługi klienta
- **Marketplace'y, backendy multi-tenant SaaS i usługi domenowe**,
  w których logika domenowa jest produktem
- **Migracje ze starszych systemów pisanych na zamówienie**, w których
  połowa wymagań jest udokumentowana, a pozostała część nie jest
  nigdzie spisana; pierwszym rezultatem jest wtedy udokumentowanie
  tego, co dotychczasowy system faktycznie robi

Kilka realizacji tego typu z minionych lat, w wersji
zanonimizowanej: automatyczny silnik przecen dla katalogu 123 000
produktów, sterowany przewidywaną z danych ERP liczbą dni do
wyprzedania, z pasmami reguł, śladem audytowym i mechanizmami
zabezpieczającymi tam, gdzie wynik automatu różni się od decyzji
człowieka; przeliczanie historii sprzedaży, które trwało 14 godzin,
zrównoleglone do 2,5 godziny, z ostatnio sprzedawanymi produktami
na początku kolejki, aby najnowsze dane były dostępne w pierwszej
kolejności; oraz migracja klientów między
platformami bez maila o resecie hasła, z weryfikacją względem
starego hasha przy pierwszym logowaniu i przezroczystym
przehashowaniem do nowego formatu, bez zapisywania hasła jawnym
tekstem gdziekolwiek po drodze.

## Jak budujemy

Każdy backend, który dostarczamy, stoi na tym samym szkielecie:

- **strukturalne moduły** z jawnie zadeklarowanymi
  zależnościami,
- **dependency injection**, z możliwością podmiany zależności
  w testach i per środowisko,
- **lifecycle hooks**, dzięki którym podsystemy uruchamiają się
  i zatrzymują we właściwej kolejności,
- **walidacja kontraktów przy starcie**: aplikacja z niekompletną
  konfiguracją zależności w ogóle się nie uruchomi. Błąd konfiguracji
  ujawnia się w kilka sekund przy starcie, a nie jako null-pointer
  exception trzy tygodnie po wdrożeniu.

Trzymamy się tej struktury, bo kod oparty na ukrytych założeniach
maskuje też scenariusze awarii, a nam zależy na oprogramowaniu,
które rok po uruchomieniu nadal daje się zrozumieć.

## Jak wygląda realizacja

- Praca odbywa się **w Twoim repozytorium, w Twojej organizacji**;
  kod jest Twój od pierwszej opłaconej faktury
- Testy i weryfikacja kontraktów działają w CI od pierwszego
  tygodnia, a nie jako faza stabilizacji na końcu
- Każdy deploy ma ścieżkę wycofania, a system rusza z podpiętymi
  logami, metrykami i alertami (jak operujemy tym, co budujemy,
  opisuje [DevOps i infrastruktura](/pl/services/devops/))
- Dokumentacja przekazania jest częścią dostawy, a nie uprzejmością:
  runbooki, notatka o architekturze i log decyzji

Kiedy trudniejsze od budowania jest zdecydowanie, co w ogóle
zbudować, to już
[projektowanie systemów i architektura](/pl/services/system-design/).
Realizujemy jedno i drugie razem albo osobno. Projekty o stałym
zakresie trwają zwykle 4–16 tygodni, fakturowane co tydzień; systemy
przewidziane na wieloletnie utrzymanie przechodzą potem na miesięczny
retainer.