Originally when I found out a large focus of the DBC experience would involve paired programming I wasn't really certain what to expect. In the past I have tended to work on problems and work assignments on my own and didn't have to work that closely with people except at very specific times. The idea of working with someone so closely on projects seemed foreign and I was dubious that I would gain a benefit from this particular structure. Oh how naive and wrong I was about that idea!
Paired Programming Examination
Looking back I can see how much I would have benefitted from a paired programming approach to work throughout my professional career. Just joining the team and aren't sure what's going on? Work hand in hand with one of the experienced engineers as you come up to speed. Have a large coding project that needs to get done quickly and efficiently? Pair program with another engineer to get large pieces done quickly and efficiently, while you both benefit from having another person to bounce ideas off of as you work. Can't figure out where to go with what you're working on currently? If you were in a pair programming system you could work with another person to create a viable solution. The benefits are amazing and I wish that I had had this working approach introduced to me earlier in my career.
My experiences with pair programming have come solely at the hands of the DBC curriculum and I've been extremely impressed with how much it has helped me to grow as a developer. I'm going to discuss parts of the DBC pair programming process; what those pieces have been like for me to experience; how they've helped me grow and mature.
Examining Feedback Received
One of pieces of the assignment for this particular post was to look over the feedback that I've received from my classmates that I've pair programmed with so far. Looking over what other people have said about the experiences that they've had while pair programming with me was fascinating. Their words were many things: inspiring, humbling, enlightening, and informative. When I finished reading all of the feedback that I have received thus far, I felt happy and proud, as I discovered that people have benefitted from my willingness to explain concepts or problems to them. That my patience and understanding has allowed other students to increase their knowledge and understanding.
Seeing this feedback has enabled me to examine how I am approaching pair programming, learning prior to Phase 1 of DBC, and also how I can continue to improve as a person. This has inspired me to continue study and understand the material, such that I can use it well myself and then if the opportunity presents itself, that I will be able to explain it to another. In future pair programming sessions, I now know that I can improve my navigating abilities, by taking greater control; that people appreciate my ability to explain things to them, but that I could do so more clearly and with less words. This information is enlightening and I'm looking forward to implementing these changes and improving myself as a pair programmer.
Generating Feedback Difficulties
Following pairing sessions I like to sit down and write the feedback for my partner as soon as possible. This way I can provide kind, actionable, and specific feedback for that session, otherwise the details tend to get muddled. While this is how I like to sit down and take care of writing feedback for others, I find it exceptionally difficult to actually write feedback.
There are several reasons that I find it so difficult. When I originally started writing feedback for others, while I wanted to be specific to help them grow and mature, I also seemed to not want to be specific enough that they could identify who was giving them feedback. Maybe it wasn't exactly that, but that instead that I didn't want the feedback to be specific enough for someone that was reading over it to be able to identify those that I was referring to in my feedback. The likelihood of this particular thing happening is highly unlikely, which means that I will have to become more well versed at giving feedback.
Strength of Pair Programming
My time at DBC has shown me that if pair programming is used well it can be extremely beneficial in a learning environment, as well as a professional environment. What I've managed to learn from pair programming so far has been incredibly useful. By getting to explain concepts to classmates I have increased my knowledge and understanding, as well as further cemented those aspects in my mind. When I couldn't figure out how to approach a problem differently, when I got together with my partner we were able to create a solution that neither of us had thought of prior to our session. Over the five weeks of Phase 0, I have been shown again and again, just how useful and amazing that pair programming can be for learning, and I cannot wait to do it more. In fact I'm looking forward my next sessions so much, I've already emailed my accountability group to set up sessions for next week!