Debugger, agile process of the black sheep

  When you used to test-driven development (Test-Driven Development, TDD), you will find yourself less and less use debugger (debugger) - If you find what problems there are procedures that you should not use debugger grasp the bug, but should be a unit test cases to reveal the crux of the problem.    Because of fine-grained, complete coverage of unit test cases, each bug is very clear, therefore seldom needed a sophisticated debugging tools. 

  ———- 

  Uncle Bob's Software Craftsmanship Corner 

  Debuggers are a wasteful Timesink 

  By Robert C. Martin 
  November 29, 2003 
  Summary 
  As debuggers have grown in power and capability, and they have become more and more harmful to the process of software development. 

  Debuggers have become immensely powerful. A good debugger is a very capable tool. With it, an experienced developer can step through very complex code, look at all the variables and data structures, and stack frames; even modify the code and continue. And yet , for all their power, debuggers have done more to damage software development than help it. 

  Since I started using Test Driven Development in 1999, I have not found a serious use for a debugger. The kinds of bugs I have to troubleshoot are easily isolated by my unit tests, and can be quickly found through inspection and a few judiciously placed print statements. 

  I teach a lot of classes in C + +, Java, C #, TDD, XP, Patterns, etc. In those classes I often have the students write code. It is not unusual for me to find a student with his or her nose buried in a debugger, painstakingly stepping from line to line, examining variables, setting breakpoints, and generally wasting time. The bug they are tracking could be found through simple inspection of the code. 

  I consider debuggers to be a drug - an addiction. Programmers can get into the horrible habbit of depending on the debugger instead of on their brain. IMHO a debugger is a tool of last resort. Once you have exhausted every other avenue of diagnosis, and have given very careful thought to just rewriting the offending code, * then * you may need a debugger. 

Bookmark it: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Google
  • DotNetKicks
  • DZone
  • Furl
  • Netvouz

Tags:

Releated Articles


0 Comments to “Debugger, agile process of the black sheep”

No Comments. Send your comment.

Leave a Reply

You must be logged in to post a comment.