Distance to debug
When thinking about debugging an issue, the degree of difficulty could be visualized as a distance. The longer the distance, the fewer tools you have available, and the harder (or impossible) it is to use them. The shorter the distance, the easier it is.
- Ability to attach a debugger (Is the application open to attachment?)
- Ability to change code (Can you change anything to add logging or test a difference?)
- Ability to read logs (Do you have access to where the logs are?)
- Physical distance (Do you have to connect cables, like for a devkit or mobile phone?)
- Virtual distance (Can you even connect to the network?)
- Virtual access (Can you access the ports required?)
- Permission (Are you authorized to debug or read logs?)
Using this, think of a mobile app. The shortest distance would be debugging it in a simulator/emulator on your development machine. A longer one would be debugging a customer device somewhere in the world.
Shorter distances mean easier debugging. They may have performance and security implications. How do you shorten your distance to debug? What are your thoughts on this concept?