So many of my colleagues have some degree of trouble with their
hands/wrists/arms. It’s a serious occupational hazard. Agile coding is a slightly different ballgame for me in terms of wrist problems.
My physical therapist for my first, worst episode — the episode that
left me with permanent nerve damage, nearly 20 years ago now —
stressed to me that damage is cumulative. Young coders can think
they’re invulnerable, but I’m here to preach to you: the pain can end
up being permanent. If it hurts to type, stop typing — please don’t do what I did, viz., shrug and keep going.
In the Agile/pair programming world the setup for workstations tends
to be a flat table, no special equipment, so that workstations are
interchangeable. No keyboard trays, nothing — not the best ergonomically. Here’s how I cope:
- I have a great chair, an armless ZackBack (um, yes, I’ve written my name on it in big black letters, why do you ask?). Posture can be really important to keeping your arms healthy.
- I use a flat keyboard, with as light a touch as possible — Macally is working well for me.
- I put the keyboard in my lap, which creates a better angle for me.
Alas, sometimes it maketh my typing to suck, but usually it’s okay.
- I use two alternative mice: a Roller Mouse for clicking and most steering, and a pen mouse for the rest of the steering. It’s best for my hands if I use both of them to mouse at once. Clicking with the pen mouse once caused a flareup, and the roller mouse gets a little wild for precision steering, which means I put my hand in a bad position trying to control it. I used to use a foot mouse, and I recommend that too if you don’t mind a loud clomping sound every time you click. High learning curve with the steering, but great low-impact clicking. My fabulous former boss Lynne Cameron thought of it. (Miss you, Lynne!)
- I turn on Sticky Keys, which means I don’t have to hold multiple keys at once. Unfortunately, it can be hard on my pair if we forget to turn it off. Sorry, folks. Think of it as a variant of Dvorak. Note that it’s a good idea to disable the “beep when a modifier key is turned on” option if you value your sanity, and enable “Press shift five times to turn on or off”. (Also that, arghh, the new Apple keyboard goes a little berserk with Sticky Keys turned on. The arrow keys don’t work at all, for example.)
- I make sure the monitor (we’re an all-iMac shop) is on a riser or phone book or something so that the top of the screen is level with my eyes. Bent neck equals bad posture.
All these help to make the setup sustainable for me. The other thing
about pairing that makes sense ergonomically is, of course, the fact
that your hands get a break whenever your pair is typing (if you ever
let them type — I am a confirmed keyboard hog, but I’m trying to mend my ways!).
Just one more wrist hazard of agile coding: all the self-applauding and high-fiving — paired code is so much better than code written solo.
How do you cope with your wrist limitations?