It's important to understand these needs first because just like you are creating a kick-ass UX for the users that allows their needs to be met, the same considerations apply to you and how you build the app. The goal is for the app to be designed in such a way that it is flexible and can be easily changed and updated. The same qualities of flexibility and agility must apply to the app design as well.
This is why you do not choose what language or how you will write your app until you know what it actually needs to do. Why would you choose to only use a small hatchet to cut down trees when you find yourself in an old-growth forest with four-foot-diameter tree trunks? Once you know the size of the trees and how many you have to cut down, it may make more sense to grab a chain saw.
Once you decide the tools you are going to use, you look at the frameworks that are available that allow you to get to your data. Hopefully, your company has invested in APIs that connect to your data sources and free that data to be accessed properly. If those frameworks don't exist, take the time to build them if you can. When you choose to free you data, you'll find a lot of ways to give the user access to it, and you'll build multiple apps to meet the different needs out there.
The goal of creating great apps and avoiding crapplications is focusing on the needs and avoiding the scope creep that inevitably tries to influence your project. Your developers now have the outline of what they need to build, and they can very easily figure out the best way to do so. But they still need to specify how they're going to do it. This specification or blueprint is created before they start to do the actual coding, as development doesn't start with the first line of code. It starts with understanding the need clearly and then building a beautiful blueprint that you actually develop your code to.
These blueprints/specifications aren't static, either. The goal isn't to file them away in a drawer but to build a companion living, breathing document that follows the app. Nothing ever goes as planned and blueprints change, but the fact is your specification needs to live with the app and allow the app to grow as the needs change.
It all becomes one big cycle, because as you finish building the app, you go back to your users to make sure that everything works that way it should. You see, building an app is solely about focus. You need to be clear what the business and the users want. You need to focus on the data they need and build a clear, easily usable tool that allows them to be productive and efficient. Anyone can use a magnifying glass, but unless you focus that sunlight just right, you never get to burn the ants.
This article, "Building great mobile apps has nothing to do with the language or IDE," originally appeared at A Screw's Loose and is republished at InfoWorld.com with permission (© Brian Katz). Read more of Brian Katz's The Squeaky Wheel blog at InfoWorld.com or at A Screw's Loose. For the latest business technology news, follow InfoWorld.com on Twitter.