Rambles around computer science

Diverting trains of thought, wasting precious time

Tue, 06 Oct 2009

Management bonus

My PhD is still mired in what has been a fairly protracted “development phase”---doing lots of coding. I'm not the quickest coder in the world at the best of times, and for some reason my current progress feels especially slow. At various points I've found myself thinking something a bit unexpected: I wish I had a manager.

What do I mean by a “manager”? I suppose it means someone who knows the technical path that I'm following: the overall structure (dare I say “architecture”) of what I'm building, and what my milestones are. This is useful because when you get stuck in a development rut, such a person can either prod you towards the way out, or suggest an alternative strategy that backs out of it and then avoids it. Motivationally, they also fill the role of someone to report your successes to. It's hard to sustain self-motivation when you're the only person who cares about your “little” practical achievements. That contrasts with the “big” research achievements, which of course your supervisor (and the wider community) should definitely care about. But this is one way in which “manager” is not fulfilled by “supervisor”---I think most PhD supervisors, at least in CS, don't take a close enough view to see those internal milestones (and for sound enough reasons, I'd probably add).

Being concrete for a moment, I'm doing a lot of work with DWARF debugging information right now. It was only through a chance chat with a fellow PhD student that the idea of using debugging info occurred to me, whereas previously I'd been wasting time experimenting with mining my own binary metadata by exercising the C compiler. Recently, I had got into a major rut in my consumption of DWARF data. I made a major resolution which, had I had a manager, I might have found myself doing much earlier: firstly, that building a better abstraction layer over DWARF is a jolly good idea, and secondly, that I can make all-important progress in my mainline Cake compiler without doing a complete job on this up-front, simply by choosing a different example use-case as my first target. I'm feeling a lot more optimistic thanks to these resolutions, but it took me far too long to make them---I was too close to the coal face to see them.

It might sound like a weakness that I'm not succeeding in “being my own manager”. Doesn't that mean I'd be a poor manager myself? There might be some truth in this, but in my defence, I think the gain is mainly from having two heads to knock together. Being the developer, it's very easy to get close enough to what you're doing that the longer-term rut-avoidance path just isn't very apparent. Maintaining the further-in and further-out vantage points is hard to do in one head, which is probably why management roles exist in the first place.

[/research] permanent link contact


Powered by blosxom

validate this page