Preventing Repetitive Stress Injuries for Programmers and Writers

Submitted by tomo on October 14, 2012 - 10:14pm

My situation

I'm a career programmer who has suffered from pain in my hands and arms for several years. Like carpal tunnel syndrome, this pain is from damage to tissue (including tendons) caused by lots of use - repetitive use. Thus the problems are collectively called repetitive stress injuries (RSI, also called repetitive strain injuries). For those who have carpal tunnel syndrome (CTS), the diagnosis is fairly easy - you can basically check yourself - and so is the treatment. The treatment is an invasive surgery that snips something inside your wrist (in the carpal tunnel) and this relieves the pain. Carpal tunnel surgery is regularly done with successful results. But my case was not CTS.

How I got there

As a software developer, I spent most of my day at work typing or otherwise using a computer. At home, it was the same (most of my colleagues, myself included, often worked from home as well). One day, while typing, I suddenly felt fatigue in one arm, and after a short while of compensating with my other arm it happened in the second arm as well. As the weekend was coming up, I just laid off typing for awhile but then the next work week started and I had to do something. My arms had still not healed. In fact, they would stay like that for a long time. The feeling was similar to having rock climbed for a few hours, leading to extreme muscle fatigue and swelling.

I went to see several doctors at several hospitals in two different states. But the doctors weren't sure what it was and blood tests and MRIs weren't helpful either. Some doctors thought it was tendonitis - pain and swelling around tendons, similar to "tennis elbow" (another RSI) caused when people practice tennis for too long. Treatments included over-the-counter pills for reducing inflammation, physical therapy to strengthen arm muscles, sonar massage (which feels quite nice actually), and wearing braces to support the hand.

What I've learned

RSIs are becoming increasingly common. They are a work-related injury, like cutting yourself as a cook or injuring yourself on some machinery at a factory, and so businesses need to take measures to lessen the likelyhood of them happening. When I worked at Hewlett-Packard, there was an on-site ergonomics expert who would come and fit your chair and desk to be more ergonomic. More and more people are working in offices and using computers all day at work. And tablet computing is a rising trend, but the iPad was NOT designed to be ergonomic and it's clear in the way people hold them while using them.

What you should do to prevent repetitive stress injuries

1) Stretch your arms and hands in the morning. Use one hand to pull your fingers back, then switch. You can also massage your arms and hands. Make sure blood is flowing through your hands and be aware of any cool skin temperatures which may be a sign that blood isn't flowing.

2) Take breaks periodically. Use a software timer to remind you to take breaks at least every half hour. If you are working by the Pomodoro method then this should happen naturally. You should also rest your eyes by looking out the window and focusing on something far away since you're focusing on your screen just inches away the rest of the time.

3) Use the right mouse and keyboard. Some people switch to using a keyboard for everything and not using the mouse since they feel moving their hand to use the mouse causes strain.

I've tried many different keyboards and mice trying to find what worked for me, including some very expensive and exotic keyboards (which didn't work for me). In the end I found that the light touch of a laptop keyboard (short depress height, light spring) suited me along with a large and responsive trackpad. Just remember that not all laptop keyboards and trackpads are the same.

4) Type and mouse less.

You can setup macros and shortcuts to type out long phrases. If you're not an accurate typist, try to improve that to cut down on the number of mistypes and pressing backspace/delete.

My trick is to use a foot mouse. I've bought a few different foot pedals for this and they're all expensive. But I've found that a foot mouse for actually controlling the cursor doesn't work well and isn't helpful. The big win is being able to click with your feet. And you actually don't need a special foot mouse for that. I've found a $5 Mitsumi USB mouse (you can connect several USB mice to a computer at the same time and they all work) set on a pad on the floor is just as easy to click with my big toe.

5) Use speech recognition software. I have been using Dragon Naturally Speaking for years. It's not perfect and you need a fast computer (the faster the better) but it's nice for drafting out long emails and posts.

Google and Microsoft are both working on speech recognition technology so it should soon be very accurate and ubiquitous. Android has it built into their phones and Apple has Siri which doesn't transcribe but at least understands natural speech.

6) Warm up before working. In the cold regions of the US, you will come into the office on cold (and dark) winter mornings. Let your fingers warm up before you force them to dance across the keyboard.

7) Strain from using computers can happen in other parts of your body as well. So make sure you have a nice chair with adjustable height, arm rests (arm rests are optional, sometimes it's better to do without them, but if they are on a chair their height should be adjustable), and you should have a keyboard tray. Adjust your monitor so you are staring straight at it rather than having to look down. When typing, your elbow should be down by your sides and bent at a 90 degree angle. Your feet should be flat on the floor.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <h2> <h3> <h4> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <div> <pre>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby>. The supported tag styles are: <foo>, [foo].
By submitting this form, you accept the Mollom privacy policy.
© 2010-2014 Saigonist.