This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Three levels of understanding
Feed Title: David Buck - Blog
Feed URL: http://www.cincomsmalltalk.com/rssBlog/buck-rss.xml
Feed Description: Smalltalk can do that
Eric Winger in his article Letting Abstraction Come to You has run across a phenomenon I call the "three levels of understanding". I normally use this phenomenon to describe the doesNotUnderstand: method in Smalltalk, but it works equally well for blocks.
The levels are:
What's that? I've heard of this feature. What is it and how does it work?
Wow, that's really cool. I can use it everywhere.
Wow, that turned out to be a real mess to debug. Maybe I should stick to simpler solutions and only use this when I really really need to.
I frequently need to advise clients to avoid solutions that are too tricky or difficult to debug. It's a common temptation to use cool tricks to solve problems. Often, this ends in an unmanageable mess.
I heard that Kent Beck once went around with a T-shirt that read "Will override doesNotUnderstand: for food". Obviously, he's achieved the third level.