"Subroutines used and internal / external"
When an application is developed, many times a routine is put in that program to do something (internal) ... lets say "Calculate Sales Tax".
Later on, someone needs another program to do something and it requires a Sales Tax calculation too ... so another programmer creates a Sales Tax routine in that program ... now when you do maintenance on a system, you have to find each program that has that Sales Tax routine in it ... that takes time as "Code Discovery" ... or you can find them for the programmers and list the programs that have to be updated ... doing the basic "Code Discovery" for them.
-----
Many places that use common routines create an External program (separate from the other programs) that contain common routines. The main programs Call those routines when they need to be used ... So, the Sales Tax Calculation is in one place for multiple programs to use ... making that Code Discovery and maintenance much faster.
-----
Organized places also have documentation on these External Subroutines so a BA or Programmer can look them up by function and get the program name.
You might check your documentation to see if there is documentation / Flowcharts on System Programs, Databases, Subroutines ... etc. to help with identifying stuff. If it isn't there, you might start to develop something and have the programmers update that documentation when new programs, routines, databases, tables, etc. are created ... Now when you write something, you can say Program XXX needs to be modified or database table ZZZ needs a new field ... along with your "AS-IS" / "TO-BE" documentation.