A computer-implemented method for finding candidates of qualified names for at least one simple name in a source code file to be compiled, the method comprising: receiving a source code file to be compiled, the source code file including at least one simple name for which a corresponding qualified name is required; parsing the source code file to determine the at least one simple name for which a corresponding qualified name is required and qualified names in the source code file; for the at least one simple name for which a corresponding qualified name is required, searching a source code graph to find potential candidate qualified names that correspond to the at least one simple name, wherein the source code graph comprises a first table mapping simple names to qualified names and a second table mapping qualified names to build system dependencies; upon receipt of a list of potential candidate qualified names from the source code graph, enriching the list of potential candidate qualified names with additional information, wherein enriching the list of potential candidate qualified names includes: determining an increase in time or resources to build the source code that a qualified name package, corresponding to a potential candidate qualified name included in the list of potential candidate qualified names, adds to the a build process; providing to a user the list of potential candidate qualified names including said increase in time or resources; determining, using the mapping of the second table, build dependencies and build targets for specific qualified names once a qualified name is chosen, by the user, from the list of potential candidate qualified names; and compiling the source code based on the determined build dependencies and build targets. receiving a source code file to be compiled, the source code file including at least one simple name for which a corresponding qualified name is required; parsing the source code file to determine the at least one simple name for which a corresponding qualified name is required and qualified names in the source code file; for the at least one simple name for which a corresponding qualified name is required, searching a source code graph to find potential candidate qualified names that correspond to the at least one simple name, wherein the source code graph comprises a first table mapping simple names to qualified names and a second table mapping qualified names to build system dependencies; upon receipt of a list of potential candidate qualified names from the source code graph, enriching the list of potential candidate qualified names with additional information, wherein enriching the list of potential candidate qualified names includes: determining an increase in time or resources to build the source code that a qualified name package, corresponding to a potential candidate qualified name included in the list of potential candidate qualified names, adds to the a build process; providing to a user the list of potential candidate qualified names including said increase in time or resources; determining an increase in time or resources to build the source code that a qualified name package, corresponding to a potential candidate qualified name included in the list of potential candidate qualified names, adds to the a build process; providing to a user the list of potential candidate qualified names including said increase in time or resources; determining, using the mapping of the second table, build dependencies and build targets for specific qualified names once a qualified name is chosen, by the user, from the list of potential candidate qualified names; and compiling the source code based on the determined build dependencies and build targets.