Sunday, April 11, 2010

Individual vs. Collective | Reflection #4

Asking for Help & Pair-Programming

Consider the following quote: "programmers... a notoriously independent-minded category" (Fogel, 11). I would argue that one could extend this quote to include developers and perhaps computer scientists in general. Regardless, I think this quote may be of some help in isolating a possible explanation for the lack of peer Q&A among AEIOU team members. That is, I think there may be some cultural expectation of individual excellence within out team. I, personally, think this is a double-edged sword. On the one side, this aura, if you will (no pun intended), may motivate team members to learn/do more. On the other side, it may act as a source of fear and paralyze forward movement.

When should we ask for help? When is it okay to be wrong? When is it acceptable to show weakness? What about the following: Never asking for help. Never being wrong. Never showing weakness. The second of these is humanly impossible; so, let's throw that out. The first impairs growth, and the third implies a false posture at least some of the time. When considering self-improvement, how do either of these help? Not asking for help and barring growth implies a fairly obvious answer: it doesn't help! And, never showing weakness (in this context) is (in my humble estimation) a closed door to possibilities for improvement. Notice that I've not yet answered my original questions. When should we ask for help? I think: as soon as possible. When is it okay to be wrong? I'm not sure I could answer this fully, but in a learning environment, being wrong is a common part of the experience, especially at the beginning of any new endeavor. When is it acceptable to show weakness? This may be a little tricky to answer, but never showing weakness may lead others to think one "has it all together" when the reality is the contrary.

I remember at the beginning of this semester, I would tell my teammates to "ask any question, even if it seems simple or silly." I am only now, in the latter part of the semester, receiving questions about fundamental issues regarding programming for Android and programming in general. I don't know if the aforementioned cultural taboo is to blame. I think many factors were at work in silencing potential discourse.

All this to say, pair-programming is awesome (as long as everyone shows up). However, individuals with more experience need to cut out their pride and truly ask for input from others; the sessions go much more smoothly this way. The tricky part for the seasoned programmer, in my experience, is knowing when to ask and what to ask of the other not-quite-so-seasoned programmers. This approach helps prevent an inauthentic atmosphere and the appearance of hand-holding, and in my experience, it also leads to more outside-of-the-box answers.

Well, that is all I have for now.




Cited Sources:

Karl Fogel. Producing Open Source Software: How to Run a Successful Free Software Project. (2005-2009).