Interview with Katrina Owen

Interview with Katrina Owen

UGtastic Archive
Transcript Verified
The Interviewer

Mike Hall

Interviewer, community organizer at UGtastic

The Guest

Katrina Owen

Developer and Open Source Contributor, Creator of Exercism.io

The Conversation


Mike Hall Interviewer, community organizer at UGtastic
Hi, it's Mike with UGtastic. I'm here at SCNA 2013 and I'm sitting down with Katrina Owen, who is going to be giving a talk called 'Here Be Dragons.' You're the last talk of the sessions, so I wanted to make sure we caught up now. 'Here Be Dragons'—what does that mean?
Katrina Owen Developer and Open Source Contributor, Creator of Exercism.io
It's a reference to old mapmaking where explorers would draw dragons in the parts where they didn't know what was there. My talk is a code review, so it's a metaphor for all the scary things you don't know are in the code. I'm using an anonymized version of production code I ran into a couple of years ago.
Mike Hall Interviewer, community organizer at UGtastic
Does the person who wrote it know you're doing this?
Katrina Owen Developer and Open Source Contributor, Creator of Exercism.io
No, hence anonymized. It's actually kind of awkward because they weren't on the team when the bug was reported. I started looking at the code, and it was crazy, so I asked around the office to see who wrote it. Nobody recalled writing it! When I finally checked git blame, I found out who it was, and they truly had no recollection. That happens when you have thousands of lines of code over years. And sometimes, you check git blame and the 'idiot' who wrote the code was actually you.
Mike Hall Interviewer, community organizer at UGtastic
That's a good reminder to be kind, especially when the person who wrote it might be sitting right next to you. What makes this specific code worth a talk?
Katrina Owen Developer and Open Source Contributor, Creator of Exercism.io
The code is so bad it has a punchline, but I really use it as an excuse to talk about the people issues. We have a tendency toward the Fundamental Attribution Error—assuming code is terrible because the author is 'stupid' rather than understanding the pressures they were under. Maybe they were new to the language, or under a tight deadline, or just really tired. If we knew the pressures, we would assume they wrote it that way for a passing, temporary reason.
Mike Hall Interviewer, community organizer at UGtastic
There was a recent situation on Twitter where someone was blasted for a first-time open source contribution, and it was quite harsh. It made people think about being kinder. Is that the line you're walking?
Katrina Owen Developer and Open Source Contributor, Creator of Exercism.io
I do tear this code apart because it makes a good story, but in real life, I try to be both kind and realistic. I look at the code and ask questions about context: 'What trade-offs did you consider? Why did you go in this direction?' Sometimes they say, 'I didn't know that method existed,' and I learn something too. Other times, they had a constraint I didn't see. We aren't fixed points of intelligence; we flex based on context.
Mike Hall Interviewer, community organizer at UGtastic
So the point is to be context-aware rather than context-free.
Katrina Owen Developer and Open Source Contributor, Creator of Exercism.io
Exactly. Stay aware of the fact that there is context. Let that inform the questions you ask rather than the judgments you make.
Mike Hall Interviewer, community organizer at UGtastic
I think that's a great point. One goal of these interviews is to humanize people who are otherwise only known through technical personas or online handles, where they can sometimes be abused because people forget they are human. We all make mistakes and fumble.
Katrina Owen Developer and Open Source Contributor, Creator of Exercism.io
The reason I wanted to do this talk is that I'm actually very bad at empathy. People talk about it constantly, but I can't always conceive of what they mean. However, when you explain it as 'asking about the pressures rather than making judgments about who they are,' I can do that. I know how to ask questions. That is a concrete way I can practice empathy, even if I'm someone who is naturally quick to judge.
Mike Hall Interviewer, community organizer at UGtastic
If we can feel frustration with the code, we can probably bet the author was frustrated writing it too. It all comes back to context.
Katrina Owen Developer and Open Source Contributor, Creator of Exercism.io
Yeah. Thank you for having me.
Mike Hall Interviewer, community organizer at UGtastic
Thank you, Katrina.

Critical Insights


durable
"The Fundamental Attribution Error in software: Developers often attribute 'bad code' to the author's lack of intelligence (dispositional) rather than the external pressures, deadlines, or lack of knowledge at the time (situational)."
durable
"Empathy as a technical practice: For those who find the abstract concept of empathy difficult to grasp, it can be operationalized as 'asking about the pressures and constraints of the author' rather than making character judgments."
durable
"The 'Git Blame Paradox': The emotional distance provided by technical tools can lead to harsh judgments of others, yet we often find ourselves being the very authors of the code we once criticized."
durable
"Code review should be a dialogue of discovery: Asking 'Why did you go in this direction?' often reveals hidden architectural constraints that the reviewer was unaware of."
durable
"Intelligence is not a fixed point: A developer's performance varies significantly based on current context (tiredness, personal stress, environment), and code represents only a single snapshot of that fluctuating capability."