I met up with a couple of my closest friends from uni over the weekend. At the end of what was a rather tough week (plugging away at debugging several issues regarding distributed systems) where everything seemed to center around getting a bunch of servers to behave as I wanted them to, it felt very different and somewhat refreshing to take a step back. I’m usually quite capable of focusing aggressively on a task at hand, which usually is good as far as said task is concerned but may not be optimal in general terms.
We played Loaded Questions, and one of the questions that came up was what we didn’t like about our professions. Being a bunch of Computing alumni, the set of answers was probably not too surprising:
- The salary.
- It’s difficult to measure performance.
- The algorithms are too complex.
I contributed #2 (though to be fair, thinking that I submitted either of the other answers is not entirely unreasonable – from an earlier post you can see that I investigated what looked like a 1 basis point shortfall in interest payments, and I just said that I had a tough week with debugging). Though I’ve tried to consider frameworks for evaluating this, I frequently find myself using outcomes and deliverables as primary measures of performance. This leads to me assessing myself based on my ability to get things done regardless of the costs or means required, and there are many factors beyond my control that can influence these.
I think this is a bigger issue when dealing with areas where I tend to believe I’m largely in control of the volume and quality of “output”, whatever that means. For example, as far as my investment portfolio is concerned, I tend to prefer to set goals along the lines of “set aside at least N for investment, incurring fees less than F” (largely controllable), rather than “portfolio net worth to be at least N” (I don’t believe I have the edge or insight to be able to be in control of such goals). I like to think software is a domain where I do exercise quite a bit of control over what I write, so it certainly is an issue in that sense.
In any case, I was happy to have had the opportunity to cool off a little. I think it’s a good thing that I can and do take my work pretty seriously (it has led to reasonably solid results in the past), even if it comes with the occasional tradeoff of getting excessively absorbed in it. On balance I think it’s a positive trait to have, but it’s important to remember that there are many things beyond whether an invariant holds in a bunch of servers.