Snaga integracija u modernom softveru
Povežite proizvod sa alatima koje ljudi već koriste i napravite vezu tako da nastavi da radi.
Sadržaj
- Svaki proizvod živi unutar steka
- Sretnite ljude tamo gdje već rade
- Dvosmjerne veze pobjeđuju one samo za čitanje
- Gradite za loš dan
- Postavite autentifikaciju kako treba
- Zapišite ugovor o podacima
- Webhook poruke pobjeđuju stalno prozivanje
- Mjerite ono što isporučite
- Integracije prodaju proizvod
- Namjerno izaberite kratak spisak
- Kako mi pristupamo ovom poslu
Softverske integracije su tiha infrastruktura modernog proizvoda. Alat može odlično da obavlja jedan posao. Međutim, ako ne može da komunicira sa ostatkom korisnikovog steka, gubi od slabijeg rivala koji se povezuje svuda. Ukratko, ovaj tekst objašnjava zašto su softverske integracije važne i kako ih dobro projektovati. Naši softverski proizvodi primjenjuju ove ideje u praksi.
Svaki proizvod živi unutar steka
Prvo, nijedan ozbiljan biznis ne radi na jednom alatu. Posao teče kroz CRM, provajdera identiteta, knjigovodstvo, platformu za poruke i skladište podataka. Zato se proizvod bez veza prema tom steku ponaša kao ostrvo. Može da radi sasvim dobro, ali njegov domet staje na sopstvenoj ivici. Zapravo, kupci danas čitaju tanak spisak integracija kao znak upozorenja. Oni pitaju šta se dešava sa podacima poslije prvog mjeseca rada.
Sretnite ljude tamo gdje već rade
Drugo, dobre softverske integracije poštuju navike koje već postoje. Najgore traže od korisnika da napusti alat koji voli i nauči još jedan ekran. Najbolje se pojavljuju tačno tamo gdje korisnik ionako stoji: u niti za poruke, u tabeli, na kartici projektne table. Kao rezultat, usvajanje raste, jer niko ne mora da mijenja dnevnu rutinu zbog nove funkcije. Vrijednost stiže korisniku, umjesto da korisnik putuje do nje.
Dvosmjerne veze pobjeđuju one samo za čitanje
Treće, veze samo za čitanje povlače podatke i tu staju. One pomažu, ali ostavljaju korisnika da ponovo kuca iste činjenice. Dvosmjerne softverske integracije upisuju i nazad u drugi sistem. Na primjer, mogu da ažuriraju zapis u CRM-u, dodaju stavku u kalendar ili zatvore tiket podrške. Zbog toga trošak promjene konteksta pada na nulu. Projektujte svaku vezu kao dvosmjernu ulicu od prvog dana, čak i ako prvo izdanje nosi samo putanju čitanja.
Gradite za loš dan
Četvrto, softverske integracije moraju da otkažu dostojanstveno. Prekinute mreže, istekli tokeni, ograničenja brzine i tihe promjene šeme nisu rijetki granični slučajevi. Naprotiv, to je obična svakodnevica. Zato u svaku vezu ugradite ponovne pokušaje, prekidač kruga, red nedostavljenih poruka i jasna stanja greške. Prekidač kruga sprečava da jedan bolestan sistem obori cio proizvod. Iznad svega, nikada ne otkazujte u tišini. Veza koja stane bez riječi uči korisnike da ne vjeruju ni ostatku onoga što isporučite.
Postavite autentifikaciju kako treba
Peto, prijava nosi veću težinu nego što većina timova očekuje. Za vezu sa SaaS alatom, OAuth 2.0 sa tokenima za osvježavanje je razuman standard. API ključevi ostaju rezerva za interne sisteme koje sami držite. Pored toga, dajte korisnicima očigledan način da ponovo povežu prekinutu integraciju, da provjere opsege koje su odobrili i da opozovu pristup. Ti dosadni ekrani sprečavaju poplavu tiketa podrške.
Zapišite ugovor o podacima
Šesto, trajne softverske integracije počivaju na izričitom ugovoru sa verzijama. Bez njega, promjena na bilo kojoj strani pravi suptilne i skupe kvarove. Zato objavite formalnu šemu i mijenjajte njenu verziju namjerno. JSON Schema, Protocol Buffers i GraphQL rade taj posao. Isto tako, pustite svakog potrošača da zakuca verziju i nadogradi se po svom kalendaru. Niko ne zaslužuje prisilan skok na šemu koju nije birao.
Webhook poruke pobjeđuju stalno prozivanje
Sedmo, prozivanje je isto što i ručno osvježavanje pregledača. Webhook poruke isporučuju događaje čim se dese i skaliraju se na milione dnevno. Zato svaka veza koja tvrdi da radi u realnom vremenu treba webhook poruke za obavještenja i obične API pozive za usklađivanje. Štaviše, svaka takva poruka traži potpis, ključ idempotentnosti i jasna pravila ponovnog slanja. Bez njih, jedna ponovljena isporuka kvari podatke klijenta.
Mjerite ono što isporučite
Osmo, niko ne može da popravi skriveni problem. Kontrolna tabla za svaku vezu, sa stopama uspjeha, kašnjenjem i brojem grešaka, hvata nevolju prije nego što klijent pozove. Pored toga, dnevnik događaja po klijentu omogućava inženjerima podrške da sami uđu u trag kvaru, umjesto da traže od korisnika da ga ponovi. Ukratko, dobri instrumenti razdvajaju funkciju koja oduševljava od one koja sramoti.
Integracije prodaju proizvod
Deveto, kupci istražuju da li se jedan alat povezuje sa drugim mnogo prije nego što zakažu demo. Zato softverske integracije pripadaju izlogu, a ne samo mašinskoj sali. Dajte stranici sa spiskom, dokumentaciji i primjerima koda istu pažnju kao osnovnim funkcijama. Na primjer, jasno uputstvo za podešavanje umije samo da zaključi posao. Naš tim za usluge autsorsinga gradi taj sloj uporedo sa proizvodom.
Namjerno izaberite kratak spisak
Deseto, svaki tim se suočava sa istim pitanjem. Koje veze razvijamo sami, koje prepuštamo platformi kao što je Zapier, a koje odbijamo? Zdrava strategija imenuje pet najčešćih zahtjeva klijenata. Zatim ih rangira po uticaju na zadržavanje i posvećuje im odgovarajuće sate. Bez te discipline, integracije se gomilaju nasumično i nijedna ne dobija pažnju koja joj treba. Koristite naš procjenjivač projekta da izmjerite trud prije nego što se obavežete.
Kako mi pristupamo ovom poslu
U Square Software tretiramo integracije kao prave funkcije proizvoda, nikada kao sporedne zadatke. Zapisujemo ugovor, objavljujemo specifikaciju za API i isporučujemo stanja greške uporedo sa srećnim tokom. Katalog držimo kratkim, pa svaka veza ostaje u dobrom stanju. Cijene idu 35-55 EUR na sat. Ako želite da mapirate softverske integracije koje vašem proizvodu zaista trebaju, naša stranica za kontakt je pravo mjesto za početak.
Spremni da pokrenete svoj projekat?
Razgovarajmo o tome kako možemo pomoći da oživite svoje ideje uz softverska rješenja po mjeri.