Next week we’re having Bug Clearout Week, so all of our regular projects are going to be on hold while we clear a bunch of small things out of the backlog. My two major projects both went into code review on Tuesday, plus we’re doing a bunch of server maintenance this week, so I was left facing the rest of the week with only a litle bit of time to get started on something.
Yesterday I grabbed something small from my queue: Paul wrote the code that produces a weekly internal email that reports on certain aspects of what users of our site have done in the past two weeks. Someone took a screenshot of the email, which said something seemingly impossible about elementary school students. Something that goes against all of our experience working in education. It was my job to track down the error in Paul’s query and fix it.
Because I am telling this story, you know that Paul was right. If you know Paul this does not come as a surprise. In retrospect, I should have known that given a choice between Paul’s code being wrong or something impossible happening, that Paul is right and the universe is wrong.
So, Paul’s query was right. But maybe the database was lying to us? So I checked a different – but closely related – metric that is recorded by remarkably simple code and was written by someone else. Same signal. Checked a log that is a weaker proxy for what we are measuring. Still showed the same skew. What about the login log? Even at that coarse a level, the information was still consistent.
Debugging abstractions of eight-year-olds is going to be remarkably difficult. Fortunately, my two main projects got bounced out of code review pretty quickly (which is what I expected because I needed implementation advice about the novel parts of each of them). I can spend the rest of this week algorithmically slinging large quantities of information around The Cloud.