One of Enable Labs first projects was a custom ERP system written in Java and Groovy named Quadran. Our customer manages import and supply of raw materials to manufacturers throughout the United States and chances are you’ve used their products at least once today. Raw Materials are received from both domestic and foreign sources and the system tracks the full lifecycle of an object from purchase to delivery to the end customer. The ability of the customer to access data throughout the raw material life cycle has allowed them to flourish and increase their sales by an order of magnitude while maintaining the same back end office staff.
As their business has changed Enable Labs has continued to provide support and new feature development. We have continued to integrate new technologies to provide further efficiencies and greater ability to analyze, plan and grow. In 2008 we added Ruby to the technology stack so that we could provide new features more quickly, at a lower cost, in a more test friendly environment. Each new feature or modification to an existing feature is evaluated in relation to the existing technology stack and the appropriate programming technology is chosen based on risk and cost. It is often less costly to rewrite existing Java/Groovy code in Ruby when calculating the complete product lifecycle cost of implementation and support.
The efficiencies gained by the back end office as the product has matured have trickled down to the warehouse staff as barcode labels and worksheets that allow workers to manage inventory. A typical process involves the back office receiving an order, allocating raw materials from a warehouse, and arranging shipping. The warehouse staff receives a paper worksheet that gives an overview of the shipment include number of items to pick, their location, and any instructions specified by the customer or the office on how to handle the shipment. A forklift operator then goes out into the warehouse, picks the required items and moves them to a staging area. Once the order is complete the operator removes a barcode label from each bale of material and places it on the worksheet, which is scanned in at the end of the day or the beginning of the following day. The office is not aware of the status of the order until it has been completed and the worksheet has been scanned, or by inquiring with the operator. There is also opportunity for paperwork to be lost and data to be incorrectly recorded on the worksheet. Once the barcode from the bale is removed it makes it much more difficult to get information about the bale and shipment. Both the operator, and the back office needed more information in a more timely manner allowing them to smooth their work flow and to provide a better experience for their customers.
Enable Labs recommended that the operators be equipped with a mobile device that could read the barcodes on the bales and post real time updates to the shipment. The device would need to connect to the warehouse network using WiFi, be able to scan 2d barcodes, and present information to the operator about the status of the shipment. After taking into account the clients preference for iOS devices, and the availability of commodity hardware for barcode scanning it was decided to use an Apple iPod Touch as a user interface and a linea-pro scanner which would wrap around the iPod touch and provide barcode scanning as well as additional battery life.
The experience of a mobile device is very different from a web page. The relatively low pixel count and size of the screen are severely limiting, and the method of user interaction is very different from the standard mouse and keyboard. A web application will often display full information about a business object or group of objects that provides more information than is needed to complete a specific task. A screen showing information about a lot of product might list receipts, shipments that have already been completed or are in the future when all the user needs to know is the quantity left that can be sold. The web based screen can contain extraneous information, however the limited screen real estate of a mobile device precludes such display suggesting that a task based approach might be a better solution.
The second aspect of mobile design that we needed to consider was data entry. Although we are all used to seeing people furiously thumbing out text messages on their phone this is not an ideal way to enter data. Apple and Google have gone so far as to make voice clients, such as Siri, that use natural language as an interface for data entry in order to minimize typing. In this case each entry would take at least 27 characters to complete a transaction with a combination of numbers and letters requiring the user to switch back and forth between keyboards. Barcodes were already being used within the facility however they did not have contain all of the information required to complete a transaction therefore all fields could also be manually entered. New shipments received at the facility will utilize a barcode that contains all of the information needed to track product throughout it's lifecycle.
As soon as all of the required information is entered it may be submitted and the shipment updated. Since the allocation of raw materials has already been completed before the order is picked the operator is restricted to only specifying the lots that are permitted for the shipment. Scanning a barcode with the incorrect lot identifier notifies the operator ensuring accurate shipment fulfillment. In addition, each submital is validated on both the handheld device and the server side so that any problems can be dealt with quickly and efficiently. Each step of the workflow is clear and only shows limited data pursuant to the task at hand. If more detail is available the operator can click and get more information at any step. Data about the shipment can be updated from multiple devices and the back office has a window into the movements of material throughout the warehouse in real time. In addition a record is kept of each transaction allowing for better analysis of the shipping process and performance of the devices and the operators.Another consideration when writing a mobile application is the quality of the connection to server side processes. In this case before mobile devices were introduced the quality of the wireless signal in the warehouse was unimportant. With the introduction of the outbound shipping application it was necessary to install additional wifi access points in the warehouse. Despite the improved connection it was still important for the application to perform well if the connection is lost. In this case all posts to the server side of the application are cached locally if the connection fails and are sent the next time the device connects to the network.
With an enterprise application it is important to have a controlled deployment environment and record keeping of device status. By utilizing ad hoc deployment the customer essentially has their own "App Store" that allows them to ship updates remotely and to know the version of the software on each device. Any errors are logged on a remote server for analysis by the development team allowing issues to be managed quickly and efficiently. Since this is an internal application it does not require approval by Apple and can be modified and updated under the control of the customer. Deployment to new devices is limited to users that have the appropriate permissions so as to limit unauthorized access. The devices themselves have location detection services so that they may be recovered if they are lost or stolen. In addition the devices are not able to access sensitive data if they are not within range of the internal network.
The customer maintains multiple units in service as well as several spares. Devices are rotated in and out of use at shift changes so that they have time to charge both the linea barcode scanner and the iPod touch although both can be run for more than a day without requiring a recharge. Operators have mounted holsters on the fork truck in such a manner that they can utilize the touch screen while seated as well as quickly removing the device for scanning and recharging. Each unit is provided with a heavy duty industrial case to prevent damage if it is dropped.
After moving to mobile data entry the customer has a much more transparent, real-time, understanding of the shipment process. End customers can more easily access information about their shipments and it's much easier to manage rush orders since the disposition of stock is more readily available. The customer has already identified additional areas where mobile devices will help workflow and record keeping.