This is second article from series on Ergonomics for Software Developers. Click here to read first article.

We sit all day long. Improper posture and bad chairs will cause back pain, hand pain and will tire you excessively. Good chair and proper working position are must if you want to be productive and healthy while working with computers and you should not skimp on that.

So what’s the proper sitting position? OSHA recommends following:

  • Hands, wrists, and forearms are straight, in-line and roughly parallel to the floor.Correct Ergonomic Sitting Position
  • Head is level, or bent slightly forward, forward facing, and balanced. Generally it is in-line with the torso.
  • Shoulders are relaxed and upper arms hang normally at the side of the body.
  • Elbows stay in close to the body and are bent between 90 and 120 degrees.
  • Feet are fully supported by the floor or a footrest may be used if the desk height is not adjustable.
  • Back is fully supported with appropriate lumbar support when sitting vertical or leaning back slightly.
  • Thighs and hips are supported by a well-padded seat and generally parallel to the floor.
  • Knees are about the same height as the hips with the feet slightly forward.

You need to setup your working environment to these specs but also so everything is comfortable for you. I don’t think anyone can tell you what is comfortable for you since we are all different, so take these as guidelines. Adjust height of your chair, position of the monitor and keyboard so you do not hunch, your elbows are at 90 degrees and back is straight and relaxed.AeronChair

This is sitting position in my experience it’s pretty robotic. You just can’t sit like this all day long, you’d go numb. Its boring. I think it is good alternating solution though.

That brings me to alternating. I think for best effect you should change how you sit throughout the day. Sitting in same position all day long, no matter how good that position is, is not healthy long term. So, change up! Move from office chair to kneeling chair and then to sitting on ball or standing work.

For standard office chair I recommend Aeron chair or Humanscale freedom or Liberty chairs. They are expensive though, but if you spend that much time in chair they are certainly worth it. Try looking for them locally in stores that sell used office furniture. You can find very good deals on these chairs that way. I can attest that Aeron chair is rock solid and can last years. Mine is over 5 years old and still looks and works like brand new.

Good alternative and much cheaper I might add are kneeling chairs. Kneeling chair creates an dropped angle for your thighs so they are not at 90 degrees like in regular chair, rather dropped to 60-70 degrees with some of the body’s weight supported by the shins.

This creates an open body sitting position and keeps spine in alignment.

You can find best pricing for kneeling chairs on eBay. They go for about $50-$150 depending on how lucky you are. Look for adjustable height chair for first type. Here are two types of kneeling chairs:

Kneeling Chair For Developers

And this one that I like since it allows some rocking movement while sitting which is very beneficial:

Kneeling Balans Chair for Software Developers

SeatingBallWhile researching chairs, I’ve seen many people swear by sitting on exercise ball. I plan to try it. They say it takes some time to get used to since you are balancing yourself on the ball, but it allows you lots of flexibility while sitting and provides some abs exercise too.

I can see how this is very beneficial. It forces you to balance yourself and aligns your spine. Since you are balancing all the time, you are changing position frequently which is my main concern with office chairs. And as additional benefit you get some workout, and hey, any workout I can get I am not going to deny :-).

This is very cheap thing to try since these balls cost $15-$30. There is no reason not to try it especially if you have back pain.

Personally I switch between Aeron and kneeling chair throughout the day (for my sitting positions) and it works great. I will be adding exercise ball to my seating set soon.

Standing working position

Many people spend whole working day in standing working position. The benefits seem to be better posture and less back related problems, sense of freedom with both movement and thought and little workout.

I have standing station setup that I use as well and I can attest to posture and freedom benefits. I think workout claims are dubious since you are practically standing all day. I do not think standing all day is good for your legs, since many other professions that require all day standing have different set of problems, but as occasional change of pace it is wonderful.

I have found that in standing position I am more eager to take regular brakes since you can simply walk away. I found long sessions to be tiring so I limit this to couple of hours a day at most.

