Pairing And Feedback

Paired Programming

If it were not for DBC, I wouldn't have ever thought that paired programming might be a good idea. I grew up in the Bay Area. Lived through the tech bubble and crash of the 90s. My mother was part of the tech movement those days, and I remember being taken to her company and being put in the lounge room, fully equipped with a Sega Dreamcast. I would play with developers, black-box testers, quality assurance engineers all the time. I even witnessed a company-wide Doom marathon with the winner getting a cash prize. Yet the one thing that I never saw at these companies was paired programming. There wasn't really any collaboration back then, a programmer would be assigned a task within a project and when he was finished the black box testers and qa engineers would check his product, provide feedback, and have him redo certain parts. This would repeat until you had a finished project.

Understandably, I was hesitant when I had to meet for my first pairing session. I've done collaborative work in my previous career as a teacher, but collaboration is part of the teacher culture. And...it actually wasn't so bad. I actually enjoyed my paired programming session. It's not too different from the collaborative groups that I've worked with as a teacher. Over the next few weeks, I've come to see the positives and negatives of working on a problem with someone else. On one hand, two minds can solve a problem much quicker than one, but on the other, I keep wanting to try the problem for myself afterwards, as if I'm afraid that I didn't learn as much because I didn't have to struggle with the problem for a longer period of time. And there's also feedback.

Feedback

I'm no stranger to feedback. It's one of the most important aspects of being a teacher. And it's scary. Imagine teaching in front of a group of unruly teenagers with a panel of your peers watching your every move. And then dissecting your every move afterwards. But over the years I've learned that it's not so bad. You learn things. Things that you are very good at, and things that you can improve upon, and as a teacher, you always want to improve your craft. The same with programming. I understand that I'm not as strong at manipulating hashes, but I also didn't know that I struggle with expressing myself sometimes. And I wouldn't have ever found out if the people who I paired with didn't give me feedback. I want to improve, especially since I'm very new at this. So please, if you ever do pair program with me, be specific; what did we work on, what did I say? Be actionable; how can I do better? And most of all, be kind. Kind not in the sugarcoating sense, but in the honest, constructive criticism sense. And I'll do the same for you.