DEUS ENGINEERING — Početna

11 Pregled i kontinuitet

Modernizacija i održavanje softvera

Preuzimanje i održavanje aplikacija koje već koristite — nove verzije framework-a, zavisnosti i baze uvode se korak po korak, dok sistem ostaje u upotrebi.

Ishod: Softver na koji se već oslanjate ponovo može bezbedno da se menja.

Modernizacija je rad na starijem softveru na kome vaše poslovanje i dalje počiva: preuzimanje sistema, prelazak framework-a, izvršnog okruženja i baze na podržane verzije i održavanje posle toga. Sistem ostaje u upotrebi dok posao traje — svaka izmena izlazi zasebno, dovoljno mala da se pregleda, testira i isporuči, a svaki planirani prekid rada dogovara se unapred.

Ima smisla kada bi zamena sistema koštala više od popravke: proces je dobar, ali je kod zastareo, niko ga više dobro ne poznaje ili svako ažuriranje deluje rizično. Ako je prvo pitanje da li sistem uopšte vredi zadržati, počinje se tehničkim auditom.

Tipične potrebe

  • Poslovno kritična aplikacija na verzijama koje se niko ne usuđuje da nadogradi
  • Zavisnosti sa poznatim ranjivostima ili framework kome je istekla podrška
  • Programer ili agencija koja je napravila sistem više nije tu

Šta dobijate

  • Testovi i dokumentacija za ključne delove, pre početka nadogradnji
  • Nadogradnje i migracije u malim, testiranim izdanjima — bez pisanja svega od nule
  • Dalje održavanje: ažuriranja zavisnosti i bezbednosne zakrpe, ispravke i poboljšanja

Pristup

Kako teče rad.

  1. 01

    Primopredaja i pokretanje

    Pristup kodu, okruženjima i alatima za postavljanje predaje se i dokumentuje. Aplikacija se zatim gradi i pokreće samo iz repozitorijuma, da ništa ne bi zavisilo od nečijeg računara.

  2. 02

    Provere pre izmena

    Pre bilo koje nadogradnje uvode se automatske provere: lint, provera tipova, build i testovi za tokove od kojih poslovanje zavisi. Od tada ih prolazi svaka izmena.

  3. 03

    Nadogradnja u malim koracima

    Nadogradnje framework-a, izvršnog okruženja, zavisnosti i baze raspoređuju se tako da svako izdanje ostane malo. Migracije su verzionisane, a kada se neki deo zamenjuje, stari i novi rade uporedo dok prelazak ne postane bezbedan.

  4. 04

    Redovno održavanje

    Po dogovorenom rasporedu ažuriraju se zavisnosti i primenjuju bezbednosne zakrpe, uz ispravke i poboljšanja. Svaka izmena se beleži, pa sledeći inženjer može da nastavi tamo gde je posao stao.

Tehnologije

  • TypeScript
  • React i Next.js
  • Node.js
  • PostgreSQL
  • GitHub Actions

Inženjer koji radi ovaj posao je osnivač, Filip Volf — sarađujete direktno sa njim.

Pitanja

O ovoj usluzi.

Po čemu se modernizacija razlikuje od tehničkog audita i konsultacija o arhitekturi?

Tehnički audit se završava pisanim pregledom — nalazima, prioritetima i kompromisima — na osnovu kog vi odlučujete. Modernizacija je sam posao: nadogradnje, migracije i održavanje. Audit je dobar prvi korak kada niste sigurni šta vredi zadržati; kada je pravac već jasan, posao može da počne i bez njega.

Da li softver pišete ponovo, od nule?

Ne u celini. Softver koji radi nosi u sebi poslovna pravila nakupljena godinama, a novi sistem pisan od nule morao bi ponovo da ih otkrije. Umesto toga, postojeći sistem se nadograđuje i zamenjuje deo po deo, dok je u upotrebi; pojedini deo se piše iznova samo kada je to jeftinije od popravke.

Možete li da preuzmete sistem koji je napravio neko drugi?

Da — preuzimanje sistema je prvi korak ovog posla. Najbolje odgovara softveru sa frontendom u TypeScript-u, React-u ili Next.js-u i backendom na Node.js-u ili PostgreSQL-u. Najpre se kod, okruženja i postavljanje stavljaju pod kontrolu; obim i uslovi dogovaraju se pismeno pre početka rada.

Sledeći korak

Razgovarajmo o tome šta gradite.

Opišite šta treba izgraditi ili popraviti, kako se posao danas odvija i koja su ograničenja. Dobićete pitanja koja razjašnjavaju zahtev ili prvi predlog pristupa — imejlom, na srpskom ili engleskom.