Even when I felt like the pain wasn't that bad it was easy to see that I wasn't working as consistently or for as long periods of time as I had been previously. This is a particularly bad position to be in for programming considering how much time I actually need to work uninterrupted to have a chance of getting into a state of flow.
So I set out to try and fix the problem in the usual fashion of trying things until something worked and being entirely too stubborn to visit a professional.
First Change: Advantage Kinesis Keyboard
My first big change was moving to the kinesis keyboard. I'd heard good things about it and figured the change would help. Of course it was an effort to learn how to use a different keyboard layout.
In the end it took a couple of months to get back to my usual typing speed with it, the first week was particularly hellish. Learning a new keyboard had some side affects though, in particular I seemed to have slightly higher accuracy when I type on it than other keyboards, I suspect this is because of the key layout enforcing some more disciplined typing on me.
I find the kinesis particularly enjoyable to type on, due to the comfortable form and high quality keys. The presence of macros turned out be unexpectedly useful, I didn't expect to like them as much as I do but having key combinations for common bits of code is excellent.
The kinesis did improve my hands a bit, but in the end it turned out to be a long way from a cure. After a few months I moved onto the next project, one that I regret not having started off at the same time as moving to Kinesis.
Second Change: Dvorak
The next change I tried was moving to Dvorak. I wish I'd done this at the same time I moved to the kinesis I expect it wouldn't have extended learning time too much. As it was I spent a while thinking the new keyboard and better posture was enough until an intense period of work left me in significant pain again.
Learning Dvorak took significantly longer than moving to the kinesis in terms of regaining my typing speed, although I found I was able to touch type again in the sense that I had a working mental map of which key was which quite early on. Being able to hold conversations online again(~40wpm) took a week or so, but actually getting back to being a decently fast typist was closer to 4 months.
I've also found that the move to Dvorak means I can no longer use qwerty, while I can still type fine on non kinesis keyboards.
Like the move to the Kinesis, changing to Dvorak improved matters a bit but wasn't enough. Particularly when it came to wanting to write longer pieces.
Third Change: Voice Recognition
Another batch of work left me in pain and with Nanowrimo coming up again I needed something that would support writing large amounts over short periods of time.
I'd tried Dragon: Naturally Speaking a few years ago and it had fallen over on my accent. I decided to give it another shot though and it turned out to have come a long way in the last couple of editions.
It required a silent room and a decent microphone to work decently. But once I'd spent a couple of hours teaching it my speech it was able to recognize the vast majority of what I was saying and at speeds far beyond anything I've ever been capable of typing. It also had an interesting side-effect in that the "writing" I produced with it had a much more conversational tone than most of my other writing does.
The biggest issues were that it didn't have certain words in its dictionary, finding the requisite quietness and dealing with the higher amount of editing required to catch small errors. Mostly these were manageable but it meant I had limited periods when I could get the ongoing privacy necessary. There were particularly irritating moments when someone started saying something to me and my laptop froze up trying to process all the input that was suddenly coming in.
Voice recognition has come a long way and I can recommend it for longer form writing; however, I hadn't managed to use it with any great success for coding or technical work, so another solution was needed.
Fourth Change: Rob
Rob ended up being the best answer to actually giving me the ability to not type at all for three months or so, actually letting some of the damage I've done to my hands heal. He was an experienced developer who wanted to learn Rails. This meant I could pay him a modest amount in exchange for me teaching him about Rails while he did all my typing.
In essence, it was a training style pair programming arrangement with me always navigating. It turned out to be an excellent fit for both of us. Rob learned a lot about Rails in a short period of time and we had most of the focus and problem solving benefits that come from pair programming as well.
After three months of us traipsing around cafes and coding together Rob had learned enough that I hired him as a full time developer and my hands had healed enough to be able to type reasonably comfortably again. Possibly the best win-win working arrangement I've managed to create.
If my hands ever start to bother me too badly again then I'll go straight to finding a new Rob.