This article appeared in the Jan/Feb 2012 issue of Better Software magazine
Continuing the conversation on building software for mobile devices, we look beyond the devices to the human concerns and challenges of managing a mobile-app development team, including ergonomics, health, and scheduling.
In part one of this article, The Project Factors , we looked at the unique impact working in a mobile environment can have on your project. We talked about three areas: device support that can quickly get out of control without a thoughtful strategy, unique challenges with device purchasing and storage, and the importance of finding out store submission requirements and applying them to a project early rather than later. In part two, we will look at more mobile-related challenges to be aware of.
If you work on a mobile device for any length of time, you'll start to notice that you're experiencing pain or discomfort. We have fantastic equipment to help us as we use computers—ergonomic hardware, monitor arms, adjustable desks, comfortable chairs, and all kinds of devices to help us deal with the problem of sitting in front of a computer all day. In the mobile world, we don't have that support. Try using your smart phone for a half hour or an hour straight, and you will soon realize that smaller devices cause more strain and discomfort more quickly than a computer. You can't sit at an ideal posture, and your body will compensate when you are interacting with a small device. If you use a small device for any length of time, notice the tension developing in your hands, hunching of shoulders and back, and eyestrain.
If people feel strain from using the devices, they aren't as productive. You can also burn some team members out, particularly testers or people who are doing frequent demos. It's important to monitor time and encourage people to take walks, stretch, and do whatever they can to reduce the ergonomic strain that is inherent with the devices. I asked an ergonomics consultant for mobile ergonomic advice, and the consultant was shocked that people would use the devices for longer than casual, short bursts. While you can offset device interaction somewhat using emulators on development machines, you also need to work with the real thing. One day, the ergonomic community and tools will catch up, but, in the meantime, watch your team members and their scheduled time using the devices. They just can't work as long on mobile devices as they can on computers. Some teams use an "ideal day" in their estimation and planning. If you use a six-hour ideal workday for hands-on technical work on computers, lower that to account for ergonomic strain when using the devices. Start with 25 percent less than your daily hour count, and work your way up or down from there.
Mobile devices on development teams tend to be handled by everyone on the team. When cold and flu season hits, there is a danger of people getting sick. We tend to be more careful about keyboards, door handles, and things we are used to trying to keep clean. And, even on teams that use pair programming, you won't have a day with every team member touching your keyboard. However, this can happen with mobile devices because they are so small and easy to pass around. If you use a different device each day, you can't be sure who used it last and whether it is clean or not. It seems that every software development team has a "patient zero"–someone who gets sick more often, comes to work sick, and spreads sickness to teammates. On a mobile development team, germs and pathogens can be shared much more easily and much more quickly: A sick team member handles one or all