Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Jolt Awards

The 14th Annual Software Development Jolt and Productivity Awards


Test-Driven Development: A Practical Guide
David Astels (Prentice Hall PTR, 2003)

“This award isn’t just for me. It’s for all the people who have been talking about Test-Driven Development and its benefits, and mostly for those who contributed material to the book in areas where they’re the experts.”

—David Astels

This book describes in exquisite detail techniques and tools used in Test-Driven Development (TDD)—and it accomplishes the task in a friendly, readable style.

Test-Driven Development: A Practical Guide uses Java (and JUnit) for all the examples in the text. Appendices outline how to use TDD with Ruby, Smalltalk, C++, .NET, Python and Visual Basic.

Best of all, the book addresses two of the difficult areas of TDD. Testing one class often requires the services of another, but it can be tricky and time-consuming to set up the supporting class correctly. TDD advocates creating mock testing classes, which generate the expected return value for each expected set of input values. Further, Astels introduces us to the MockObjects Framework, the MockMaker and EasyMock tools.

Another difficult area is GUI testing. Here, Astels recommends the Jemmy tool or developing an Ultra-Thin GUI. Jemmy wraps an “operator” object around existing Swing components, allowing you to manipulate the GUI components through code, as if the code were a user. The Ultra-Thin GUI accomplishes almost the same thing. In this case, the GUI is so thin that the GUI is “tested” by testing the layer immediately below it.

The book ends with a detailed example of a project, demonstrating and explaining each incremental test and the code to go with it. Altogether, Test-Driven Development: A Practical Guide is thorough, clear and relevant to our main job: coding.

—Hugh Bawtree

About Face 2.0: The Essentials of Interaction Design
Alan Cooper and Robert Reimann (Wiley, 2003)

Offering advice on matters of posture, consideration, appearance and behavior, About Face 2.0 is to software developers what Emily Post’s Etiquette is to debutantes. Cooper and Reimann’s pragmatic bible is applicable no matter what technological fork you use, and should be required reading for any aspiring developer making his foray into polite software society.

The authors question interaction design practices that have become the de facto standard by virtue of ubiquity, and encourage developers to think outside the Microsoft box. Developers may be surprised to learn that getting their applications to work is only the beginning. About Face 2.0 provides developers with the techniques to give their applications a virtual makeover.

—Donna Davis

Agile Database Techniques: Effective Strategies for the Agile Software Developer
Scott W. Ambler (Wiley, 2003)

This isn’t some lofty tome about crafting perfect schema in idyllic academia; it’s about building quality, high-performance enterprise applications in the realm of troll-like data architects, verdigris-encrusted legacy databases and constantly changing requirements. Ambler provides hardnosed advice and specific guidelines drawn from his own experience, with a ruthless disregard for anything that doesn’t advance the task at hand. (Hear ye the man who championed 3x5 index cards for an honorary Jolt Award: “Models and documents don’t need to be perfect; they just need to be barely good enough.”)

—Rick Wayne

Code Reading: The Open Source Perspective
Diomidis Spinellis
(Addison-Wesley, 2003)

Most programming books, says author Diomidis Spinellis, teach us how to program, but we actually spend more of our time reading code others have written so that we can understand and perhaps modify it. That insight led Spinellis to mine the NetBSD Unix distribution and other open source software (OSS) projects for real-world examples that illustrate techniques for identifying good—as well as bad—code. It’s one thing to learn from toy examples, and quite another to learn from OSS project code that has improved through multiple revisions. But to identify good code, first you have to read it, and Spinellis shows us how to—efficiently. Ultimately, from reading others’ code, we learn to write better code ourselves.

—Warren Keuffel

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.