The Observation Deck

Search
Close this search box.

Month: September 2010

My father is an emergency medical physician, a fact that has had a subtle but discernable influence on my career as a software engineer. Emergency medicine and software engineering are of course very different problems, and even though there are times when a major and cascading software systems failure can make a datacenter feel like an urban emergency room on a busy Saturday night, the reality is that if we software engineers screw up, people don’t generally die. (And while code and machine can both be metaphorically uncooperative, we don’t really have occasion to make a paramedic sandwich.) Not only are the consequences less dire, but the underlying systems themselves are at opposite ends of a kind of spectrum: one is deterministic yet brittle, the other sloppy yet robust. Despite these differences, I believe that medicine has much to teach us in software engineering; two specific (if small) artifacts of medicine that I have incorporated into my career:

  • Morbidity and mortality. M&M is one of the most sacred rites of modern medicine: a regular meeting (often every week) in which physicians (and physicians alone) discuss — in detail — every case of morbidity or severe complication on their watch since the last meeting. The purpose of this meeting is to learn from failure, and physicians in M&M are brutally honest with themselves and their peers to determine what happened and why — and if any other outcome was possible. Engineering often stands to benefit from this same kind of rigorous self-examination, and at Sun, I initiated the Kernel Technical Discussions to be allow such a forum. My inspiration for this was very much M&M, but the meeting quickly shifted to reflect the natural forward-looking disposition of engineers: KTDs were used much more frequently to discuss the details of some technology in development than to analyze defects in the system and address systemic (and especially, human) failure. And it may well be that the discipline is still moving too quickly to broadly merit M&M — but I think many software engineering organizations would stand to benefit be examining what went so horribly wrong and why.
  • Journal Club. A Journal Club is simply a regular meeting (often monthly) of practitioners to discuss research articles, with a particular eye to the impact on their daily work. Journal Club is not unique to medicine — many academic departments (and especially the biosciences) have similar or identical constructs — but its roots are in medicine, and its bias remains to inform the practitioner of published research. In my father’s emergency department, Journal Club was a monthly event hosted in the evening at the house of one of the attending physicians, with the host responsible for supplying food and drinks for the fifty or so attendees of the 2-3 hour meeting. For my sister and me, Journal Club at our house was a kind of annual holiday, for it represented the one sanctioned vector by which soda pop (an otherwise forbidden nectar) found itself in the fridge — seemingly by the ton.

    At Joyent, I have instituted a regular Journal Club meeting. It’s still nascent, and we’re still finding our footing a bit, but so far it has spurred some interesting conversation. In particular, we have engineering participants from across the company (development, operations and support), and have found Journal Club to be a forum (and discussion of research papers a vector) for healthy cross-organizational communication. So far we have discussed James Hamilton’s excellent (and influential) On Designing and Deploying Internet-Scale Services and Benson et al.’s A First Look at Problems in the Cloud, a paper that was as thought-provoking for its limitations as for its strengths. This will continue to be a regular (monthly) event at Joyent, and I believe that it will bear fruit in terms of more informed engineering — be it in terms of development, operations or support.

M&M and Journal Club are two ways that medicine has influenced software engineering (or mine, anyway); what of the influences of information systems on the way medicine is practiced? To explore this, we at ACM Queue sought to put together an issue on computing in healthcare. This is a brutally tough subject for us to tackle — what in the confluence of healthcare and computing is interesting for the software practitioner? — but we felt it to be a national priority and too important to ignore. It should be said that I was originally introduced to computing through medicine: in addition to being an attending physician, my father — who started writing code as an undergraduate in the 1960s on an IBM System/360 Model 50 — also developed the software system that ran his emergency department; the first computer we owned (a very early IBM PC-XT) was bought to allow him to develop software at home (Microsoft Pascal 1.0 FTW!). I had intended to keep my personal history out of the ACM discussion, but at some point, someone on the Board said that what we really needed was the physician’s perspective — someone who could speak to the pracitical difficulties of integrating modern information systems into our healthcare system. At that, I couldn’t hold my tongue — I obviously knew of someone who could write such an article…

Dad graciously agreed, and the resulting article, Computers in Patient Care: the Promise and the Challenge appears as the cover story on this month’s Communications of the ACM. I hope you enjoy this article as much as I did — and who knows: if you are developing software that aspires to be used in healthcare, perhaps it could be the subject of your own Journal Club. (Just be sure to slip the kids a soda or two!)

Recent Posts

November 26, 2023
November 18, 2023
November 27, 2022
October 11, 2020
July 31, 2019
December 16, 2018
September 18, 2018
December 21, 2016
September 30, 2016
September 26, 2016
September 13, 2016
July 29, 2016
December 17, 2015
September 16, 2015
January 6, 2015
November 10, 2013
September 3, 2013
June 7, 2012
September 15, 2011
August 15, 2011
March 9, 2011
September 24, 2010
August 11, 2010
July 30, 2010
July 25, 2010
March 10, 2010
November 26, 2009
February 19, 2009
February 2, 2009
November 10, 2008
November 3, 2008
September 3, 2008
July 18, 2008
June 30, 2008
May 31, 2008
March 16, 2008
December 18, 2007
December 5, 2007
November 11, 2007
November 8, 2007
September 6, 2007
August 21, 2007
August 2, 2007
July 11, 2007
May 20, 2007
March 19, 2007
October 12, 2006
August 17, 2006
August 7, 2006
May 1, 2006
December 13, 2005
November 16, 2005
September 13, 2005
September 9, 2005
August 21, 2005
August 16, 2005

Archives