Collaborate on integrations first

27 May 2025

When you have a few systems to integrate together (for example frontend with backend, or two microservices talking to each other, or perhaps even your system integrated with a third-party), always start with the integration.

Always start with the integration.

Once, my team built frontend and backend separately, in parallel. We decided to integrate them after it’s all built and working. When we integrated, turned out auth was not working. Frontend was sending auth tokens as http-only cookies, while the backend was expecting in a header. Due to some infrastructure constains, we had to rework both parts.

As a result, we delayed the project by 2 weeks. 25% more than originally planned.

We could’ve built a dummy endpoint sending literally hello world, and integrated it with the frontend at the beginning. That would’ve saved us time to rework auth.

Writing your own code is easy. You can do it without talking to many people, you can test it locally, and if something doesn’t work, you can quickly fix it. The feedback loop is quick.

The feedback loop of any integration is slow. Sometimes it requires talking to other people, with busy schedules and strong opinions. Sometimes it requires manual configuration instead of fully automated deployment. Sometimes a build pipeline takes 30 minutes and you have to wait every time you fix something new.

Integrating work in unpredictable. Sometimes there is no documentation. Sometimes the integration relies on agreeing with someone. Sometimes you have to make an assumption and verify reality. There can be a lot of trial-and-error.

For those reasons, waiting with integration work is risky. It can derail the project, because you don’t know what to expect. The solution is simple:

Always start with the integration.