CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Eric Wise

Business & .NET

I'm with Rocky

While I refuse to get into the holy war that is going on between TDD enthusiasts and Rocky, I must say that I found this post pretty much summed up everything I have to say on the TDD front.  Unit tests by developers are definitely not a replacement for a QA team.  Where I do employ tests most often is in tricky parts of business logic, complex calculations, etc.

The CRC method is the method I use for design.  It's straightforward, clean, and easy.  I would say the CRC link in his post is the hidden gem of the whole debate, more developers should use it.



Comments

Jeremy D. Miller said:

Eric,  

I think that every single pro-TDD holy warrior that blogged on this tried to say that TDD is not about replacing testing.  That's the major, but common, misconception that Rocky repeated in his response.  

Doubting TDD as an effective design technique is a completely reasonable point of view.  I've found it to be very effective in creating clean, maintainable code, but the learning curve wasn't all that gentle.

I am pleasantly surprised out of all of this to see how many people like to use CRC cards.  All my career all I've ever heard is people drone on about UML when responsibility driven design is so much easier to use and more intuitive.  A lot of people happily use CRC cards in addition to TDD, which isn't much of a surprise when you find out they were both invented/described by the same person.
# April 1, 2006 10:21 AM

Jeffrey Palermo said:

Eric,
I'm not sure what "holy war" you are referring to.  I wasn't aware that there was a war on.  I, too, enjoyed Rocky's post, and I love what he said about CRC-based design.  I completely agree that this is a better approach.

"Unit tests by developers are definitely not a replacement for a QA team."

Absolutely right again.
# April 1, 2006 6:54 PM

johnwood said:

Talking of CRC cards (or SRC cards in my case (services, responsibilities, collaborations)), they've never worked for me... not least because my handwriting sucks. It also feels a bit inefficient, a bit like playing out natural selection. I had considered creating a virtual "CRC cards session" application somehow, where you'd sit at the computer and collaboratively organize them on your screen. Developers aren't very social beasts after all, and that way you can browse the web at the same time. :)
# April 1, 2006 10:02 PM

Jeffrey Palermo said:

John,
There isn't one "magic" way to create software, but CRC works for me.  And I don't use index cards.  Sometimes it's on paper, a whiteboard, or maybe in my head for smaller stuff.  

About developers not being social:
That's one of my weaknesses that I try to work on.  Pair programming is one thing that forces me be be "social" and to communicate constantly.  Communication is a learned behavior, so I won't get better if I don't practice.
# April 2, 2006 8:09 AM

Eric Wise said:

If anything I'm too social, but I was a marketing minor.
# April 2, 2006 9:56 AM

johnwood said:

Jeffrey,
I'd be interested (as I'm sure would others) in hearing how exactly your CRC process works, like what the steps are you go through, what you do on paper, what you do in your head and how you work on this with your team mates. If you ever have the time to write a post on it.
John
# April 2, 2006 10:27 AM

JBarbatos said:

I second John's request. I just learning TDD, DDD and now CRC (looks interesting). I am very interested in seeing how someone else gets them to play together (I'm sure you ask 10 people, you get 10 responses). Seems like both DonXML and Scott Bellware's posts on this subject has gone by the wayside.
# April 2, 2006 11:13 AM

Josh said:

Did you just write "I refuse to get into the holy war", in a post you titled "I'm with Rocky"? With a straight face?
Speaking up to say which side you're on.... I'd call that getting involved.
# April 2, 2006 11:33 AM

Jeremy D. Miller said:

John,

There's a reason why there's multiple design methodologies out there.  I've bumped into plenty of people who simply cannot derive any possible meaning from a UML diagram.  CRC and responsibility driven design seems to be great for people that are more verbal as opposed to visual types that like graphical notations.

I happily use the RDD concepts behind CRC cards, but I can't make myself use the index cards either.
# April 2, 2006 1:31 PM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add
Check out Devlicio.us!