There are two places that information can come from: inside the system and outside of it. These are called Endogenous and Exogenous respectively and should be treated differently.
Code Coverage
I have heard hours of conversations about how some class AllBad.java is the problem, how it needs to be replaced and is badly written just to hear a little later that AllBad.java isn't all bad and wasn't even being called.
You have to know what code - what part of the system - is really being called. Which classes are involved and which methods inside them. At a bigger scale, which web service is involved or is the server that has the problem getting any of the hits?
You have to know what code - what part of the system - is really being called. Which classes are involved and which methods inside them. At a bigger scale, which web service is involved or is the server that has the problem getting any of the hits?
Breakpoint
Breakpoint debugging is available in some of the more feature-rich IDEs such as those from Borland, Zend and the like. While this is a tool, it's also a technique.
A good breakpoint debugging technique draws on excellent logic tools for dividing the problem space and getting the most information out of a give question using trial and error.
A good breakpoint debugging technique draws on excellent logic tools for dividing the problem space and getting the most information out of a give question using trial and error.
Trial and Error
This is one of the best ways of actively dividing the problem space. The interview question "what number am I thinking of" is based on this. When it's one dimension, things are pretty easy. If the number is higher, divide the lower numbers in two and ask again.
Dividing the problem space is the goal of debugging. Remove things that cannot be true so you are left with only what is possible.
Dividing the problem space is the goal of debugging. Remove things that cannot be true so you are left with only what is possible.
Prove it can't be solved
Someone walks up to your desk and shouts:
You have to fix this. It's shit. The whole thing is broken for the user, the database. The accounts team hate it. You've got to fix it.And you, being the obliging worker crack on with fixing the thing. You work through everything you know to get the thing working but can't seem to get it working at all.
Incubation
Just let it sit
First off, incubation is not of pretending to think about something while you post on twitter, download from iTunes, update your Facebook status and try the new voice recognition Google search.
Incubation is: letting it sit in your head, while you do some other things and finding an idea or a solution by stuff just moving around in your brain while you don't think about it.
First off, incubation is not of pretending to think about something while you post on twitter, download from iTunes, update your Facebook status and try the new voice recognition Google search.
Incubation is: letting it sit in your head, while you do some other things and finding an idea or a solution by stuff just moving around in your brain while you don't think about it.
Consult & Research
If you're really stuck then it's time to get some help.
Get your question into a form which is useful to other people. While it's amusing to get an error report explaining "I can't use the website..." because "I didn't go into work today", the point of debugging is to fix things as quickly as possible, not to spread more emails around the world.
Get your question into a form which is useful to other people. While it's amusing to get an error report explaining "I can't use the website..." because "I didn't go into work today", the point of debugging is to fix things as quickly as possible, not to spread more emails around the world.
Subscribe to:
Posts (Atom)