Last updated : 12/01/2003; 16:03:32

Joe's Jelly

Joe Walnes rambling on and on about Software Development, Java and Extreme Programming.

NAVIGATION >>

/WIKI /WEBLOG /THOUGHTWORKS /OPENSYMPHONY /EMAIL

:: ELSEWHERE
xp developer wiki
c2 xp wiki
the server side
javaworld
sd magazine
jakarta

:: BLOGS
Ara Abrahamian
Mathias Boegart
Mike Cannon-Brookes
Paul Hammant
Aslak Hellesøy
Darren Hobbs
Patrick Lightbody
Charles Miller
Brett Morgan
Rickard Öberg
Joseph Ottinger
Mike Roberts
Chris Stevenson
James Strachan

:: INVOLVEMENTS
SiteMesh
QDox
MockDoclet
OSCore
OSUser
PropertySet
RichTags
Marathon
SiteMesh C++
Alt-RMI
Jelly MockTags
more...
:: BACKLOGS
December 2002
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
Nov   Jan



Click here to visit the Radio UserLand website.

Click to see the XML version of this web page.

joe@truemesh.com

:. 02 December 2002

  6:17:54 AM  

Coding in the Small. Test Driven Development: By Example by Kent Beck has changed my life in 48 hours. While I haven't completely gone test-first, I have radically changed the way I write code. Specifically, I'm using a lot more fine-grained interface-based designs in order to make testing with mock objects easier. My test-cases now actually demonstrate the logic instead of just blindly exercising methods after a bazillion lines of setup code. TDD has forced me to think about coding in the small so that I focus on exactly and only the portion I'm currenlty working on. Over the past 3 days, I've noticed... [bob mcwhirter]

Even Bob's catching the fever.

In my programming career I have had three major advances that have totally changed (for the better) the way I think about development.

  1. Getting my head around programming. Suddenly anything's possible.
  2. Getting my head around OO. Suddenly everything's cleaner.
  3. Getting my head around TDD. Suddenly everything has meaning.

For me, TDD is a specification, design and documentation tool. From writing a test alone you can specify what you want, derive an intuitive interface and end up with a snippet of code as an example of how to use it. With this specification in place you also have a goal, the green bar - your tools will tell you when you're done. And it's hard to practise TDD without components that are all munged together, so loose coupling tends to appear. The fact that you get unit-tests for free is also a nice bonus which allows daring refactoring.


Web-design by John Doe from open source web design.