Vid någon tidpunkt i nästan varje säljcykel för företagsprogramvara dyker det upp en bild. Den visar logotyper. SAP. Salesforce. NetSuite. Shopify. QuickBooks. Rader av välbekanta ikoner arrangerade i ett rutnät, ibland förbundna med tunna linjer till en central logotyp i mitten. Undertexten är tydlig: den här produkten talar samma språk som allt annat du redan använder.
Den bilden är något av det mest vilseledande inom programvaruförsäljning, och alla på båda sidor av bordet vet det i tysthet.
Vad en integration faktiskt är
När en säljpresentation säger "integrerar med SAP", betyder det vanligtvis en av tre saker. För det första finns det en anslutning byggd av en tredje part som flyttar data i en riktning, enligt ett schema, med en mappningsfil som senast uppdaterades 2021. För det andra finns det ett Zapier-arbetsflöde som någon satte upp under testperioden och som har körts oövervakat sedan dess. För det tredje finns det en webhook som triggas av en specifik händelsetyp, vilket var det enda prospektet frågade om under demon.
Vad det nästan aldrig betyder är: det finns ett underhållet, versionshanterat, dubbelriktat datakontrakt mellan dessa två system, med felhantering, omförsökslogik, schemavalidering, övervakning, larm och en namngiven ägare i leverantörens organisation som är ansvarig för det när saker går sönder.
Gapet mellan de två beskrivningarna är där de flesta implementeringar av företagsprogramvara går fel.
Felläget ingen pratar om
Funktioner går sönder ljudligt. Om en knapp slutar fungera märker användarna det direkt. Supportärenden skapas. Någon söker en tekniker. Felet är synligt, tidsbestämbart, spårbart.
Integrationer går sönder i tysthet. En API-version fasas ut (deprecated) uppströms. En autentiseringstoken löper ut och avvisas tyst. Ett fält som tidigare innehöll ett numeriskt värde anländer plötsligt som en sträng, och det mottagande systemets parser hanterar det genom att spara noll. En rate limit nås klockan 02:00 under en batchsynkronisering, några poster hoppas över, och jobbet slutförs med statusen "success".
Datan är fel. Ingen vet om det. ERP-systemet visar ett lagersaldo; lagerhanteringssystemet visar ett annat. En rapport tas ut på torsdagen. Siffrorna stämmer inte med vad någon förväntar sig, men de är tillräckligt rimliga för att avvikelsen ska tillskrivas tajming. Det tar tre veckor och en manuell avstämningsövning för att konstatera att integrationen i tysthet har tappat poster i sex veckor.
Detta är inte en hypotes. Det är en beskrivning av något som händer konstant, i företag av alla storlekar, inom varje kategori av företagsprogramvara.
Ägarskapsvakuumet
Det djupaste problemet är inte tekniskt. Det är organisatoriskt.
När en funktion är trasig finns det en produktchef som äger den, ett ingenjörsteam som ansvarar för den och ett ärende på en roadmap som spårar den. När en integration går sönder ligger den ofta inte i någons backlog. Den byggdes av en konsult under implementeringen. Konsulten är borta. Leverantörens supportteam säger att anslutningen (connectorn) är en tredjepartskomponent. Tredjepartskomponentens förvaltare säger att problemet ligger hos uppströms-API:et. Uppströms-API:ets dokumentation uppdaterades senast när föregående version var den aktuella.
Integrationer är infrastruktur. De är inte funktioner. De hör inte hemma på en produkt-roadmap bredvid "lägg till dark mode". De hör hemma bredvid "håll databasen igång" – absolut nödvändiga, osynliga, oglamorösa och katastrofala när de försummas.
De företag som har insett detta behandlar varje externt databeroende som en teknisk prioritet av högsta klass. De versionshanterar sina integrationskontrakt. De skriver tester som körs mot riktiga externa system enligt ett schema. De larmar vid avvikelser i datavolym – för om ett flöde som normalt levererar 4 000 poster i timmen plötsligt levererar 40 är något fel, och det kan upptäckas utan att man läser själva posterna. De utser en ägare. Inte ett team – en person.
Vad du faktiskt bör fråga om
När du utvärderar programvara som kommer att behöva utbyta data med dina befintliga system, är logotypbilden fel sak att titta på. Frågorna som betyder något är rakare.
Vad händer när anslutningen går ner? Köar systemet och gör nya försök? Misslyckas det i tysthet? Varnar det någon? Finns det ett manuellt sätt att processa om datan, och vem kör det?
Vem äger den här integrationen i er organisation? Inte "vem byggde den" – vem ansvarar för att den är korrekt nästa år? Om svaret är en axelryckning är det ett ärligt svar, och du bör hantera det därefter.
Hur ser en schemaändring ut från er sida? När uppströmssystemet ändrar en fälttyp eller byter namn på en endpoint, hur får ni reda på det, och hur ser uppdateringsprocessen ut? "Vi släpper en ny version av connectorn" är inte samma sak som "vi varnar er 90 dagar i förväg, tillhandahåller en migreringsguide och stöder båda versionerna parallellt."
Kan jag få se felloggarna? Inte en demo av "the happy path" – felloggarna. Alla system som har kört integrationer i produktion i mer än ett år har felloggar. Vad står i dem, och hur åtgärdas dessa fel?
Datakontraktet är integrationen
Den förändring i tankesätt som faktiskt hjälper är att sluta tänka på integrationer som anslutningar mellan system och i stället börja tänka på dem som kontrakt mellan dataproducenter och datakonsumenter.
Ett kontrakt har en version. Det har en ägare på båda sidor. Det specificerar inte bara schemat utan även semantiken – vad betyder det här fältet, vilka är de giltiga värdena, vad händer om det är null. Det har en testsvit. Det har en process för ändringar. Det har ett sätt att meddela den andra parten när det har brutits.
Att bygga integrationer som kontrakt i stället för som connectors är mer jobb inledningsvis. Det är dock betydligt mindre jobb sett över en treårshorisont. Och det är det enda tillvägagångssättet som skalar bortom den punkt där en enskild person kan hålla hela datatopologin i huvudet.
Logotypbilden kommer inte att försvinna. Men nästa gång du ser den, är frågan du bör ställa dig inte "vilka logotyper finns där" – det är "vad är var och en av dessa anslutningar värda när något går fel klockan 02:00 på en måndag?"
Det svaret är integrationen. Allt annat är marknadsföring.