Pair Programming FTMFW
It's hardly the first time that I have talked about pair programming and it's benefits but in case you have not noticed, I LOVE IT! I've been trying to reflect on the workday and to force myself to do that, especially as I am starting to work more with ruby, rails, jQuery & other technologies in the web stack, so that I can look back and see how I am progressing. I recognize that posts like this are probably more beneficial for me than for anyone else so don't feel bad if you find this stuff boring and/or useless :).
Going back to pair programming, there was another user story I was working on today. Since I had not had the opportunity to pair with any of the remote team members, I decided to call for help on Campfire & Jeff Dallien was kind enough to volunteer to help me out with the story. It was an area of the codebase that I had worked on before so that definitely helped my confidence a little bit. Being new to jQuery, my contributions were limited to "how about we try this" but it was still a fun experience. Staying true to what I had learned yesterday, Jeff & I got the functionality in first and we were able to then realized that we can make the code cleaner.
Being new to the codebase, pairing with someone who is more experienced is helpful because there are things that we could potentially emulate from other place in the codebase that I would have no idea of if I was working alone. The discussion around potential solution and identifying merits and pain points in different approaches is always illuminating. Technically, as developers, even when we are working on something alone, we should be constantly evaluating this but with pair programming, it just happens naturally & it's not something you have to remember to do. Having a second set of eyes always helps too.
The lesson for me , outside of pair programming & it's awesomeness, is that I need to do more of what I do when I am pair programming even when I am programming alone. A lot of times, I find myself stuck & frustrated because I am not too familiar with the syntax & it's a struggle. What I need to do more is to use Test Driven Development approach by document what I want the app to do in a test and try and implement the solution that makes the test pass. If I struggle with that piece, leave the test as pending & move on to the next functionality that I wish I had. For now though, I need some beer in me!blog comments powered by Disqus