For this setup you do not need anything fancy. If you do not already have a high table, you can get one cheap from IKEA. For example BILLSTA (http://www.ikea.com/us/en/catalog/products/S39831493 ) is $120 small Bar table that works great for this. Combine it with Galant extension (http://www.ikea.com/us/en/catalog/products/S89843747 ) used to raise monitor and you have standing setup for less than $200.

On another end of pay scale, if you are feeling rich, there is this good looking desk AirTouch by Steelcase that has adjustable height for about $1000 so you can easily switch between standing and sitting position:

AdjustableSteelcaseTable

All this is really simple and easy to implement if you’ve been told that you should care about it. I hope this gets you thinking and changing the way you work for better. Let me know what you think and whether you found this helpful.

 

What would happen if you suddenly could not type? What would happen to your family if you could no longer make money as software developer or do anything that requires fine hand control? We don’t think about it, but this is real possibility if you are working with computers all day long. Consider this and think what if…

If you think it can’t happen to you I challenge you to do simple test. Install WorkRave and track how much you type each day. Look at the statistics and calculate how many keys you press each minute, every single day. Then think about whether there is anything that is designed to work at such rate without problems…

I’ll give you an example. Lots of days I average about 20,000 key strokes per day. For an 8 hour day that means that I press on average 41 keys every single minute for 8 hours straight. Even if you type 10,000 key strokes a day you average 20 key presses every single minute for 8 hours uninterrupted! Is there anything that can sustain that work rate for 40-50 years without problems?

There isn’t, and unless you take care of your hand health you will be faced with pain at least, and that is guaranteed.

This is first article in series with goal to transfer to you everything I have learned on this topic. I will cover everything from hand exercises, choosing keyboards and mouse, work chairs and tables and everything in between. I want you to take your hand health seriously because your hands are feeding you.

Note that I am not medical professional, just developer like you. This is not medical advice. For that consult your doctor. Idea is to get you thinking and share what I know and what works for me. Ideas is to get you motivated to start caring for your hands before you encounter problems, because after you are in pain, it might take years to recover. Please feel free to add your comment to each article in series with your experiences and you’ve found works for you.

When I started developing software there were no best practices regarding ergonomics established. Even today most developers or heavy computer users don’t pay attention to it until something happens.

That something is some manifestation of repetitive strain injury, RSI, and our industry is ripe with it. It is something lots of people don’t talk about publicly, perhaps from fear of admitting it and losing their job or perhaps they take it as normal. Whatever the reason, there is lot of pain going around. If you browse any computer related forums you will encounter plenty of people looking for help and suffering from hand and back pain all caused by computer work.

Pain can be in fingers, forearms, shoulders, neck or back. Lot of it is caused by choice of crappy keyboards and mice, bad chairs, improper posture and bad work habits.

So here are the links to the individual posts in series that I am going to write (I will add links as I finish those articles):

I hope you find these posts useful and that they get you thinking and reassessing how you work. Feel free to comment and add your opinions.

 

We just posted new build of DotNetBar for WPF 5.4 and we included all new Office 2010 style with silver color scheme. Here is screen-shot, it looks absolutely beautiful on Windows 7 or Vista with Glass enabled (click on image for full-size):

DotNetBar for WPF with Office 2010 Style, Silver color scheme

Now, the Office 2010 is still in beta and visuals are being worked on so you can bet that styling will change in final release. This is just first cut and we will track and make changes as the designs are finalized. You can also expect more color schemes in future.

Hope you like it. Full functional trial version can be downloaded by clicking here. Customers please visit Customer Only web site to download latest build.

We are already working on next release. Let me know what you need and would like us to include in future releases.

Tagged with:
 

Let me start by saying that if you are not prepared to work your ass off then you cannot be good developer. If you are not in 0.1% of geniuses for which all this comes quite naturally, be prepared for hard work.

If you are bad developer, forgetaboutit. You will never become competent let alone good. I’d suggest you find something else to do where your talent deposits are richer and fun factor higher.

By the same token, you can only move from being competent to being good, but never genius. Geniuses are freaks of nature that are born that way. Either you have it, and know it, or you don’t. You cannot become one.

So what we, average ones, are left with is moving from competent to good. Let me define competent. Being competent developer is really as simple as not doing harm on project and being able to get something done. Nothing spectacular. Not super fast, not super slow, just average. Competent devs punch their 8 hours in, do what they are told, get their pay check and that is it. For them it is just a job like any other.

Good developers are the ones that are passionate about what they do and you can always depend on them to get things done. They have deep understanding of what is going on under the hood and they do quality work. They do what they love to do, and not working is real work for them.

In every competent developer, there is a good developer. Problem is, mofo is deep underground. And you have to dig that sucker out with little foldable trench shovel. And then you have to build him a house to live in. And only then you get to reap full benefits.

So how do you start digging out that guy? You start with basics, by understanding the technology you are using every day. Understanding how it works underneath the public interface you are using.
I remember when I started learning programming and itched to learn assembler after learning BASIC on my Spectrum ZX. I asked friend of mine (probably single genius programmer I know) to teach me assembler.

“Well, you print out 16K of ZX Spectrum ROM and start reading from address 0”, he said.

“By the time you come to video memory, and understand what’s going on, you should have pretty good grasp of it.”

“That’s how I learned it too”, he said, and pulled ROM print-out to show me.

Once you know what is going on underneath the framework/platform you are using, your daily work will become much easier. You will know how to do things so they “fit” into the framework. You will be able to find those hard to fix bugs much, much easier, because you have advantage of knowing what is going on inside.

Lot of people advocate reading as much code as possible. I don’t agree with that. “You just said to read platform code, this is contradicting”, you might say. Not, really. You read platform code to understand platform not to learn programming. Software development is a lot like riding the bicycle. You can read all you want about mechanics of bicycle riding, but you will never learn unless you actually start riding it yourself. More you do it, better you get.

Stop asking for help too. Being self reliant and solving problems on your own is one of the key characteristics of good developer. Asking for help is the last resort if you want to become really good. The more problems you solve alone, easier it gets. When you see hard problem, get excited. It is opportunity to improve your skills.

And at the end, you need to commit to writing quality code. Usually that requires to stop lying to yourself. Deep down we know when we do quality work. Always. Start listening to this quality voice in your head and don’t settle for less. Result is that you will be disgusted with your code most of the time 🙂

What about TDD, extreme programming, patterns, etc. you might ask? These are secondary. They will come to you naturally when/if needed as you improve your craft and polish your skills.

How long will this take? I read about magical figure of 10,000 hours that is needed to hone any skill to impressive level. I think that is about right. It also means that if you write code 4 hours a day it will take you almost 7 years. So, be prepared to commit to 5-7 years.

I think these are basics that are valid for almost anything you want to really master, not only programming. Now, go, work your ass off!

 

Here we go again. New version of DotNetBar is out and this time we included Office 2010 beta style and Windows 7 style for Ribbon control and they look absolutely stunning. DotNetBar is worlds’ first control to include Office 2010 and Windows 7 styles. Not surprising because we also released worlds’ first ribbon control for both Windows Forms and WPF :-)…

