Pređi na sadržaj

Kako promeniti partnera za razvoj softvera, a da ne izgubite projekat

Strahinja Polovina · Strategija8 min čitanja

Većina vodiča govori o tome kako se bira softverski partner. Malo ih govori o tome kako se od njega odlazi, iako je to često teža odluka. Sistem je već u produkciji, ljudi se na njega oslanjaju svakog dana, a jedini tim koji ga potpuno razume upravo je onaj u koji više niste sigurni. Ovakve projekte redovno preuzimamo, i oni koji prođu dobro imaju nešto zajedničko: naručilac je izlazak isplanirao pre nego što ga je najavio.

Znaci da je vreme za promenu partnera

Svaki angažman ima loš mesec. Važno je da li se problemi objašnjavaju i rešavaju ili se samo ponavljaju. Ovo su obrasci koji, ako potraju dva ili tri kvartala, obično znače da se odnos neće oporaviti:

Probijeni rokovi bez obrazloženja. Kašnjenje sa jasnim uzrokom i novim planom je normalno. Kašnjenja koja stižu kao iznenađenje, a da se način rada pritom ne menja, upravljački su problem koji izvođač ne rešava.

Samo izvođač ume da pusti izmenu. Ako za puštanje izmene u produkciju treba baš određena osoba kod izvođača, vi sistem ne posedujete u potpunosti, a što to duže traje, odlazak postaje skuplji.

Svaka izmena košta više od prethodne. Sve veće procene za sličan posao najjasniji su znak kodne baze koju je sve teže menjati i tima koji taj dug ne otplaćuje.

Tim se stalno menja. Nova lica svakog kvartala i bez dokumentacije znače da znanje odlazi sa svakim čovekom. Pitajte ko od ljudi iz prvog meseca još uvek radi na vašem projektu.

Ako važe dva ili više ovih znakova, sprovedite čeklistu za izbor partnera za razvoj softvera na sadašnjem izvođaču, kao da ga upoznajete prvi put. Ponekad iskren razgovor i drugačije postavljena saradnja reše stvar. Češće samo potvrde ono što ste već naslućivali.

Šta osigurati pre nego što bilo kome kažete

Redosled je važniji od izbora novog izvođača. Pre nego što objavite promenu, pa i pre ozbiljnih razgovora sa zamenom, proverite da vaša firma, na svoje ime, drži sledeće:

OSIGURAJTE PRE RAZGOVORA
  1. Administratorski pristup svakom repozitorijumu koda, uključujući i one koje koristi samo CI izvođača
  2. Vlasništvo nad cloud nalozima, domenima, DNS-om i nalozima u prodavnicama aplikacija, na ime vaše firme
  3. Svaku tajnu i svaki pristupni podatak: API ključeve, lozinke baza, sertifikate za potpisivanje, naloge kod trećih strana
  4. Rezervne kopije baza koje ste bar jednom sami uspešno vratili
  5. Svu postojeću dokumentaciju, koliko god bila tanka: beleške o arhitekturi, runbookove, korake za deploy
  6. Spisak svih spoljnih servisa od kojih sistem zavisi i ko ih plaća

Većina ovoga bi po ugovoru već trebalo da bude vaša. Proverite odredbe o intelektualnoj svojini, obavezama pri primopredaji i otkaznim rokovima, i zadržite profesionalan ton: saradnja tima koji odlazi biće vam potrebna još nedeljama posle odluke.

Pristup sopstvenom sistemu najjeftinije je osigurati pre nego što iko zna da odlazite.

Plan primopredaje u etapama

Najrizičniji način da promenite partnera jeste jedan datum prelaska. Primopredaja u etapama drži sistem u radu i daje novom timu vremena da ga upozna dok stari tim još može da odgovara na pitanja.

Nedelje 1-2: praćenje. Novi tim čita kod, postavlja sopstvena okruženja i gleda kako tim koji odlazi pušta izmene i rešava incidente. Cilj je pisana mapa sistema: komponente, tokovi podataka, integracije i delovi koje niko ne razume.

Nedelje 3-4: izmene pod nadzorom. Novi tim pravi male, stvarne izmene i sam ih pušta u produkciju, a stari tim ih pregleda. Tu isplivavaju dokumentacija koja nedostaje i krhki koraci builda, i bolje je da isplivaju sada nego usred ispada.

Nedelje 5-8: preuzimanje po oblastima. Odgovornost prelazi oblast po oblast: prvo delovi sa najboljom pokrivenošću testovima, na kraju oni sa najviše rizika. Izvođač koji odlazi ostaje dostupan, najbolje uz mali mesečni paušal, dok se ne preda i poslednja oblast.

Odolite porivu da sve prepišete čim novi tim stigne. Novi partner koji predlaže da se sve izgradi iznova pre nego što je razumeo sistem ponavlja grešku od koje bežite. Prvo stabilizujte, pa unapređujte modul po modul, pristupom koji opisujemo u tekstu o modernizaciji nasleđenog sistema bez pisanja od nule.

Izbor sledećeg partnera

Drugi izbor treba da bude strožiji od prvog. Pitajte kandidata kako je ranije preuzimao sisteme i tražite anonimizovan plan primopredaje sa stvarnog projekta. Dogovorite naplatu po etapi umesto otvorenog ugovora po satu i ugovorite dokumentaciju kao isporuku, ne kao uslugu iz ljubaznosti. Iznad svega, proverite da li bi odlazak od novog partnera bio lak, jer je najbolja zaštita od toga da ovaj tekst ikada ponovo čitate odnos koji možete jeftino da okončate.

Česta pitanja

Kada treba promeniti partnera za razvoj softvera?

Kada problemi prestanu da se objašnjavaju i počnu da se ponavljaju: probijeni rokovi bez obrazloženja, sistem koji samo izvođač ume da pusti u produkciju, sve skuplja svaka izmena i tim koji se stalno menja. Jedan loš mesec je normalan, a obrazac koji traje dva ili tri kvartala je signal.

Kako promeniti izvođača, a da ne izgubite projekat?

Osigurajte kod, infrastrukturu, pristupne podatke i rezervne kopije pre nego što objavite promenu, a primopredaju radite u etapama: novi tim prvo prati, zatim pušta izmene pod nadzorom, pa preuzima jednu po jednu oblast dok je stari izvođač još dostupan.

Koliko traje primopredaja softvera?

Za tipičan poslovni sistem, četiri do osam nedelja preklapanja starog i novog tima. Sistemi bez dokumentacije ili bez testova traju duže, jer novi tim to znanje mora najpre da rekonstruiše.

Da li softver treba prepisati kada se promeni partner?

Kao prvi korak gotovo nikada. Novi partner treba da stabilizuje sistem i da ga razume pre nego što predloži izmene. Delove menjajte samo tamo gde za to postoji jasan razlog, modul po modul.

Preuzimate projekat od drugog izvođača?

Počnite od besplatne dijagnoze: pregledamo kod i infrastrukturu, mapiramo rizike i dajemo vam plan primopredaje koji zadržavate.