Object Mentor Blog

blog.objectmentor.com · Company blog · on HN since 2007

Blog of Object Mentor, where Robert "Uncle Bob" Martin and colleagues wrote on test-driven development and software craftsmanship.

What HN saysHN commenters link it in TDD debates, one saying "TDD Derangement Syndrome" made them least skeptical of TDD and another pointing to the nuance in "TDD Triage".
47HN people shared it
15linked it in comments
51stories submitted
1.3Kstory points
15 years agolast shared
2007people per year2026

Most-shared posts

  1. 1
    Papers Every Programmer Should Read (At Least Twice)
    3 people · 574 points · first shared 2009 · 26 comments on HN
  2. 2
    Ending the Era of Patronizing Language Design
    3 people · 81 points · first shared 2009 · 57 comments on HN
  3. 3
    A Mess is not a Technical Debt
    3 people · 52 points · first shared 2009 · 33 comments on HN
  4. 4
    TDD Derangement Syndrome
    3 people · 29 points · first shared 2009 · 43 comments on HN
  5. 5
    An Open Letter to Joel Spolsky and Jeff Atwood
    2 people · 7 points · first shared 2009 · discussion on HN
  6. 6
    TDD Triage
    2 people · 2 points · first shared 2009 · discussion on HN
  7. 7
  8. 8
    The Duct Tape Programmer (Response from Uncle Bob Martin)
    1 people · 118 points · first shared 2009 · 77 comments on HN
  9. 9
    Saying "NO"
    1 people · 91 points · first shared 2009 · 31 comments on HN
  10. 10
    Python's Mutable Default Problem
    1 people · 68 points · first shared 2011 · 62 comments on HN
  11. 11
    Uncle Bob's rant on Jeff and Joel
    1 people · 34 points · first shared 2009 · 11 comments on HN
  12. 12
  13. 13
    Cloning Vi Using Haskell
    1 people · 26 points · first shared 2009 · 14 comments on HN
  14. 14
    TDD in Clojure
    1 people · 25 points · first shared 2010 · 6 comments on HN
  15. 15
    Software Calculus - The Missing Abstraction
    1 people · 22 points · first shared 2010 · 8 comments on HN

What HN people wrote when they linked it

