@Anshul Garg
The problem our team was experiencing seems to be a problem caused by not providing the platform as a service but as an infrastructure.
For example, let’s say our team built a monitoring tool consisting of a set of Grafana and Prometheus.
One day, an inquiry comes from another team. “Hey, can our team also create and use a dashboard for Grafana that your team created?”
Then we reply, “Of course!”
The problem is that this is the beginning of a tragedy.
Gradually, other teams start using what we built, and after a few years, it becomes a huge legacy monolithic service.
We find it difficult to run this legacy and start asking other teams to do it.
“We’re going to take this service down and migrate it to a new service.
Can you separate them now?”
“Oh, but I’m busy right now... I’ll take care of it later.”
Taking down the legacy components used by all teams like this requires a lot of communication cost and effort.
Contrary to our team’s original role, before we know it, we start to become “notification bots.”
This is a problem our team faces, and in order to get out of it, the platform should be provided as a product service to provide abstraction, and the backend should be able to improve only under the responsibility of our team.