
"Joel Spolksy is wrong about my work" - Kent Beck - bjclark
http://www.threeriversinstitute.org/blog/?p=29
======
raganwald
A note to all the people arguing about whether TDD is a good idea or not: You
are arguing about the colour of the bikeshed.

The problem with Joel and Jeff's podcast isn't that they disagree with TDD. If
you poll 100 random smart people on the subject, you will get a continuum of
answers.

The problem is that they then made a sweeping generalization about Kent Beck
and Robert Martin's experience and competence based on their disagreement. The
old, "If you don't develop software exactly as I do, you are an idiot" line.

I think Kent is right not to argue the fine points of TDD, because that isn't
the issue. The issue is that his competence and experience were attacked on
the basis of advocating TDD, and his response is to suggest that J&J are
unaware of his experience.

If someone wants to suggest that Kent is a very experienced guy but they don't
think TDD is a good idea for their project, I'm sure Kent is fine with their
stance on the matter.

------
dasil003
It sucks to have your life's work strawmanned like this by pop programmer
podcast banter. I hope Joel addresses it professionally.

XP/Agile/TDD (like any movement) is filled with rabid fanboys who misapply the
principles and try to ram them down everyone's throat, but it's rarely the
case that the inventors of popular methodologies are filled with the same
blind zeal. After all, their ideas were originally informed by first-hand
experience.

~~~
andreyf
Never heard of this guy before, but considering that he just wrote 3
paragraphs eloquently saying "Joel is an idiot" without saying anything about
how they disagree makes me think quite little of him. Ad hominem attacks are
rhetoric - meant to influence, not inform.

See How to Disagree, by PG: <http://www.paulgraham.com/disagree.html>

~~~
dasil003
Joel dragged him into this by name. Clearly he thinks Joel is attributing
ideas to him that he doesn't hold. Therefore it's not a matter of disagreement
--he may well fully agree with Joel's thesis--it's the demonization of his
work by misrepresentation. In that light his response seems measured and
appropriate.

~~~
Angostura
It may be measured, but it's not helpful.

Let's assume that Joel is neither stupid nor malicious. Therefore he is having
problems that presumably others are having. In this case it is useful to
actually set out the nature of Joel's error, rather than simply saying "Joel
is a dolt". Non-malicious criticism can often be helpful in letting you
explore _why_ people misunderstand you.

Of course my assumptions could be wrong - he could believe that Joel is being
malicious.

~~~
DougBTX
He could also believe exactly what he says, that Spolsky has a "lack of
knowledge of what I do and what I say".

FWIW, I think this is the post being responded to:
<http://www.joelonsoftware.com/items/2009/01/31.html>

------
lacker
Here's a transcript of the podcast I believe Kent is referring to. Judge for
yourself whether Joel "makes comments that make clear his lack of knowledge".

<http://www.joelonsoftware.com/items/2009/01/31.html>

I'd like to see Kent respond to Joel's specific points. E.g:

    
    
      The real problem with unit tests as I've discovered is that the type of changes 
      that you tend to make as code evolves tend to break a constant percentage
      of your unit tests.... 
      So the end result is that, as your project gets bigger and bigger, if you 
      really have a lot of unit tests, the amount of investment you'll have to make
      in maintaining those unit tests, keeping them up-to-date and keeping them 
      passing, starts to become disproportional to the amount of benefit that you 
      get out of them.

~~~
paul
I think I agree with everything Joel said in that post.

These crazy rules people come up with for "proper object oriented" programming
remind me of extreme religious rituals. You have to observe all these stupid
little rules or else your code will become impure you and will spend an
eternity in code maintenance hell.

I'll make a somewhat heretical claim even: Unit test are 20% useful
engineering, and 80% fad. They are great for tricky code with well defined
behavior (like a parser), but wasteful for most code.

~~~
dnene
I have the deepest respect for you and your writings, but exactly how much
maximum code coverage have you achieved and sustained for at least a month
using automated unit tests ?

Just wondering how long you've visited the region you're writing a travel
review about.

Unit tests are about confidence in the software. Automation is the mechanism
for sustained confidence. Engineering (and / or fad as you put it) is a
vehicle to get there.

~~~
axod
You can have 100% code coverage, and still not be testing anything. Unless
you're testing thoroughly the right parts, they're a false sense of security.

~~~
dnene
I agree with that. Its just an (imperfect) proxy measure of the depth / extent
of unit testing. Asking how much code coverage is likely to give a better
reflection of the effort behind unit testing rather than just a - "have you
done unit testing".

------
jwr
I found Joel Spolsky's opinions to be all over the spectrum. Sometimes he
posts well-researched pieces with intriguing conclusions. Sometimes he writes
uninformed rants, which show his lack of understanding of the subject matter.

This is not a problem if you carefully apply your own measure to whatever he
writes.

