Divisions of labor (was: Development engineering)

Carlos Ribeiro carribeiro at gmail.com
Wed Sep 22 15:44:53 EDT 2004

On Wed, 22 Sep 2004 17:08:03 GMT, Cameron Laird <claird at lairds.us> wrote:
> This still leaves open the question of precisely what the
> alternative is--to have eager debugger-savvy friends?  I
> think there's more to it.  I'll likely return to this.

I think that the problem with debuggers is the same as with
optimization -- it's too easy to start doing it prematurely. At the
first sign of a problem, you fire up the debugger, and if you're not
careful, you'll start to think more about the effects than about the
causes. With a debugger, it's easy to see where does the bug manifest
itself, but it's still hard to understand the exact source of the
problem, if it's located far way from that point. Advanced debuggers
support limited forms of backtracking (mostly through special hardware
support or through virtualization), but for complex pieces of
software, I'm yet to see something like this that really works.

But there's a reason why debuggers are useful: there is a limit on how
many things we can keep track of inside our heads. For some people it
may be larger than average, but still there's a limit; and if you're
working with anything that's not strictly sequential, then it quickly
becomes unmanageable, even for the best programmer. That's where
debuggers are more useful. But in this case, mastering a debugger
turns out to be difficult, because it's not just a matter of walking
on the code step by step anymore; it's about installing probes to
check for interesting stuff at runtime, without causing any
undesirable side effect. It's more of a information management problem
than a programming problem, at this point -- to be able to install the
minimum number of probles in a way that we can still keep track of
what is going on realtime, and catch the problem at its origin.

Carlos Ribeiro
Consultoria em Projetos
blog: http://rascunhosrotos.blogspot.com
blog: http://pythonnotes.blogspot.com
mail: carribeiro at gmail.com
mail: carribeiro at yahoo.com

More information about the Python-list mailing list