Become a “Guru” of the app you support

While every application that come to support should have a documentation (support documentation,fix logs etc) , in real world at times you land up with absolutely nothing that comes close to it.

How do we get around this situation . Reverse engineering  is required in such cases. Knowledge of system analysis would be handy in such scenarios.

First step would be to understand what the main components of the system are. Consider  them to be a black box to begin with (ie don’t delve into what happens inside the component to begin with) . Next step is to figure the flow of data between these components, ie what does each component receives and what does it give out in return.

This should give you a fair idea of what the system is designed to do. Next step is to figure how it does it.

ie check of each component and figure out the processing that goes on within it.

There are various diagrams that you can prepare to help you understand this flow.

Data flow diagram : shows flow of data and details of data between components.

system context diagram : high level view of system

infrastructure diagram : details of databases , servers and other hardware components.

visio is a good tool  to use to show the flow.

Now how do we understand what is going on in a code of file that runs into a couple of thousand lines.

Again we use the same black box approach . skim through the code and and look at its functions or methods.  See what are the inputs or outputs of the functions and get a idea what it does ( function name would hopefully reveal its intention) . then come up with a  flow diagram for the code and that should be a good enough idea of the entire code without going through each and every line.

You don’t really need to know the language used for programming to get this done.