I have become increasingly interested in the point at which an internal product stops being just a tool for one team and starts becoming a platform for many teams.
The obvious temptation is to build for reuse too early. We take one problem, imagine ten future use cases, and try to design a generic system that can support all of them. The result is usually a lot of abstraction and complexity before we have even proved that the underlying capability is valuable.
I think the better signal is repeated demand. When multiple teams are independently solving the same problem, or asking for the same capability in slightly different forms, there may be something worth turning into a platform.
The platform should emerge from a real need for reuse. It should make the common capability easier to adopt without forcing every team into the same workflow. The challenge is knowing when there is enough repetition to justify that investment, and when abstraction is simply getting in the way of building the product that users actually need.