I have a good bit of app ideas. They are, in fact, very good.
I am a clever salesman, but I am not a very experienced builder. A wall I’ve recently hit is how to communicate results between two independent, custom-tailored applications. This need is called “integration” in software terminology.
An analogy for non-technical people: Think about the number of ways you can communicate with someone. By phone, by text, by mail, in person. Each mode of communication has pros and cons. A phone is great for organizing events and gathering information, but lacks the comfort of being face to face. Which is why phone-only marriages aren’t very popular. Based on what you want when you talk to someone, you talk to them in different ways.
Software developers do something similar. First they write applications that make decisions and process data the same way a person would. And occasionally, they need two different “people” to talk to each other to accomplish something. This is called integration.
Integration is the key to creating any good business out of software. Business are built by people, and combining software effort effectively is what delivers value in the end. Smart integration optimizes the efforts of your specialists and makes it easy to build a “best tool for the job” ethos.
Understandably, this perspective can be invisible to junior developers. Sometimes it’s a consequence of the “oneitis” that comes with mastering your first language. Integration is a mysterious fog and it’s never been important because all of your results came from the same syntax in the same runtimes.
But not all programs need the same resources, and not all languages have easy to maintain solutions. It isn’t until you build a number of useful applications in a variety of deployments that you are forced to confront the challenge of integration.
The challenge of integration is knowing the right thing to say, when to say it, and who to say it to. The reward is that it’s easy to follow the flow of conversation.
Put another way, the challenge is the difficult design of the integrations and the reward is the easy-to-understand data moving back and forth.
The most obvious integration solution is REST APIs, the celebrated standard for passing messages between applications with completely different deployments. Writing your first REST API for internal use is a rite of passage for the experienced developer ๐.