~~~
Hast
I'd say that his ideas on management are interesting and informed. But when he
starts talking development or technology he quickly becomes uninformed and
poorly researched.

The discussion they had a number of episodes ago regarding MVC "patterns" made
it clear that they had no fucking clue what they were talking about. And when
Wikipedia didn't give a fast answer they began guestimating instead.

------
pkaler
What has Kent Beck shipped?

Follow the advice of people that have shipped code. That is what I took from
the Stack Overflow podcast.

Seriously, what has Kent Beck shipped? The Chrysler Compensation program is
always brought up. But, I understand that the project was cancelled.

I'm not trying to troll here. I would have greater confidence in Kent Beck's
argument if I knew what he was actually capable of shipping.

~~~
projectileboy
JUnit, for one thing.

~~~
nostrademons
Eclipse as well.

~~~
hello_moto
Really? <http://wiki.eclipse.org/FAQ_Where_did_Eclipse_come_from%3F>

------
hoyhoy
Kent Beck's system is awesome if you want to subjugate a thousand programmers
working at a bank. In some sense, it is a very successful way of forcing
stupid people to build mediocre products under threat of economic violence.

------
huhtenberg
To quote from <http://www.yafla.com/dforbes/Coding_Horror_Strikes_Again>:

 _Coding Horror is an entertaining, sometimes even educational blog. Be
careful diving in headfirst, though, as the technical depth is generally so
shallow you'll be hitting the bottom before you've even broken through the
surface tension._

Based on what I have (managed to) read at CH I find this description to be
fairly accurate.

~~~
unalone
That's Jeff Atwood, not Joel Spolsky. Unless I'm mistaken about something.

------
hello_moto
It's quite interesting to see two kinds of technical guys arguing against each
other. On one side, we have the product guy, on the other, we've got the
consulting guy.

You've got Joel, Jeff, Paul Bucheit on the product side saying that "Yes,
automated testing and some of the OOP principles are great, but let's not go
as far as Uncle Bob"

Check out the SOLID principles. Some of the principles are alright, but when
Uncle Bob explained that Rectangle class thing, I don't know what to say other
than I just changed my mind leaning toward not to buy his "Clean Code" book.

On the other side, you've got Kent Beck, GoF, Uncle Bob, Martin Fowler, etc.
(and possibly Gilles Bowkett). They're what you would consider "war-proven":
they've done numerous "IT projects", leading a team of corporate developers,
probably making a website for clients, and etc.

I don't mean to be rude (and perhaps this is an overgeneralisation), but I
haven't heard any software product made by the consulting group. Yes, they
wrote code, but the code is based on requirements given by some clients that:

1) Change the requirements frequently 2) Keep cutting costs 3) Ask for more 4)
Cut more time

There's a huge different between writing code for commercial software that you
steer versus writing code driven by someone else who knows almost nothing
about software development but knows a lot how to save money.

Would you TDD-ed your UI code?

If you wrote API, yes, I can understand you do heavy unit-tests.

A side note for having your own unit-test framework: 1) Developers shouldn't
write them 2) Developers should provide minimal to enough unit-tests 3) Go
hire your own test team to do the rest

Developers aren't meant to be full-time testers. Testers aren't mean to be a
full-time developers.

What I'd like to see is a team like this: 1) Joel becomes the product manager
2) Paul Bucheit becomes the software architect 3) Jeff, Kent Beck and Martin
Fowler do the coding 4) Robert Martin and those infested TDD people can build
a full-blown suite of unit-test frameworks, acceptance test and etc.

Microsoft has a category for the people in (4), it is "SDET". For those of you
who think developers must write a comprehensive TDD (not just a minimum or
"just to pass"), here's a challenge to you: why don't you try and be SDET.
You'll see some of the serious full-blown test code, black-box, UI test code,
UI automation and a serious CI process. I'm sure the experience will make your
TDD and unit-test code look pale in comparison.

Google seems going to that (MS) direction slowly.

------
jwb119
classy response from kent beck

~~~
d0mine
Does "classy" mean a rant with no or little content and the only remarkable
thing about it is a famous author?

~~~
demallien
I'm thinking there may have been just a pinch of sarcasm behind the choice of
the word 'classy'...

------
darkhorse
I'm surprised nobody has mentioned Spolsky's significant bias in this
argument:

His company makes bug tracking software!

Of COURSE he wants to cast unit testing in a bad light - done properly, it
could put him out of business.

~~~
discojesus
I sincerely doubt anyone who runs a company that makes bug-tracking software
loses any sleep about software bugs being eliminated forever.

Regardless of what happens in the software industry, to-do lists ain't going
away any time soon.

------
dangrover
Epic rebuttal fail.

------
illume
Guru fight! Which one is right? Neither!

------
andreyf
What a well articulated ad hominem flame! So much confidence, and yet, no
content. Now that is art!

 _sigh_

<http://www.paulgraham.com/disagree.html>