torial · 2010-08-17
I've been following the TDD stuff as an outsider, and hands down the article that makes me consider it with the least skepticism is this one: http://blog.objectmentor.com/articles/2009/10/07/tdd-derangement-syndr… I'm sure there are issues w/ the various studies it cites, but it is the only one to actually address TDD from a productivity standpoint with some research data that I've seen. (More / better links welcome too!)
daeken · 2009-12-28
If you're a compiler type person, Treetop ( http://treetop.rubyforge.org/ ) and Polyglot ( http://polyglot.rubyforge.org/ ) are amazingly cool libraries. The Case gem (some information here: http://blog.objectmentor.com/articles/2009/03/16/tighter-ruby-methods-… ) for pattern matching is also great, especially if you're dealing with large S-exp structures for compilation. After discovering a few of these libraries, Ruby has become my de facto compiler language.
chromatic · 2009-11-16
Have you read Bob Martin's "TDD Triage"? It offers a lot more nuance than you might suggest: http://blog.objectmentor.com/articles/2009/10/08/tdd-triage > Any worthwhile development practice must have objectively measurable results.... I thought you were asking for objectively measureable results in isolation. You'll still have terrible trouble trying to isolate a single variable (and good luck with a control group for a creative design activity!), but I suspect you can get decent results by measuring the cost of a change, the correctness of a change, and the amount of rework in a change when using TDD.
plinkplonk · 2009-10-06
" "One day I hope Joel eventually realizes this. Programmers who say they don’t have time to write tests are living in the stone age." This kind of attitude really pisses me off. " Then you'll really love "Uncle" Bob's latest blog entry (http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone… where he re iterates his inane "Stone Age Programmer" name calling. The comments on the blog post are more interesting (well ok, funnier) than the content of the post.
keyist · 2009-10-06
If you enjoyed seeing the contrast in approaches between Norvig and Jeffries, you may also find the following interesting -- calculating bowling scores in 1. OCaml, no tests: http://alaska-kamtchatka.blogspot.com/2009/07/disfunctional-bowling.ht… 2. Clojure with unit tests: http://blog.objectmentor.com/articles/2009/07/19/uncle-bob-jsps-learni… </amazon>
jonmc12 · 2011-04-15
Nice article.. some examples would be helpful in understanding the author's thesis. "I believe tests should be written in the language most natural for the problem" - I agree with this. However, to assume natural language is the most fit expression I believe is a jump. Natural language is laden in ambiguity to the point where it misses out on creating specifications in a concise way. I tend to drift towards the field of thought that BDD should be used to constrain the spec - purposely eliminating ambiguity. I think this is the real opportunity in BDD. This article (http://blog.objectmentor.com/articles/2008/11/27/the-truth-about-bdd) illustrates the point well - making BDD specs analogous with a DSL described by finite state machines. "(BDD) connects the human concept of cause and effect, to the software concept of input/process/output". So, in this sense using BDD tools like cucumber for expressing natural language can possibly bypass the opportunity to constrain the spec by using constrained natural language or DSLs that best describe the problem domain more explicitly.
greenyoda · 2012-03-27
Another, similar take on this idea is this article, written in 2007: Code is a Liability http://blog.objectmentor.com/articles/2007/04/16/code-is-a-liability Excerpt: "Code size reduction is a very good thing. I want the simplest, the smallest, the least code possible, with the least risk of breaking something else in the system. I don’t want big functions that touch everything in sight. I don’t want long complicated blocks of if/else statements. I don’t want monster functions which conglomerate dozens of operations in a single, fat interface. Shallow is good. Short is good. Less code is good. More code is a liability. This isn’t about typing less, it’s about owning less."
DanielRibeiro · 2012-01-22
I always try to keep in mind that A Mess is not a Technical Debt[1], and that when you keep that in mind you can do it intentionally[2]. Which is particularly useful when you are more interested in learning[3] about a problem (like building a MVP) than when you are in solving it[4]. [1] http://blog.objectmentor.com/articles/2009/09/22/a-mess-is-not-a-techn… [2] http://martinfowler.com/bliki/TechnicalDebt.html [3] http://www.ashmaurya.com/2011/06/your-product-is-not-the-product/ [4] http://www.threeriversinstitute.org/blog/?p=251
stuff4ben · 2010-09-24
Is this the same Uncle Bob as the Object Mentor Uncle Bob, i.e. Robert Martin (http://blog.objectmentor.com/articles/category/uncle-bobs-blatherings)… Or is this another programmer going by the nickname Uncle Bob?
martincmartin · 2010-06-10
How do you explain the success of ActiveRecord? Do you think it's illusory? The exception that proves the rule? Something else? http://blog.objectmentor.com/articles/2009/07/13/ending-the-era-of-pat… "The fact that it took decades for the industry to arrive at something as useful as ActiveRecord in Rails is due primarily to the attitude that some language features [in this case, meta-programming] are just too powerful for everyone to use. "
tbrownaw · 2010-01-24
Hm, makes me think of http://blog.objectmentor.com/articles/2008/06/22/observations-on-test-… . It sounds... scary. Like it will work well enough at first, and then explode when someone changes their desktop theme (especially icon theme), or wants to upgrade to a new version of whatever. Treating things as change-controlled APIs when they aren't just seems dangerous. Still I guess there's at least some amount of change control coming from platform conventions and human interface guidelines, and this comes closer to operating at the correct level of abstraction to benefit from that.
silentbicycle · 2010-01-10
> who actually is? Like many other 'methodologies', it has uncritical advocacy. (http://blog.objectmentor.com/articles/2009/10/07/tdd-derangement-syndr… (HN discussion: http://news.ycombinator.com/item?id=866707) I agree that automatic testing is nearly always a net gain, but using tests themselves as the primary driver for the design process suggests to me that the developer has little other design experience to draw upon.
joe_the_user · 2009-02-12
What's interesting to me here is the different response of Kent Beck and Bob Martin. Beck went ballistic, attacking Spolsky with little support for his positions. [Martin's response][1] was clever and humorous. Kudos to Martin. [1]: http://blog.objectmentor.com/articles/2009/02/06/on-open-letter-to-joe…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close