Kada dva sistema treba da razmene podatke bez čoveka između njih, piše se integracija. To se pojavljuje i na sajtu, i u Windows programu, i u Office dodatku — ali je svuda isti posao i nosi isti rizik: polovina koda zavisi od tuđeg sistema koji ne kontrolišete i koji se menja bez najave. Zato je izdvojen kao zasebna usluga, sa svojom analizom i svojom cenom.
Pola posla nije u vašim rukama
Kod koji ja pišem mogu da popravim za sat vremena. Servis sa druge strane ima svoja pravila, svoje kvote i svoje kvarove, i tamo se čeka. Sve što sledi na ovoj stranici napisano je zbog te jedne rečenice.
Prolazi kroz sve ostalo što radim
Ista integracija se ugrađuje u sajt, u Windows program ili u Office dodatak. Menja se samo ekran oko nje, a težina posla ostaje ista.
Vidi se šta je poslato
Svaka integracija dobija evidenciju: šta je poslato, šta je vraćeno i kada. Bez toga se posle svake nesuglasice raspravlja bez dokaza, a sa njom se za minut vidi na čijoj strani je greška.
Šta radim
Šest vrsta posla. Prve tri su najčešće i najviše ih ima u portfelju.
Povezivanje sa tuđim servisom
Vaš softver zove tuđi: naplata karticom, knjigovodstveni servis, kurirska služba, dobavljačev cenovnik, SMS ili elektronska pošta. Piše se poziv, obrada odgovora, ponašanje kada odgovora nema i evidencija koja ostaje za proveru.
Dvosmerna sinhronizacija
Dva sistema drže iste podatke i oba ih menjaju — sajt i ERP, prodavnica i skladište, CRM i knjigovodstvo. Ovde se najviše posla krije u pitanju čija izmena je novija i šta se radi kada su obe strane menjale isti zapis.
Popravka integracije koja je stala
Radilo je godinama, pa je tuđa strana ugasila staru verziju, promenila način prijave ili uvela ograničenje broja poziva. Ulazim u zatečeni kôd, nalazim šta se promenilo i vraćam vezu u rad, bez obzira ko ju je pisao.
Vaš sopstveni API
Kada tuđi softver treba da uzima podatke od vas — partner, aplikacija, sajt ili klijentov sistem — pravi se vaš API: pristupni ključevi, prava, ograničenje broja poziva i uputstvo po kome tuđi programer radi bez zvanja telefonom.
Naplata i elektronske fakture
Plaćanje karticom, povraćaji i pretplate, kao i slanje na sistem elektronskih faktura. Ovo je poseban slučaj jer greška ne košta vreme nego novac, pa se radi sa ponovnim pokušajima koji ne mogu dvaput da naplate isti iznos.
Prenos i uvoz podataka
Jednokratno prebacivanje iz starog sistema u novi ili redovan uvoz cenovnika i stanja od dobavljača. Kada je posao pre svega u samoj bazi — šema, indeksi, čišćenje — to je rad nad bazom podataka.
Zašto je ovo poseban posao, a ne deo izrade
Kada pravim ekran, bazu ili izveštaj, znam sve učesnike i sve mogu da ispravim. Kod integracije to nije tačno, i zbog toga se drugačije procenjuje, drugačije testira i drugačije naplaćuje. Ovih šest stvari se pojavljuje skoro u svakom takvom poslu:
- Dokumentacija ne odgovara stvarnosti. Polje koje po uputstvu uvek postoji ponekad stigne prazno, a primer iz dokumentacije vraća grešku. Prvi deo posla je da se utvrdi kako se servis zaista ponaša, a ne kako piše.
- Prijava i ključevi. Lozinka, token koji ističe, OAuth prozor u kome neko mora da klikne, sertifikat sa rokom. Svaki od tih načina drugačije se obnavlja i svaki ume da obori vezu u tri ujutru.
- Ograničenja broja poziva. Servisi računaju pozive i naplaćuju ih ili ih odbijaju. Zato se pravi red čekanja i pamti šta je već preuzeto, umesto da se svaki put povlači sve.
- Tuđa strana se menja bez najave. Verzija se gasi, polje menja naziv, uslovi se pooštre. Integracija se piše tako da se to vidi odmah i na jednom mestu, a ne kroz tri meseca po pritužbi kupca.
- Greške koje dolaze i prolaze. Servis padne na dva minuta. Posao ne sme ni da stane ni da se izvrši dvaput — zato ponovni pokušaji i pravilo da isti nalog ne može biti poslat dva puta.
- Probno okruženje nije produkcija. Testni servis često prima ono što pravi odbija. Deo posla se zato može zatvoriti tek na vašim stvarnim podacima i vašim nalozima.
Zbog svega toga integracija i na drugim stranicama nosi svoju cenu — na primer kod Office dodataka odvojen je lokalni posao od onog sa vezom ka tuđem servisu. Ovde je taj deo posla opisan na jednom mestu, da se ne bi ponavljao pet puta. Integracija veštačke inteligencije je poseban slučaj iste priče: i to je veza sa tuđim servisom, samo što tamo odgovor na isto pitanje ne mora dvaput biti isti, pa ima svoju stranicu i svoju analizu.
Urađeno
Integracije su prisutne kroz ceo portfelj, jer se pojavljuju u svakoj vrsti softvera koju radim.
- Sve integracije — petnaestak radova, od razmene sa knjigovodstvom do preuzimanja podataka od dobavljača.
- Naplata i e-trgovina — Stripe Checkout, naplata na sajtu i u prodavnici.
- Poslovni servisi — Xero za knjigovodstvo, Dropbox za razmenu datoteka.
- Automatizacija — poslovi koji se izvršavaju sami, noću, bez otvorenog prozora.
Dva gotova proizvoda su nastala baš iz ovakvog posla: SEF dodatak za Excel i Word-GPT VSTO dodatak.
Kako posao ide
- Kažete koja dva sistema treba povezati i šta bi trebalo da se dešava — na primer „kada kupac plati na sajtu, faktura da uđe u knjigovodstvo".
- Analiza tuđeg API-ja. Čitam dokumentaciju, pravim probne pozive vašim nalogom i utvrđujem šta je uopšte moguće. Ovo je jedini deo koji se ne može preskočiti, jer se bez njega ne zna ni cena ni da li posao ima rešenje.
- Ponuda za dogovoreni obim. Posle analize dobijate fiksnu cenu i spisak slučajeva koji su pokriveni, uključujući i ono što se radi kada tuđa strana ne odgovori.
- Rad na probnim nalozima gde god ih tuđi servis nudi, pa provera na vašim podacima pre puštanja u rad.
- Predaja. Dobijate kôd, ključeve na svoje ime, evidenciju poziva i kratko uputstvo šta da uradite kada tuđa strana promeni pravila.
Cene
Isti raspored kao kod ostalih usluga: prvo analiza, zatim zahvat sa poznatom ulaznom cenom, a sitne dorade po satu.
Prvi korak
Analiza se plaća i poručuje prva, a odbija se od cene posla ako nastavimo. Ako se ispostavi da tuđi servis ne dozvoljava ono što vam treba, to ćete saznati posle analize, a ne posle plaćenog razvoja.
Zahvati
Manje izmene na integraciji koja već radi ne moraju da idu kroz zahvat: za njih postoji rad po satu, gde se plaća utrošeno vreme. Ceo cenovnik stoji na stranici cena.
Na šta se obavezujem
Šta nije obuhvaćeno cenom
Pišem ovo da biste cenu razumeli pre porudžbine, a ne posle. Sve sa spiska mogu da uradim, ali se dogovara i naplaćuje posebno.
Šta da pripremite pre početka
Vlasništvo i izlaz
- Nalozi i ključevi glase na vaše ime. Pristup tuđem servisu otvarate vi, pa veza nastavlja da radi i ako se nikada više ne čujemo.
- Izvorni kôd je vaš, zajedno sa opisom svih poziva koji se koriste.
- Evidencija ostaje kod vas. Zapisi o poslatom i primljenom čuvaju se na vašem serveru, a ne kod mene.
- Bez posrednika u sredini. Vaš softver zove tuđi servis neposredno; ne uvodim svoj server kroz koji bi vaši podaci morali da prolaze.
Često postavljana pitanja
Koja dva sistema treba da razgovaraju?
Napišite koji su to sistemi i šta bi trebalo da se dešava. Ako je veza moguća, reći ću vam kako se radi i koliko otprilike košta; ako nije, reći ću i to, pre nego što bilo šta platite.
Pošaljite upitUglavnom odgovaram isti dan.

Ostavite odgovor