Mobility

Going in-house for app development

It's no secret that mobile applications are a key component of most companies' IT portfolios. Here are some of the key factors to determine if an in-house mobile capability is appropriate.

Mobile development is one of the hottest IT skills in the market, and as such, mobile development has become extremely costly. Adoption of smartphones and tablets in the enterprise continues unabated, and everyone from tiny local companies to massive Fortune 100 entities are releasing mobile applications and vying for attention. It's clear that mobile is here to stay, so should you develop an internal app development capability?

Build versus buy

Nearly every IT leader has gone through some variation of a build versus buy exercise, where you attempt to determine if it's cheaper to buy or "rent" a capability on the open market, or build that capability internally, generally through training existing staff and hiring new employees with the desired skills. The tendency toward cloud computing and the astronomical salaries commanded by skilled mobile developers may have you quickly conclude that building a mobile development capability is too costly; however, it's worth understanding some of the nuances of mobile, and perhaps spending some time with your internal finance and HR gurus before jumping to the conclusion that building is unaffordable.

Know what you're building

One of the major challenges to mobile development is that the two most popular platforms, Android and iOS, both require fairly complex development tools for native application development. For the uninitiated, mobile development falls into two broad categories: native and cross-platform. Native applications are specifically designed to run on a single platform, and are created in the vendor's chosen language(s). Native Android apps require Java programming, and iOS requires Objective C or the newer Swift platform. Java and Objective C are both relatively complex programming languages that are largely unrelated, so your average Android developer can't pick up an iOS development manual and be ready to code effectively in Objective C without intensive study. In terms of development cost, creating an Android version of an existing iOS app, and vice versa, effectively requires an entirely new development effort.

This contrasts with cross-platform development tools, which allow the same set of code to be used on multiple platforms. The leading cross-platform development tool, Apache Cordova (formerly called PhoneGap), is based on web technologies like HTML, CSS, and JavaScript. Interestingly, web application developers can adapt to Cordova readily, since Cordova apps are effectively running in a web browser on the device. While this sounds like an ideal scenario, you lose some performance, access to device features, and functionality available to native apps when you use these tools. For games or high-performance applications native code is often the only viable option.

What's most interesting from the perspective of building an in-house app development capability is that existing web developers can often transition relatively easily to Cordova, while traditional programmers who don't have web experience will struggle. Several companies have spent significant amounts hiring native app developers, only to decide to use cross-platform tools, and then they've been surprised when that expensive iOS or Android developer struggles. If you have talented web developers, you may already have the personnel you need to form an in-house capability, and combined with the fact that most Cordova-based tools are free open-source software, the cost to equip these employees is very low.

A single hire strategy

Even if transitioning some of your web development staff to cross-platform mobile development is not possible, there is a smart internal hire that can dramatically improve your organization's mobile app capabilities. Unlike traditional internal development, mobile development is often characterized by extremely short development cycles and heavy involvement of design and creative resources, as well as significant management of various internal and external parties. Even a relatively simple app might require development of new APIs that connect to internal applications, managing third party developers, integrating with your internal marketing teams and their external design agencies, and shepherding code through various app stores.

While the development aspects of a mobile app may not be significant when compared to a multi-year ERP project, the production process itself can be daunting. When left to an external party, it's unlikely your company's interests will be represented first and foremost. Leaving mobile production to your design agency may result in hundreds of hours of beautiful (and expensive) creative that doesn't correctly integrate with your backend. Letting a vendor's offshore development team run the show might leave you with a functional, yet disjointed app that no one actually uses. Investing the time and money to develop an existing employee, or making a smart internal hire, can equip you with someone who can manage internal and external parties, speak the language of design and development, and make sure you're not burning cash on needless code or design flourishes.

About Patrick Gray

Patrick Gray works for a global Fortune 500 consulting and IT services company and is the author of Breakthrough IT: Supercharging Organizational Value through Technology as well as the companion e-book The Breakthrough CIO's Companion. He has spent ...

Editor's Picks

Free Newsletters, In your Inbox