Thanks to a recommendation by Clark Valberg, I recently read The Tipping Point: How Little Things Can Make a Big Difference by Malcolm Gladwell. It was a good read and I like Gladwell's somewhat meandering story telling style. One thing that he mentioned really caught my attention - Transactive Memory. In the book he explains that when two people are in a relationship, they develop a subconscious system as to which person is better at learning and storing different types of information. It is then up to that person to remember such data and to recall it when asked. Because this system is so effective, an intimate couple has much better recall abilities than two strangers. This seems logical when it is pointed out, but I think it not something that we generally think about.
After hearing about this Transactive Memory, it got me thinking about Pair Programming. Now, two people programming together hardly represent an intimate couple, but it has been demonstrated that couples that have been together a long time do not out perform couples that have been together for only a short while; the length of the relationship does not seem to weight in heavily on the ability to utilize this "shared memory" system. As such, I wonder if this is something that would apply to pair programmers? I know that when I tried pair programming with Peter Bell, I felt that we brought slightly different and complimentary skills to the table. But, that is an initial contribution. I wonder if, over time, if you were to pair program throughout the development life cycle, would development become even more efficient as you built up the Transactive Memory system between you? I can only believe that this does, in fact, happen and that pair programming with one person over time is more effective than pair programming in general.
Anyway, just some food for though.
Looking For A New Job?
- IT Manager - ColdFusion/SQL web application developer at ARELLO
- DevOps Engineer at Linode
- Software Engineer at Linode
- Web Applications Developer (Remote / Telecommute) at SiteVision, Inc.
- Senior Application Developer at Fidano
Just stumbled upon your blog through the jquery post, of a year ago.
Looking at your latest posts, I really enjoyed this one, on transitive memory.
It would be interesting to go a few steps further, and finding out how we can find out if some matches have better transitive memory than others, or, if a certain setup would help making teams more effective, and happier...
Certainly something I will work-through my day of work today.
Just realizing I wrote transitive instead of transactive. Although, we could also have a post on transitive memory in IT teams!
That's a coincidence - I just finished reading The Tipping Point last night (I also highly recommend it). When I read about "transactive memory" it also got me thinking about pair programming and (specialisation within teams).
While it makes total sense it kind of goes against my natural desire to know everything, but I guess that's just ego!
I know what you mean about it going against your natural desire to know everything :) I suffer from a bit of that myself. But remember, this is not a conscious effort; furthermore, this ability has only been demonstrated when pairs of people are allowed to remember things in a natural way; meaning, you cannot force one person to handle some info and another person to handle different info. The memory allocation must just happen naturally.
So, as much as you want to know everything, I don't think that interferes with this process as you would not be forced to know or not know stuff.
I really appreciate the tansactive memory article as well, as it struck a chord with me. Gladwell does a good job of interpreting research in a story for the lay person. I don't always agree with his interpretations, but he does a fairly good job with his homework. Sometimes he does well explaining things scientists would praise, and I think transactive memory is one of them.
I've been a software engineer (programmer, analysts, developer, ...) for nearly 30 years, and over half of my career was as a consultant (36 orgs). But early in my career I became interested in the human side and is why I naturally joined the Agile movement. But wanting more, I ended up in graduate school in psychology of all fields.
My point is I have applied the concept of transactive memory and understand it, and I agree it certainly applies to pair programming where a relationship between pair partners can develop (some companies rotate partners). However, and here is where it may be interesting to read my post, there are skills associated with being able to pair programming that transactive memory may hint at. The more you do it the quicker you're able to establish efficacy regarding the role in the pair. It is a quite novel social system actually.
There is indeed a meta-system "iceberg" of social perception, cognition, and memory (of which we are usually not aware) that the theory of transactive memory reveals a tip of. In reality, the field of applied psychology is in its infancy in many regards, and this meta-system is one of them. Perhaps further research will reveal more application of fundamental findings - or proffer new ones (see: http://simula.no/research/engineering)
It's definitely a fascinating field. I have not really tried pair programming since this post; but, it is something that I would love to play around with a bit more.
I'd just like to mention that I linked to this article on my blog in relation to tms and group performance in agile software development.