Today’s newsletter is a bit more personal (I’ll continue the Total Work series later, probably next week, although this isn’t unrelated to it). I wanted to lock it to subscribers only, but apparently that’s not actually a thing I can do (the options are “Everyone”, “Free signups only”, and “Paying subscribers only”, which is bizarre). Oh well, I guess it’s being vulnerable in public time.
The prompt for this letter was a recent conversation with David Chapman. I mentioned some of my issues with working on my PhD, and he pointed out that I hadn’t written about it. He was right, and I think this is a good thing for me to write about, but a lot of of why I’ve not written about it is that it is, perhaps ironically given the subjects I do write about, quite a vulnerable subject. It involves me visibly failing in public, on things that I have a fair bit of identity attached to being competent in - writing, technical skill, and, ultimately, emotional management.
Monk expressed the sentiment recently that he found my whole program of “being better at feelings” quite abstract and hard to understand, and that having “I’m trying to get better at dealing with anxiety and depression” as an explanation helped him understand it better. I thought that today I’d use this topic to provide an even more concrete example of these tools in action, which is that of the titular question: Why am I not working on my PhD?
Is this going to be a bit of a self indulgent letter? Yes, probably. But that’s not really why I’m writing it: I’m writing it to try to show some of my working, because this is very much a problem still in progress, and maybe it’s interesting and/or useful to see what that looks like.
What’s the problem?
I’ve been doing my PhD for a bit over two years now and the truth of the matter is that I have not done two years worth of work in it. I’ve definitely done six months worth of good work on it, I’ve arguably done a year’s worth, but a lot of that time has been, if not wasted, at least spent doing other things.
This could be framed as a question of productivity, but I don’t think that’s right. Accepting the frame of productivity for the moment, I think my output is OK for those two years, in that my first paper is coming out soon and it’s objectively very good, and that’s not an awful place to find yourself in two years in. Ideally I’d be a bit further along, but in terms of normal range of variation I’m not really that far behind.
Ignoring the question of whether I’m productive or not (as I argued we should do in Life as Nonproductive Act), there’s still obviously a problem here a problem here, and the problem is not how well I’ve done, or even that I haven’t done better, it’s the reason that I haven’t done better.
I could be much further along than I am, but I have the following rather frustrating combination of things:
I have enough research ideas for about four PhDs.
I am confident that most of them will work.
In the abstract I think these are all very interesting things to be working on.
They are things I would consider good to have in the world.
I know how to pursue them and it’s only a modest amount of work.
I am not doing that work.
So the question is not really “Why am I so unproductive?” it’s “Why am I not doing these seemingly easy things that I want to do?”
If I didn’t know what I was doing, that would be fine - That’s just what research is like.
If I didn’t want to be doing the PhD, that too would be fine - I’d just quit.
But instead I find myself in an annoying position where I want to do this and there is mostly nothing stopping from doing it, except me, and I need to figure out what to do about that.
What’s the PhD?
I read and write about a lot of things, as you might have noticed, but there’s a sort of core philosophy / therapy / social sciences bent to most of it, generally centring on questions roughly in the shape of “What is it like to be a human among other humans and how can we do it better?”. I even sketched out a manifesto on that theme.
This is all very interesting and important, but it might make it a bit easy to forget that I’m actually a computer scientist.
(I mean technically I have zero qualifications in computer science - I’m trained as a mathematician and had a career as a software developer - but I’m working towards a PhD in computing).
My PhD has nothing to do with how to be a better human. At most, it has to do with how to be a better software developer, but even that is somewhat tenuous. My PhD is about software testing. Specifically, a problem called test case reduction.
What’s test-case reduction? Well, basically a test case is anything you can use to test a piece of software. It might be some script for how to use it (log in here, click this button, enter this data into this form, etc), it might be a file (e.g. a document for processing, a video), or just about anything else. “Test case” really just means “thing you can use to test”.
The problem is that generally when you test something with a test case, you’re going to want to debug it (because it’s broken), and in order to do that it helps to be able to read the test case. Many test cases are large and complicated, which makes them a pain to read. Test-case reduction is the automated process of trying to turn large and complicated test cases into small and simple ones, subject to the constraint that they are in some sense “interesting” - generally that they trigger some bug in some program that you’re interested in.
If you want to read more about the technical side of my work, I can recommend this paper that we’ve just put up a preview for. It’s the main thing I have to show for the PhD to date. Fortunately it’s also very good, so I don’t feel too bad about that, but I do wish I had more to show for it.
How did I get here?
Test-case reduction is a very weird and niche problem. Almost nobody works on it.
How did I end up working on it? Well, kinda by accident, and maybe that’s part of the problem.
I wrote a thing called Hypothesis. Hypothesis is a testing library for a programming language called Python. If you care about Python and software testing you could read this article I wrote about it. If you care less about that you could read this Twitter thread, which contains more depression, drunkenness, and cats:
David R. MacIver @DRMacIverIt occurs to me that due to idiosyncratic way I acquire followers and the fact that most of my tweets are not about my work, a lot of you probably don't actually know much about it. So, Hypothesis, do you know what it is and is it why you follow me? (poll)
At some point I decided to do a PhD around Hypothesis. Why? Well the joke answer is that I was failing to build a business around it but was really enjoying the research and development aspect of it, and one day I woke up and realised that there was a place for people who were good at research and bad at business.
Aside: I have a really obnoxious habit of taking self-deprecating humour seriously. This is because I know exactly what it sounds like when you say things as a joke in order to hide the fact that you mean them literally.
Anyway, after that realisation I started my PhD almost on a whim. Going from “Hmm I could do a PhD” to accepting an offer in less than 30 days isn’t a world record, but it’s definitely on the unusual side (Enabled by a mix of good timing, good connections, and luck).
Was that a good idea? I’m not sure. I think… probably. The PhD itself is not a bad idea and I am kinda glad that I’ve been doing it. But also probably I should have done some serious planning between that point and the start of my PhD and didn’t. On the other hand I didn’t really have any of the toolkit that I would currently find essential for doing so, so I’m not sure if that would have helped.
The reason my PhD is about test-case reduction in particular is that I got weirdly obsessed with it while writing Hypothesis. Hypothesis relies on test-case reduction in an essential way, and it does it much better than any similar tool that predates it (this is what that paper is about), and in the course of figuring it out I accidentally became a if not the world expert in test-case reduction, so it seemed kinda silly not to make it the focus of my PhD.
Unfortunately although I still think test-case reduction is quite interesting, that appears to not be enough to get me to do the needed work on it for a PhD.
What have I been doing instead?
Well *gestures vaguely at all of this* - on good days a lot of reading and writing, and you’ve been seeing the results - although the notebook blogging only started recently (i.e. in February 2020) I’ve been reading about all of this and trying to figure it out since 2018 or so, which was about a year in to my PhD.
I was talking to a friend recently, and he was expressing some concern that all of this work was distracting me from my actual research. I’d like to reassure you that this is not the case: If anything my level of research productivity has gone up slightly since starting my daily writing practice.
Unfortunately, this is mostly because that’s the only direction that was available for it to go. My level of research work was at basically zero near the beginning of this year - I did pretty well at the start and then hit an absolute wall.
The experience of working on my PhD felt very strongly resembled what I described in On feeling blocked. I was having every intention of working on my PhD and then my brain glitched and it was the end of the day and nothing of use had happened. I was having entire weeks go by where mysteriously nothing got done. At best I might have got some reading done, but even that probably wasn’t PhD related.
I was often thinking about my PhD, don’t get me wrong, I had a number of interesting and useful thoughts, and good conversations with my adviser. There’s plenty of interesting material that will definitely make it into my PhD that I thought of during this time. But somehow the ability to translate that into “actual work” never manifested.
This is actually how the daily writing practice started: as a way to ensure that I got something useful done every day, even if it wasn’t my PhD. It’s rather turned into its own thing, and that thing is helpful, but that was the starting point.
I’m also doing a lot of… nothing, really. I feel like a lot of my time disappears. Some of that is the sort of time disappearing that is spent having useful thoughts, some of it is time spent on Twitter, but who knows where the rest of it goes? Not me.
Some days I do go into with very good intentions of working on my PhD, and am just overwhelmed with a massive sense of futility and can’t bring myself to work on it. I’m given to understand that this is very normal for PhD students, but that doesn’t make it any less frustrating or easier to deal with.
Anyway that’s why I’m shaving this yak
“Yak shaving” is a common term in programmer circles. The idea is that you’re solving a problem, and in order to do that you need to solve a different problem, which leads to an issue with the tool you need to solve that problem, which… long story short, is why you are currently shaving this yak.
If you want to see one of the purest examples of yak shaving, I recommend the following clip:
Wiktionary offers two definitions of yak shaving:
Any apparently useless activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem.
A less useful activity done consciously or subconsciously to procrastinate about a larger but more useful task.
That sound you just heard was millions of programmers feeling extremely called out. It’s a fair assessment though, and one of the problems is that it’s very hard to tell the difference between the two.
The easy justification for all this work on emotional tools is that if I’m feeling this blocked on my PhD, developing the emotional toolkit to unblock my work on it is working on my PhD. Thus, all of this work is in fact work on my PhD, honest.
I don’t think this answer is entirely wrong. Certainly I’m obviously having emotional issues related to my PhD (who doesn’t??), and the tools I’ve been using to work on them have been very helpful for getting me unblocked at various points.
But I’m definitely yak shaving, and it’s not totally clear to me which kind of yak shaving I’m doing. There’s a good chance that I’m doing a lot of this because it’s the more interesting thing to spend my time on.
So why am I not working on my PhD?
Good question, wish I knew.
I mean today I know the answer - it’s because I took the day off to write this newsletter.
Frankly, this newsletter shouldn’t have taken all day to write, but it has. Partly that’s because it feels a little bit like a dialled down version of working on the PhD: I kept getting distracted midway through writing it and finding myself doing something else.
It’s easy to write that off as “difficulty focusing”, but it feels like a more specific aversion than that. It’s not that I don’t want to focus, it’s that I don’t want to focus on this specific thing.
I have time management tools for dealing with that. I divide a lot of my work up into 20/10s (like pomodoros but better - work for 20 minutes, take a mandatory 10 minute break) and yet somehow it’s taken me this far into writing the newsletter to remember that those are a things I could be doing.
Someone said of masks recently that you can’t just have the mask in your inventory, you have to equip it. I think the same is true of a lot of life skills - just having the skill isn’t enough, you have to use the skill. It doesn’t matter if you have good time management skills if you don’t manage your time. It doesn’t matter if you know how to deal with negative emotional states if you don’t do it.
And, until quite recently, I wasn’t doing it.
I’ve been trying to gently push myself into doing my PhD work with some really low bars for success, using the Making Success Trivial method. Essentially my goal was to make sure that I did at least one 20/10 of PhD work per week day (well, actually Monday, Tuesday, Thursday, Friday. I often do one on Wednesday too). Usually doing at least one causes me to overcome the activation energy and I end up doing at least three, maybe four or five.
Which is to say that I’m doing about an hour or two of work a day. Which requires me to acknowledge the uncomfortable truth that that’s an improvement. This is a lot of why I wrote Easy changes and Uncomfortable Reflections - when you’ve been doing badly, starting to fix that will tend to force you to acknowledge just how badly you’ve been doing.
One thing that will help is that I’ve got this paper out and that, in the end, I am very happy with it. Part of the problem is that the paper had become a fnord - something I couldn’t bear to look at.
It wasn’t like that at first, but it was rejected three times before it was finally accepted, and the fourth submission I basically flamed out right at the end and went “I can’t deal with this, Ally can you do it?” (Ally is my supervisor and also coauthor on this paper). Thankfully he did, and the submission was accepted, but I feel this is revealing of how bad it had become for me.
A lot of the problem here is that the academic publishing system, especially as it appears in computer science, is awful for me. Some of this is because it is objectively awful, some of this is because it is awful for me specifically in ways I have not developed good coping habits for, and a lot of it is because I cannot change anything to make it less awful.
It took me two years to get this paper published. I could have done it in half that, but I couldn’t have done it in less than half that, because it took four submissions to get it published and the average turnaround time on a submission was three months: You submit the paper, you hear nothing for that long, you are given responses from three reviewers who tell you that your paper is terrible, and you have a week to respond to them explaining why it’s not terrible at which point it all goes in front of a committee who decides that no the reviewers are right and you are wrong, the paper is terrible.
I… do not enjoy this process. I don’t enjoy it for a couple of reasons:
It is irredeemably dysfunctional and bears no resemblance to anything any sane person would devise for providing peer review.
I, personally, do not enjoy being at the mercy of faceless reviewers against whom I have no actual practical recourse to correct their opinions.
Conferences are on a once a year deadline so if rejected I have to retool the paper for another conference or wait a year. Also conference deadlines tend to cluster because all the conferences are at roughly the same time and there are only a handful of good ones.
The period of waiting to hear back is rather unpleasant because that potential rejection is hanging over me.
This paper got rather entangled with my feelings around all of that, and to be honest probably exacerbated them because a) It was about work I had invested considerable time and identity in (because it’s about a central feature of Hypothesis) and b) It was my first, so I had no prior exposure to this process.
Now that the paper is out of the way I do feel that pay off is possible. It’s not remotely enough to justify the process, but it at least no longer feels quite so implacable. In addition, thinking about my PhD no longer triggers an association with this paper which triggers a massive “ugh I should be working on that and I don’t want to” ugh field.
I don’t feel good about the paper yet exactly, but the potential to feel good about it now exists. There is a massive relief in being done with it, and the ability to acknowledge that it is objectively a very good piece that I, in the abstract, am happy is now out in the world.
Unfortunately, of course, any future papers I write will have to go through the same process, and I must admit I’m dreading that, and I suspect that this is at the core of why I’m not working on the PhD - it’s a feeling that successfully working on my PhD would be almost as bad, if not worse than, failing it.
So I think I need to figure out some ways to compensate from this. Both workflows that deal with this problem better, and also ways to become a bit more emotionally resilient in the face of it. Perhaps ones where I can achieve a bit more indifference to the acceptance process, and treat the process of writing as an ongoing one that is an end in and of itself, which occasionally results in published papers. I tweeted about doing this for reading recently, and maybe I should do this for writing too.
So why am I doing a PhD at all?
This is a good question that I keep asking myself. I am aware that having a crisis of confidence about why you’re doing a PhD at all is part of the universal PhD experience, but even so I think about this a lot.
The main issue is that I don’t actually care that much about getting this PhD. It’d be nice to have, but the main benefit of it is a bunch of doctor doctor jokes. I do care about having done the work that goes in to the PhD, in that I’d really like to have a bunch of papers published about test-case reduction.
Mostly I would like to do this because I know far too much about test-case reduction that other people don’t know and I would like them to know it so that it’s no longer my problem. I find test-case reduction interesting, and I wish more people worked on it, but it’s not the issue I’m prepared to devote my life to and frankly I think I’ve devoted about as much of my life to it as it deserves.
I’ve talked about how the accelerator/brake model is everywhere. I think the issues above with publishing are a good example where the brake is on here, but the truth is that maybe part of the problem is also that the accelerator just isn’t on. I do want to do this work, but I’m not sure I want it that much.
I’ve talked on and off about how one of the goals of my feelings project is that of expanding my positive emotional range. Almost two years ago a friend asked me what joy felt like, to which my answer was “Damned if I know”. Despite recent writing on the subject I still don’t really know.
There’s clearly a missing skill here on how to cultivate joy in something, but I don’t quite know where to look for that. Some of it may come from just playing around with it and trying to find new things about it interesting - it is an interesting problem - but I don’t know how well that will work.
So what now?
I think the key insight in this email was “It’s not enough to have it in your inventory, you have to equip it”. I’m so far from done in developing this toolkit that it’s not even funny, but I’m definitely at the point where the reason why the toolkit isn’t helping with my PhD is that I’m not actually using it to help with my PhD, and I need to start doing that.
Writing this email laying out the problem was very helpful. The next major thing I’m going to do is talk to Support Group about this, as we have a meeting tomorrow. After that, I will attempt to hit the ground running on more PhD work this week. That may require a certain amount of strategic planning around how to actually tackle the problem with these tools.
I will note here that even the idea of doing that causes me to respond with a visceral ugh reaction. I clearly need to debug that further, although my suspicion is that it will be amenable to the general emotional toolkit.
The ultimate test of all these tools I’m developing will, I suppose, be whether I get a PhD at the end of this, because if I continue on as I am I’m definitely not going to, which would be ridiculous given how much I have going in my favour.
Which, I suppose, is an interesting test of all of these tools in and of itself. It’s certainly not the case that working on the PhD means that I’ll stop all of this work. If anything it will accelerate it. I’ve said before that the fastest way to learn something is to do something and, while getting a PhD is not exactly fast, hopefully some of the next steps will be.