A Live Developer Journal

Notes on article - A laboratory for teaching object-oriented thinking

The notes in this article are heavily based on A Laboratory for Teaching Object-oriented Thinking by Kent Beck and Ward Cunningham.

Difficulties learning Object-Oriented Thinking

I am struggling to understand Object-oriented thinking for the same reasons that have been outlined above. The CTO of the startup I work at said it took him years to 'get' Object-oriented, but one day it all clicked into place and the click was probable audible to the people around him. Two other extremely experienced and talented developers confirmed the same thing happened for them. They said that working with someone who really gets it played a big part in helping them get to the click moment.

They also said not to feel like a bad programmer if I'm struggling to get it. That everything I'm learning and practicing is like a cube of sugar on a weighing scale. The first one you add does nothing to adjust the weight, the first dozen also do nothing. But at some point, the scales will suddenly tip and it'll all finally make sense.

CRC Cards (Class, responsibility and Collaboration

One of the really interesting things that happened at work was when the CTO was explaining his view of the system as a series of gates that were either open, closed or locked. The gates could only be locked by someone with authority who was in possession of a master key. The CEO (who is an executive chef) heard this metaphor and started using it to explain the system to his business partners. So while we were in fact discussing code, it was accessible to a non-programmer who was able to join in on the discussion and ask questions or offer course corrections to be discussed if needed.

Using CRC cards in practice