Przejdź do treści
Zapolu

Tworzenie oprogramowania na zamówienie

Usługi i integracje pisane na zamówienie w TypeScripcie, dostarczane w Twoim repozytorium, z dokumentacją do przejęcia.

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)
  • 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. 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.

Powiązane usługi