localhost.co.rs

Konsultacije arhitekture softvera

Kada sistem prestane da podnosi rast: utvrđujemo gde je usko grlo, gde treba da idu granice između delova i kojim redom se to popravlja — bez prepisivanja svega iznova.

Šta dobijate

  • Nalaz gde je usko grlo i zašto sistem koči
  • Crtež kako sistem treba da bude podeljen, čitljiv i netehničkom čoveku
  • Zapisane odluke sa razlogom, da se za godinu dana zna zašto je nešto tako
  • Procena šta će najskuplje koštati ako se ostavi kako jeste
  • Redosled poteza — šta prvo, šta može da čeka, šta ne treba raditi uopšte
  • Predaja tima, ako posao izvodi neko drugi

Tehnologije

C4 modelEvent StormingDomain-Driven DesignPostgresKafkagRPC

Audit ima najviše smisla pre nego što nešto pukne — kada estimate-ovi postaju “zavisi”, kada se isti problem ponavlja u tri različita feature-a, ili kada razmišljate o rewrite-u.

Čitamo kod, gledamo git istoriju, pričamo sa ljudima koji kod pišu i koriste. Tek onda crtamo. Rezultat su ADR-ovi i C4 dijagrami koje tim može da koristi sutra — ne prezentacija koja se pogleda jednom.

Primeri iz prakse

Radilo je za pedeset korisnika, sad puca na petsto. Sistem je napravljen dok je firma bila mala i tada je bio sasvim u redu. Sada se ruši u špicu, a niko ne ume da kaže gde je tačno usko grlo.

Svaka nova stvar dira pola sistema. Ono što je nekad trajalo dva dana sad traje dve nedelje, a procene su postale „zavisi”. To nije lenj tim — to je sistem bez granica između delova.

Dve firme se spajaju. Dva programa, dve baze, iste mušterije u oba. Treba odlučiti šta ostaje, šta se gasi i kojim redom, pre nego što se potroši godina na pogrešan redosled.