Page Trail: [[ Xfce Stopwatch Plugin > Diego Ongaro > Blog Index > Lighttpd Fails to Bind to Localhost > My Brain is Out of Memory ]]
2010-02-06 14:30

I'm not writing enough.

The databases course I'm taking is all about "IOs", the number of disk reads and writes it takes a database system to service a query. In the examples, the data sets are too large to fit in the available memory, so they need to be stored on disks. Disk IOs are extremely slow, however, so the course treats them as the only interesting predictor of performance. But I'm working on a databases project, RAMCloud, that works in a completely different way, and all this talk about disk IOs seems archaic to me.

Still, there is something I can take away from the course. While RAMCloud doesn't have a tiny amount of memory to work with, my brain does. If my brain's memory is running low, despite the performance penalties involved, I need to write thoughts down and store them for later use. Otherwise, I'll forget what I've been thinking about and have to start all over.

In its current form, RAMCloud is an elegant but complex beast. We have a lot of design choices to work out, and we can't just take them one at a time. As I race from thinking about one design concern to the next, I rarely take the time to record my thoughts well enough to easily pick up the discussion later. The next time I come back to a topic, my brain panics, assuming that it's a new problem with no clear solution. Then, thousands of IOs later, I slowly pick up on my old train of thought. It's a waste of time. It's even worse when I interrupt other people and get them freaking out over the same thing, only to re-discover the solution together a few minutes later.

I just read an excerpt from Switch: How to Change Things When Change Is Hard by Chip and Dan Heath, which has two great examples of how costly interruptions can be. In the first, nurses make mistakes with medications because others (surgeons, even) are interrupting them. In the second example, hitting closer to home, software engineers delay their release schedule substantially by interrupting each other. I feel guilty. I've been interrupting my officemates and group members too much, and I think it's hurting everyone.

Here's what I'm going to do

To interrupt someone, I have to knock on an imaginary door. I'm going to make the person inside stop what they're doing, get up, walk to the door, and open it for me. By the time they get back to what they're doing, they will have trouble picking it back up. I need to justify why I'm knocking, and I need to come prepared.

Next, when I'm done with that conversation, or when I'm done with any task, that's a door I'm closing. Someone, maybe me, will eventually come back and open that door. It's my responsibility now to not waste their time later. If there's something they will need to know, it's up to me to write that down while I still remember.