The Sales Engine project was a good learning experience. Kareem Grant, my pair, was a great partner. He was very dedicated and worked long hours to accomplish the goal of not only finishing the base expectations but also working through some of the extensions. Additionally, he showed effort in making sure that I was understanding our approach to tackling the project specs at different points in the process. Having never pair-programmed before, I found myself adjusting my ‘prime work hours’ to fit those of my pair. That is, I normally work best in the early morning and throughout the day, whereas Kareem seemed to work well at night and was able to produce solid work during the late hours. So, I worked late into the night more often during this project than I probably would have working solo.
Another interesting part of the pair dynamic had to do with the fact that I am local to Denver and have a social network here, whereas my pair admitted that because he is from out of town, he doesn’t really have social obligations beyond the class and therefore was able to spend a few more hours each night working on the project. Overall, I don’t think that my personal life took anything away from my effort or the project as a whole. For me, it is actually kind of nice to have a reason to take my eyes away from the computer for a while and return to it with a fresh set of eyes the next day. There were times that I felt Kareem had the reins on the project and that I was just tagging along with him, sparsely contributing my thoughts on the way we approached different aspects of the project. To some extent, I expected that this would be the case because due to his programming background he has a better grasp on Ruby than I do at this point and therefore was better equipped to ‘drive’ the project. That being said, I learned a lot during the project, I feel that I contributed a good amount to the final product, and that the process was collaborative.
Kareem and I did a few things quite well as a pair. First, before getting into code we did some serious white-board action, mapping out the project and going through each spec one at a time to try and wrap our heads around our client’s (in this case Jeff’s) needs/desires. We spent about 7 hours planning and storyboarding before we hit the keyboard. I made a little graphic in Adobe Illustrator based on our white-boarding to which we referenced throughout the project. The graphic helped us visualize the relationships between all of the CSV files with which we were working. Another thing we did well was maintain good communication throughout the project as well as use Pivotal Tracker, both of which helped us know what our responsibilities were and make sure that we weren’t duplicating efforts.
We put a lot of time into the project and I would say that almost all of if was valuable time. I learned something from each step of our process, from planning, to testing/implementing, to debugging, and using git. Of course, over time I have the goal of being more efficient, but at this point I feel like it is worth taking whatever time I need to make sure that I really get the fundamentals ingrained. That’s why I came to gSchool. Right now the learning curve is steep, and while as our teacher, Jeff, says “you will never be dumber about code than you are right now,” I know that this is just the beginning of a life-long learning journey. I love that with programming you are never done learning (of if you are, you should probably find something new to do).
I am excited to get into the web space with the forthcoming projects. Building high quality web applications that improve lives is the reason that I am here. Much more to learn and I am ready to start solving the next puzzle that is thrown my way.comments powered by Disqus