Why integration maintenance (almost) ruined my life
I remember thinking that maintaining integrations would be straightforward.
It would just be one of many tasks that me and my team of engineers could take on. After all, there’d be few issues to manage, and if any cropped up, they couldn’t be too difficult to resolve. Right?
Once we began performing the actual work, my perspective flipped almost immediately. The experience was ultimately so bad that it inspired me and Shensi to build Merge (there’s a silver lining!).
While reliving my experience is anything but easy—I might need to go back to therapy after publishing this—, I want to share the challenges I faced and that any engineer will find themselves confronted with in a similar situation. I’ll also break down how Merge can save your sanity because I really, really don’t want more engineers to suffer like I did.
Want to hear more about my horrible experience in maintaining integrations? You can watch the recording of my webinar, "Integration Maintenance Ruined My Life! Stop it from ruining yours", to get the full scoop!
Integrations constantly broke
We built our integrations with the expectation that 3rd-party API responses would come back in a specific format—whether that’s a string, an array, an integer, etc.
As it turns out, careful planning often proved futile; 3rd-party APIs would have bugs that caused their responses to be in a different format, and that was enough to break our code.
There were a host of other scenarios that would also lead our integrations to break (some of these issues occurred less frequently, but they were painful to resolve nonetheless):
- There’s a backwards incompatible change to an API endpoint
- An endpoint gets sunsetted without any formal, proactive announcement
- Schema changes occur across a 3rd-party API’s fields
- An endpoint is temporarily unavailable (i.e. there’s an API outage)
- An API response includes null values
- An API response has an unexpected error status code
Regardless of the cause or who was to blame (more often than not, it was the 3rd-party API’s fault), my team was on the hook for diagnosing the issue, troubleshooting it, and resolving it as quickly as humanly possible.
Painful trade-offs had to be made
My team couldn’t hire more engineers to maintain our integrations. And yet, my team couldn’t delay other initiatives either, as we promised clients and/or executives that we’d complete them by a certain timeframe.
This naturally led our team to drown in work, and it forced us to make painful sacrifices when the workload got out of hand.
For instance, if several integrations were broken at once, which issues should we prioritize? Similarly, if several integrations were broken and we needed to build a critical product feature in a short timeframe, what should we focus on first?
In both situations (and others like them), we faced a steep opportunity cost no matter what we chose. And this, unfortunately, forced us to make decisions based on the group of stakeholders we felt most comfortable disappointing at a given point in time.
Work became uninspiring
As I mentioned earlier, our integrations routinely broke, and when they did, our team members would have to leave the project(s) they were working on to help out.
This constant context switching made it really hard for me and my team to engage in deep work; we simply couldn’t give ourselves fully to the projects we really cared about and that were most impactful for the business.
In addition, the integration maintenance work left us feeling uninspired. We weren’t creating anything new; we weren’t enriching anything. We were, to put it bluntly, tackling issues before more people yelled at us.
How Merge can help
Over the last few years, we’ve helped thousands of companies build countless customer-facing integrations across common software categories, from CRM to HRIS to file storage.
This broad exposure has given us the unique opportunity to discover and address a wide range of edge cases, which, in turn, allow us to offer more resilient integrations.
That said, integrations can, inevitably, still break. If and when they do, our team of partner engineers are extremely adept at diagnosing the issues and implementing the fixes quickly so that our clients (and their clients) are barely, if at all, impacted.
You can learn more about our maintenance capabilities, management features, and unified APIs by scheduling a demo with one of our integration experts.