Many corporate programmers never get beyond looking at the source code as their basis of understanding business functions and how programs work. These programmers are, I believe, doomed never to understand vast amounts of important business functions or program code, because it is difficult to learn that way. They cant see the business function because when they are looking at the details in the code, they are looking at details that are rarely, if ever, executed. These programmers typically spend their programming careers bored and unhappy because they are focused on support of a tiny part of the corporate business function.
Once youre sure you understand the basic business process or application flow, you should be able to focus on any part of the process. Each corporate job has a well-defined flow of work (which was, before computers, a paperwork flow of inputs and outputs); each segment of a job also has a well-defined flow. If you understand the business functions and the information flow within a corporate job or corporate department, you will understand the purpose and basic content of all the computer programs that have been written to support them. The programs most often simply automate the manual method of performing the business function.
I almost never try to understand much about a business process or an application by just looking at the source code in the programs that support the applications. There is simply too much arcane detail in the programs to allow me to visualize the application flowor, for that matter, even the program flow.
A complex program like a radio frequency ( barcode -scanning) program, for example, may have thousands of lines of source code, with routines to handle every possible scanning, packing, or error condition. Before I get too involved in the detail of the individual routines, I want to focus on the program mainline before considering all the exceptions in the program. The basic program flow may be one-third of all the source code, and may not be easily identifiable or isolated from the exception routines, and some of the program routines (or sub-procedures) may no longer be valid because of changes to the data being processed , changed operational procedures, or program enhancements.