.comment-link {margin-left:.6em;}

Sometimes I Wish That It Would Rain Here

Tuesday, January 16, 2007

apologizing for code

a few months back, I attended two interdisciplinary events back-to-back. the first was a AAAI Symposium on Interaction and Emergence in Artificial Societies, and second was a workshop on gaming research held at UCI. Both were very cool events; among other things, the former renewed my faith in AI conferences, and the later gave me a chance to bounce early stages of dissertation ideas off of some really smart folks. however, there was an interesting trend at both of these events which was called to mind today by a discussion in a reading group on ubiquitous computing. I’ll get to that in a minute.

both of these events were very interdisciplinary: attendees ranged in backgrounds from computer graphics to game development to artificial life-based art to critical theory to education to AI to anthropology to law to software engineering. my long-standing impression about being interdisciplinary echoes recent advice from danah: being interdisciplinary is much, much harder. it’s not about being half of two parts, it’s about being two (or more) wholes. you have to know the intricate details of the technical aspects of a field like computer science, and you simultaneously have to be well versed in the rhetoric of fields like critical theory. why is it, then, that at both of these events, people apologized for delving into the technical details of their projects? at the AAAI symposium, one presenter accompanied a slide of code with an apology, stating that there would only be one slide with code, and it wouldn’t be that bad. at the game research workshop, a discussant prefaced a question about the implementation details of some multi-device graphics with an apology for focusing on the technical aspects. interestingly, though, when one of the artists at the AAAI symposium got up to present her work, she never once apologized for discussions of critical theory and the emphasis on reflection about the nature of machines in her work. why is this? why do interdisciplinary computer science researchers feel they must apologize for focusing on the technical aspects of their craft but do not seem to expect such apologies from collaborators coming from other fields? this might be going out on a limb, but I would like to put forth the suggestion that there is largely one rather ugly cause for all of this:

arrogance. computer scientists feel that what they do is harder, more challenging, more demanding, and more rigorous than work done by artists, anthropologists, or social scientists. it’s not that CS folks don’t want to bore everyone with all the technical minutiae of their latest project. rather, it’s that CS folks think their work is above people outside of their discipline and thus inaccessible to them. it’s OK for them to stoop to discussing social theory, but it’s not OK for a social scientist to ask about how to optimize his or her SQL query.

this was brought up again today during a discussion of Yvonne Rogers recent paper (pdf) at this past Ubicomp. one of the questions I raised was, “does this paper belong at ubicomp?” it’s certainly about ubicomp issues, it’s certainly relevant to the field, and it certainly highlights a trend that others have noted, as well. trouble is, for a technical audience, a reflection/critique paper looks easy. sure, they say, it’s easy to point to all the things that are wrong with the field and make claims about where the field is going, especially when, like in the case of the Rogers paper, there is no implementation to say “we should be doing more stuff like this.” but writing the next generation of location prediction algorithms, now that takes really skill, and if you do it well enough, then you really deserve that conference paper. this is a multifaceted issue that I don’t really have the space to treat here, but it is another indicator of this trend in viewing technical aspects as superior to others.

let’s get over it. I suspect the problem is not that our craft is really all that incomprehensible to those outside our discipline. rather, I think it’s mainly that people in CS tend to have really poor communication skills when it comes to explaining anything technical to non-CS types. if presented in an obfuscating way, structuration theory can be just as confusing as polymorphism (personally, I think Giddens’ explanation of his own theory is rather obfuscating, but that’s just me). I remember going through this with my mother when I was in high school. she would ask what I did that day, and I would have to explain to her multiple inheritance, or infinite series, or Shakespeare’s use of, and deviation from, iambic pentameter. the point being, even given an audience that is not at all technically savvy, one should be able to give at least a somewhat intuitive explanation of what one is doing that will (a) satisfy those with the technical background and (b) at least impart some understand to those without such a technical background. furthermore, I believe that it is one’s own best interest to periodically explain one’s work to those outside of one’s discipline. not only does this force you to be familiar enough with every aspect to explain it thoroughly and comprehensibly, it helps to improve your communication skills with those within your own discipline. while this is a bit of a complaint about people apologizing for code, I have seen far too many talks that consisted of the presenter simply reading through slide after slide of dense math, code, and disciplinary jargon. explaining things to those outside your own discipline gives you a better handle on explaining it to those within your discipline.

I will admit that there are other possibilities. while even the most jargon-laden discussions of critical theory are at least still in English, a blurb of Java really is, to some approximation, in a foreign language. if code is absolutely necessary to get the point at hand across, it would be best not to alienate those who can’t read it, and it would also be good not to belittle those who can. also, both of these events were run under the auspices of computer science organizations. AAAI is about AI research, which usually is done with computers, and the two organizers of the game research workshop both hold appointments in UCI’s Informatics department. as such, it would behoove those present to make visitors from other disciplines feel welcomed, not estranged. I would argue that the best way to do that is to explain to them your craft, not assume it is over their heads, but I understand why there is the focus on code in their situations.

what do you think? am I imagining this air of supposed superiority about computer scientists? do your interdisciplinary collaborations have hints of arrogance from the computing side of things? what do you do when presenting at interdisciplinary gatherings?


  • My dad has been working for Sun Microsystems ever since they bought out Cray Reaserchers in the mid 90's, so I've been noticing this communications breakdown for years. Dad's a pretty good communicator, but his co-workers are not. I think one of the reasons CS people have so much trouble communicating is that until very recently, the need for personal communication was seen as unimportant in the field. It sounds kind of silly, but most CS people I know are introverted to the point of severe social anxiety. I took a technical writing course which was recently made a requirement for CS majors at my school, and all but two or three people were socially retarded. I'm not being mean. I just mean that they had been spending so much time away from people, that they didn't know how to socially interact.

    By Anonymous Shalizabeth, at Thursday, January 18, 2007 12:41:00 PM  

  • I agree that personal communication skills are not lauded (perhaps even looked down upon) in certain techy circles. I don't know if it's anything intrinsic about CS people, because I know plenty who have great people skills. I think rather it is (or was) the momentum of all the dorky people in CS. in order to be good at computers, you almost had to be willing to shut yourself off from other human contact and understand this cryptic mathematical language. that's not as much the case anymore, and so it's changing. e.g., it's quite hip to have a MySpace or a Facebook. granted, those people are using computers, not making the programs, but I see this trend even in the informatics program at UCI. I don't know exactly why it is that CS is no longer dominated entirely by dorky middle-aged white guys, and I think it's definitely a change for the better, but we still have vestiges of that old regime lying around in lots of places.

    By Blogger Jystar, at Sunday, January 21, 2007 10:45:00 AM  

  • The arrogance is even more personal
    and less proffessional than might
    be presumed, I think. I am
    a physicist-turned-programmer, and
    software still has a long way to go
    before it exercises the humility
    and standardization inherent to real
    engineering. And much would apply.
    But the hacking is really still
    there. And the pride is a prickliness
    brought on by self-inflicted trouble
    "others just wouldn't understand".
    I could go on, but suffice it to
    say software is simple parts made
    into horribly complicated knots,
    and people are at the root. The
    principles of very complex
    manufacturing engineering can
    but have not been applied. Hubris
    often hides insecurity: "how could
    you understand"...anyway: it will
    still take decades to sort out
    the programming profession. The
    basics are still not ordered
    correctly. I feel for you (all?).

    ---Leonardo M.

    By Anonymous Anonymous, at Sunday, March 25, 2007 7:39:00 AM  

Post a Comment

Links to this post:

Create a Link

<< Home