This article appeared in the Jan/Feb 2012 issue of Better Software magazine
Device Procurement and Storage
We take a lot for granted these days when creating computer or web-based software. We all have computers to use, and network infrastructures are available, stable, and perform quite well. When we are planning a project, we sometimes need to buy new servers to use for development and testing, but everyone on the team has access to a computer. In the mobile space, we don’t all have mobile devices to use. Furthermore, we don’t have a network infrastructure to just plug a mobile device into. We need to buy a contract with a telecommunications company, often with separate data plans, just to have a device that will work the way it will be used. Based on what your company has decided your target platforms for development will be, you also will need to find out what telephone companies your customers use and what technology will be used for data transfer, and you’ll need to purchase communication and data plans along with the actual devices.
While we have licensing for hardware and software to deal with on software projects, it can be a bit different with mobile devices. Different kinds of licenses are required for development, and, with some platforms, these can be locked to a particular device and computer. Some platforms are quite restrictive about developing and installing applications on them. If you rush in and start developing on a mobile device, it is easy to end up with that device locked to a certain computer—often the first developer who tried it out.
It is also a good idea to come up with a practice for installing firmware and carrier updates. Unless it’s part of your strategy, you don’t necessarily want all devices upgraded at once or to have different settings on each device. Without a strategy and a practice, you will end up with a combination of firmware, carrier, and OS versions. It can be difficult to upgrade these devices quickly, since they can require special software that is offered by the platform provider. You’ll need to research what configuration tools you have available and outline the steps required for installing development and testing licenses, updating firmware, adding in test SSL certificates if required, etc. Without a strategy for updating development and other licenses and figuring out how many you will need for your project (or possibly for the year), rushing ahead in the short term can have consequences for you weeks or months down the road. There is nothing worse than trying to use devices for testing or demos and finding you can’t install software onto them because you’ve used up all your development licenses.
Build updates can be challenging due to special tool requirements, development licenses, licensing files for individual devices, and the fact that updates need to be pushed out from a computer to the device. Often, installing updates or new test versions of your software during development requires technical knowledge and specialized tools. It’s a good idea to train and to plan and schedule down time when updates are needed. If you have a lot of devices, it can take hours for one person to update all of them.
Having enough devices charged and available for your test team can be difficult. It can be incredibly frustrating to try to work with the devices in the morning, only to discover that they are all out of battery power. You need practices for collecting, charging, and storing devices each night. These devices are small, so they can disappear easily. It’s wise to set up a practice for accounting and storage of the devices and cables used to sync with computers and charge them. Labeling devices and cables once they are purchased helps, as does locking away the devices so they don’t get stolen or borrowed by other groups. Don’t forget to lock away the telephone company contract information for each device as well—for that fateful day that a needed communication and data plan expires and needs to be upgraded.