Click on the Kids and Food link now. Seriously, you won’t be sorry.
Besides that, I got to attend a great talk by Nobel Laureate Daniel Kahneman, in which he talked about happiness, the Experiencing self, and the Remembering self. The video of the talk isn’t up yet, so I’ll have to paraphrase (and will probably botch it horribly), so bear with me.
In his talk, Daniel talks about our two “selves” (this is apart from any other voices or personalities I may have in my head 🙂 ): The “Experiencing Self”, which is the one observing our life as it unfolds, and the “Remembering Self”, which remembers our lives. It turns out the Experiencing Self really gets the short end of the stick, since we forget almost everything it sees. The Remembering self really runs the show, since it makes most of the decisions, and is responsible for how we view our lives.
Note: Thanks to the folks at TED, the video of the talk is now up for your viewing pleasure.
He raised an interesting thought exercise: If your Experiencing self was in charge would you choose a different vacation from the one the Remembering self would choose? E.g., if you knew in advance that you’d forget everything that happened, would you choose a different vacation? Now that I think about it, it’s kind of a silly question, since you’d never know what the outcome was — kind of like “What happens in Vegas Stays in Vegas — even for you”.
Anyway, I got to thinking about this in regards to coding. I have, in my lifetime, coded a lot. In fact, if you’ve ever shopped at a Macy’s California store, or used eBay, or used some versions of Oracle, well, a lot of other things, you’ve probably been unfortunate enough to take trip through my code (some much less than others by now I’m sure).
Since my Experiencing Self wrote most of that code, I remember hardly any of it, much less, actually writing it.
I know my Remembering Self didn’t have a hand in most of it, because the words “What was I thinking?” seems to be the phrase uttered most when looking at my old code.
Ok, that’s not really true.
But, I do wonder how much better code I’d write if I let my Remembering Self be more in charge when I was building stuff. I think this the real goal of techniques like Code Reviews and various Team Programming memes: It uses multiple people to try and get one or more “Remembering Selves” involved in the process. That way, while Programmer A’s Experiencing Self is hack..er, coding away, Programmer B’s Remembering Self is saying “Whoa! Don’t do that! I did it that way once, and boy was I sorry!. Hey did you watch that BSG rerun last night? …”.
I think we all need to think more about the Remembering Self in everything we do. Especially when we deal with others (code counts too, dude. People use your code. Get over it 🙂 ).