Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re: Are debugging skills atrophying?

by imp (Priest)
on Oct 20, 2006 at 13:25 UTC ( #579576=note: print w/ replies, xml ) Need Help??

in reply to Are debugging skills atrophying?

I would agree that basic debugging skills are worse now than they were 10 years ago, but I would also say that basic math skills have deteriorated. Watch a group of friends try to determine what portion of a bill is theirs, and what size tip to leave and it is obvious. Blame the calculator.

With debugging it isn't quite as simple though.

When I first started programming I would sometimes write the program out on paper, and read through it while keeping track of all the variables. Being able to read code while keeping a mental list of what is happening is valuable when working in a group, but this skill is sometimes neglected due to the ability to run it in a debugger and watch certain variables.

My ideal development strategy is as follows:

1. Write the unit tests as a working specification document. This helps to identify flaws in the intended interface early in the development process.

2. Create mock objects that emulate the behaviour of the intended module, with fixed input/output. This allows you to verify that you have the necessary data at each step, and also allows you to verify the algorithms without external dependencies.

3. Implement the object.

This strategy leads to loosely coupled / tightly cohesive objects, which are easier to verify with testing and easier to isolate issues when debugging.

A similar strategy can be followed when debugging the code of your team members. Debugging manually is a very time consuming task, regardless of whether the debugging is done through code reading or with a debugger. Use this time more wisely and develop test cases that mirror the analysis you do during debugging.

Comment on Re: Are debugging skills atrophying?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://579576]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (10)
As of 2014-07-26 07:35 GMT
Find Nodes?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:

    Results (175 votes), past polls