- Where is this method being used? - If I delete or change this method will anything break? ....
If you delete a method that has usages without searching for them, you're asking for trouble. Sure it's not a compilation error in python, but compilation can only show that the method is missing, not that changes are guaranteed to work.
If I delete a method, I automatically get a big red dot in the corner showing compilation errors (without compiling).
If I change a type from string to int in both my method and method signature, it automatically tells me every place that would break.
How do you find usages in a provable correct way in a dynamic language?
The main issues with large codebases are often not feature-based but rather maintenance and operational overhead related: undiscoverability, config hell, dependency hell, and scaling issues - and typing helps a little bit with one of those.