Once you've identified the business goals and confirmed there's an actual need, the single most important question to ask is: should we be building a native app, or a web application?
For those unclear on the distinction, native applications are what you download from the App Store. Apple has done an amazing job of building and promoting this aspect of their platform. If you're anything like most people, a native applications is what comes to mind when picturing an app of your very own. Native apps are trendy and tend to provide a great user experience complete with plenty of eye candy, but have the downside of being locked to a single platform.
Web applications, on the other hand, have been around for years and aren't nearly as exciting. They're accessed through your web browser, and while not as trendy, tend to be easier to develop, easier to maintain, and can be used from a multitude of devices and platforms.
Even though a native app is probably what comes to mind when picturing your future application, for businesses looking for an internal tool there's a good chance a web app is a much better way to go. The reality is that most business software centers around "boring" things such as inventory tracking, customer relationship management, financial reporting, and business process automation. For these scenarios web applications tend to be more versatile, flexible and cost-effective than their native counterparts.
There is of course always a chance that your company has some unique requirements that do justify a native app. Complex visualizations are one example, or building something flashy to be used by your customers, as opposed to your staff.
About two years ago we developed a Tablet PC application for a client. After the iPad was announced, this client determined almost immediately that it would likely be their platform of choice moving forward. The iPad was half the size, a third the weight, a quarter the cost, and had twice the battery life of their existing tablets. Tough to argue with that.
Fortunately, the software we developed for them was a web application. With just two days of effort we were able to update the software to be fully compatible with the iPad's multi-touch interface. This made it possible for our client to start real-world testing of the iPad in conjunction with their software as soon as their new tablets arrived. While the iPad has only been available in Canada for a couple weeks, our client has already begun the process of phasing out their older tablets.
Had we been dealing with a native Windows application, this scenario would have looked completely different. Instead of 48 hours the client would have been facing weeks – if not months – of development effort before they could adopt the new devices. In the end it likely wouldn't have been worth the development cost, and they'd have been stuck using soon-to-be outdated hardware.
Tablets are still in their infancy, and it's only a matter of time before BlackBerry and Andriod devices hit the market. If nothing else, web applications prevent you from being locked in to am immature platform, and helps ensure your software keeps your business agile.
Choosing between a native app and a web app isn't a technical decision, it's a strategic one. You need to consider which approach produce greater value for your business. A rich user interface, or a platform independent application that's easy to maintain?
The type of application which will produce the most benefit is entirely dependent on your needs, but if you're not at least evaluating a web application you could easily find yourself spending a lot more time and money than necessary.