While Office 2010 is still in beta and we expect that color schemes will change in final release, main design elements will most likely not change. So expect that we will tweak the Office 2010 styling in coming months as the design finalizes.

Office 2010 style looks gorgeous running on Windows 7 or Windows Vista with glass enabled. Here is screen-shot of new styling with desktop background image visible so you can see how glass extends into ribbon tab area:

DotNetBar RibbonPad sample with Office 2010 style running on Windows 7

And here is Windows 7 style screen-shot:

DotNetBar RibbonPad sample in Windows 7 Style

There are over 55 new feature and enhancements in this release. Here are detailed Release Notes.

How to use new StyleManager

We often received requests for an easier way to change style for all DotNeBar controls in application. To do that now there is a StyleManager component. StyleManager has instance and static properties that you can use to switch the style on all controls that have Style=StyleManagerControlled property set. You can use it to do color tinting of current style as well. Just set ColorTint property.To use it in existing application follow these two steps:

  1. Set Style=StyleManagerControlled on all your controls
  2. Add StyleManager to your main form, or if you do not have main form use static properties on StyleManager object to set style for all controls

This new release will take your apps to the new visual level. Try it out. If you already have DotNetBar license go to our Customer Only web site and download latest build. Fully functional trial version can be downloaded by clicking here.

Tagged with:
 

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

© 2009 Denis Basaric: DevComponents Blog