Malcolm Gladwell, Transactive Memory, And Pair Programming

Posted May 27, 2008 at 2:12 PM by Ben Nadel

Tags: Work

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.



Reader Comments

May 27, 2008 at 8:57 PM // reply »
2 Comments

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.
Thanks !


May 27, 2008 at 9:02 PM // reply »
2 Comments

Just realizing I wrote transitive instead of transactive. Although, we could also have a post on transitive memory in IT teams!
http://books.nap.edu/openbook.php?record_id=12023&page=29


May 28, 2008 at 7:30 AM // reply »
1 Comments

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!


May 28, 2008 at 8:55 AM // reply »
11,243 Comments

@James,

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.


Oct 28, 2009 at 6:38 PM // reply »
1 Comments

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)


Oct 31, 2009 at 2:04 PM // reply »
11,243 Comments

@Mark,

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.


Nov 19, 2010 at 5:46 AM // reply »
1 Comments

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.

http://www.gregerwikstrand.com/blog/2010/11/19/agile-and-tms/


Post A Comment

Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.

Please review the following issues:

Author Name:


Author Email:

Author Website:

Comment:

Supported HTML tags for formatting: <strong>bold</strong>   <em>italic</em>   <code>code</code>







  • Help Wanted - Find Your Next ColdFusion Job
Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
May 22, 2013 at 5:35 PM
Script Tags, jQuery, And Html(), Text() And Contents()
This is still an issue 2 years later. jQuery is supposed to remediate these cross browser issues, no? I have been unable to find any statement from the jQuery team calling this behavior "by de ... read »
May 22, 2013 at 12:44 PM
Ask Ben: Query Loop Inside CFScript Tags
In cf10, if you call a function that has: local.result = {}; local.result.msg = ""; local.svc = new query(); local.svc.setSQL("SELECT * FROM..."); local.obj = local.svc.exe ... read »
May 22, 2013 at 12:29 PM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@Ben: What version of Java are you using? Also, did you test users.id to see what Java reports as the data type? I wonder if it's not a Java primitive data type, but getting returned as something ... read »
May 22, 2013 at 11:47 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@Dana, Awesome - so it looks like this bug was fixed in ColdFusion 10. Thanks so much for double-checking that. ... read »
May 22, 2013 at 11:37 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
When I c&p and run on cf10, I get: Selected User IDs: 1,4 User 1 selected: YES - YES User 2 selected: NO - NO User 3 selected: NO - NO User 4 selected: YES - YES User 5 selected: NO - ... read »
May 22, 2013 at 11:27 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@Tom, Good thought, but no dice. Both of these still exhibit the same behavior: users.id[ users.currentRow ] users[ "id" ][ users.currentRow ] It's just something whacky happening with ... read »
May 22, 2013 at 11:07 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
Could your problem be that "users.id" is actually an ARRAY, not a single value? Perhaps try it again with "users.id[1]" (I only have CF8 here at work). ... read »
May 22, 2013 at 7:52 AM
Nested Views, Routing, And Deep Linking With AngularJS
Hi, Just a quick thank you. As it happens, for my own purposes, the pending ui-router work being done in native angular is likely the one I'll adopt, but your exploration, code and documentation of ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools