Many systems market themselves through their easy to use API.
"All you have to do is invoke this function, and it works!", they say.
A common story is one of a team adopting an easy to use system, then feeling blindsided once the system is entrenched. They find themselves taking more time to fix the system than it would have taken to build a home-grown implementation specific to their use case. Or more frustrating, they find themselves paying a lot of money to pay a support contract so they can reclaim their team's time spent troubleshooting.
If you are evaluating whether to use a third party system, really what you're looking for is for somebody else to absorb costs, so that you don't need to. That is all variants of cost, not just development cost.
cost = upfront cost + ongoing operational cost
the work to fix it when it breaks =
(one time) the time to learn how to fix it
+ (recurring) the time to make changes in accordance with new learning
Most teams neglect to consider the ongoing operational cost of systems when evaluating what to deploy.
How do you protect yourself from this? Don't rush to adopt. Ask yourself some questions first.
Third party solutions are legitimate short-cuts, but they are not free. If you don't understand what you're working with, then down the road it can cost you more than it would have to develop it yourself.
That's all for this essay. If you have a question or an interesting thought to bounce around, email me back at david@davidmah.com. I'd enjoy the chat.
This essay was published 2020-05-13.