Lowell Ballard, the Director of Geospatial Solutions for Timmons Group, discusses the David versus Goliath approach in developing robust and full-featured versus smaller more focused mobile GIS applications.
As your organization grows and matures, you should most certainly begin to evolve and advance your mobile footprint. You will typically start with an idea, hopefully relatively concrete and manageable, and decide that it would best serve your organization as a mobile GIS application. You will typically make decisions about what the application should do, technically how it will be delivered and, eventually, how it will be supported over time. The decisions you make, both business and technical, will be for the requirements of that particular application and with the best information and capacities you have at the time.
As time goes by, your application will hopefully be deemed a success. You will garner additional support and people will begin knocking on your door for “more.” This is a critical philosophical juncture and one that can lead you down the path of continued success – or eminent failure. As new requirements emerge, you have a fundamental choice which is to “grow” the existing application you initially constructed by adding on functionality and capabilities or to take on a fresh project for any new and emerging needs. As you delve into the new request, you may realize that, although these new ideas are much different from the original mission, the original ideas can still be included in the application. You also may find that since the existing application does X, Y and Z so well, capitalizing on those investments would be ideal. Or, you may find that it would be better to start a new project and not just “build around the existing application.” All of these concepts are critical to the focus of your mission, vision, and of course, your success.
Managing Your Mobile Presence
The decision you make at this point is key and will drive how you manage your mobile presence moving forward. Do you create a more robust and full-featured application, “Goliath,” or do you create smaller more focused applications, “David”? While both are valid approaches, my personal experience is that trying to create the “Goliath” applications almost always fail unless it is managed very tightly and the risks upfront are well-understood.
As applications grow in capability and functionality they also grow in complexity. This complexity exists in the growing code base, data services, databases, testing, and all things that make an application work. Making a single change to the application becomes a herculean effort; developers must open and sort through thousands of lines of source code. Additionally, even if only a minor change has been made, testers must assume regression testing (i.e., test every screen, button, piece of functionality) of the entire application. In essence, you become trapped in a situation where you are continually trying to turn the Titanic.
The alternate approach, David, is to create more focused and targeted applications with a more streamlined code base. You can spin up a new project to solve a discreet business problem. You can take advantage of newer technologies and not be chained to the original application decisions from years ago. You can create highly-focused and targeted solutions imperative to small form-factor interfaces such as smartphones and tablets. The code base is more manageable and there are less “things” to test and changes can be rolled out in a more agile manner. This keeps users more engaged and excited about using your application.
While both approaches are valid and can be successful given the correct oversight and management, it’s important to be cognizant of this critical decision point early on in your mobile journey.