"Joel Spolksy is wrong about my work" - Kent Beck

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • undefined

  • classy response from kent beck

  • 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.

  • Epic rebuttal fail.

  • Guru fight! Which one is right? Neither!

  • 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