The most memorable moment for me was in the afternoon, when I spoiled a rant that Mark was about to launch into about a perceived problem he had with TDD “forcing” the programmer to code improperly by requiring them to expose inner members of classes that should properly be kept private.
Instantly, I blurted out, “So write the test method inside your class!” It was kindof a “from the mouth of babes” moment. I barely even thought before the words came out of my mouth. I wasn’t even sure if that was the right answer or not, but I guess it must have been, because the look on Mark’s face was priceless.
There were so many messages in that look: 1) that I was right with my guess; 2) that Mark had been stuck on this mental error for some time; 3) that it might’ve humbled him a little bit that he hadn’t seen it before.
I don’t mean to embarrass him by recounting this — if I thought this would, I’d never be using his real name. It wasn’t that I’d really shown him up — he’s got way more experience than I do, plenty of success under his belt, and he’s someone I like personally as well as look up to. But that was the first moment I felt like I was capable of making a tangible (if relatively tiny) contribution, that it wasn’t just a one-way knowledge transfer from the more experienced programmers at the event to me.
What made it a moment I’ll never forget was that I saw that I wasn’t the only person who gets mentally stuck in my own problems when it comes to programming. If a guy like Mark can still make a mistake like that once in a while, it makes me feel a lot better about doing it too, now and then.
But the bigger lesson is, it totally reinforced the value that we all get from being in the same room, talking to each other, making mistakes in front of each other, and learning from each other what lessons we might. With enough eyes, all bugs become shallow.
How dare you use my name!
Seriously, this is a fantastic example of pair programming not sucking even thought it might appear inefficient at first.
Thanks for the reminder, and for pointing out what I missed.
Mark W Schumann
Hey Chris, it’s Matt, I met you tonight at the Developer meetup. How’d you hear about the code retreat in the first place? Sounds like a cool idea. Also, what language was the coding done in, and did that have an impact on how things went? I somewhat regret not knowing about it, especially if Schumann was there.
mgrecar
Matt,
I’m not sure how I heard about it first, but a few friends mentioned it to me. I was fortunate enough to hear about it before it sold out. (It was free, but there were a limited number of seats, and to ensure people showed up they charged you $10 and then refunded it if you actually showed.)
There are groups out there (locally and regionally) that meet regularly, if you know where to look for them. Look into events like GiveCamp, CodeMash, and so on. Also check out things happening at Lean Dog. Jeff “cheezy” Morgan recommended I check out a ruby developers group that meets there regularly, and I plan to. I know little to no Ruby presently, although what little I got to see from talking with cheezy didn’t look too scary, but they apparently focus a lot on programming craftsmanship, which is an area that I have a lot of interest in currently.
Chris Sanyk
Oh, and to answer your other question, there was no specific language we were given to use at the CodeRetreat event that I attended. I understand that at past events they had everyone work in one language, but at this one they had us use whatever language we felt like using, and encouraged us to pair with people who knew languages that we didn’t.
I got to work in C#, Java, and Ruby. Other people were talking about doing it in Javascript, Clojure, and J. I think it’s very useful to get exposure to other languages just to experience other flavors. It can help you to develop a more flexible mind and appreciate different approaches to doing things.
Chris Sanyk
Very cool, thanks for the info. I joined a Cleveland area Python meetup group, and they meet at Lean Dog, so I’ll bet there’s some related people at the meeting. I just started to pick up Python this week, so I am still fairly uneducated, but hopefully the group will help if I have problems or questions, or at least just provide something new to learn. Thanks for the reply!
mgrecar