Tuesday, October 03, 2006

Buy vs. Building an Enterprise Mobile Solution? Part 1

This is a good and fair question. Let's start our discussion with a scenario - You want to monitor assets for your government agency. That means you want to track all the street signs, sewer pipes, manhole covers, guard rails etc, that your organization owns using a mobile software application on a handheld computer. You also want to mobilize your inspection processes involving these assets. In addition, you would like to integrate a "work order" management system to dispatch repair technicians when work is needed. You would like all of these processes to be mobilized on a handheld computer that synchronizes with your central databases.

The problem - Often the above processes involve more than one desktop application and multiple backend databases. How would you mobilize all of these? You can't buy 1 mobile software package that will integrate with all of these desktop applications and databases. Why, some of your applications are home grown, undocumented and specific to your working environment. No one else knows your unique inventory of applications. Typically you will have 3 choices:

  1. Buy pre-built mobile clients for each of your off-the-shelf desktop applications. So if you have 8 desktop applications that you use, you will need 8 different mobile software packages in order to mobilize these processes. This is very expensive, forces you to learn 8 different mobile applications, punch 8 different holes in your firewall, learn 8 different synchronization technologies, and 8 different configuration environments. In addition, this does not help you to mobilize your home grown custom applications. Another challenge, most of your 8 desktop applications will not have mobile client applications available.
  2. Develop mobile software applications from scratch using .NET or other programming environments. This can be done, but you need a person with mobile programming experinece to develop a new and different mobile client application for each desktop application and database. There is little ability to reuse code so each of these mobilization projects will take considerable planning and lengthy development time.
  3. Use a mobile software platform that is a rapid application development environment for mobile solutions. This allows you to quickly configure mobile client applications that can synchronize with multiple backend databases. You can standardize on one method of synchronization, learn one development environment, one integration methodology and have one company that can train and support you. You don't need to be a programmer, and you can edit and update your own mobile applications as often as you want. You maintain control of your own applications and you can easily support any of your custom home grown database applications. You can mobilize all 8 of your desktop applications using one mobile software platform. You don't have to pay someone else to develop mobile applications, your own IT team can support any of your mobile client application needs.
OK...so I am bias, but there is a lot of value to owning your own mobile RADs-ME tool (rapid application development environment for mobile solutions). You buy your RADs-ME tool once, and then you can develop an unlimited number of mobile applications. You control the cost, you control the updates, you customize to your requirements and you are not dependent on some outside software company's schedule and cost structure. Once you have been trained, you can develop mobile client applications internally for any desktop database application.