Dev

Three things development leaders should focus on in 2013

Mobile was a top priority for companies in the last year, and for good reason. Mobile devices, including tablets, are becoming more popular than desktops for online access.

As a result, mobile projects are slated to outnumber PC development projects by 4:1 in the next three years. The number of mobile devices on the planet will outnumber people by 2016.

The challenge for development teams is how to adopt a mobile-first mindset. This approach requires you to put user experience at the center, offering a strong contextual and personalized experience. It also means offering that experience across multiple platforms and devices, introducing complexity and the need for specialized skills into the development process.

Plus, it requires expertise in how to build the right back-end infrastructure to support composite applications. today’s apps combine the context of an individual (using a mobile device) with a plethora of other information from multiple corporate back-end systems.

When you add to this the imperative of managing iterative app development across multiple client OS platforms, managing the development cycle has become ever more challenging. Companies are pressuring development leaders to rethink their mobile approach. In the coming year, it will become more important than ever to gear your development and operations teams towards mobile first. Here are the three pressing things to consider for 2013:

Bring mobile into your core dev team

With the range of skills required to support multiple mobile platforms, it is rapidly became common to outsource mobile development to companies with workers who have those specialized capabilities. However, the increasing prevalence of open web standards such as JavaScript and HTML5 linked to native mobile capabilities will make it easier to pull mobile development skills back in-house.

That is fortunate, because the development teams of the future will have to do short, ongoing iterations on mobile apps. Not having the right workers in-house complicates the development process and requires a sophisticated level of coordination and integration of external resource into your core development processes and tools.

It’s also important to think about whom you have to educate in order to execute a mobile-first development approach. Many web designers, for example, come from a desktop paradigm and may not have specialized in mobile user design. The changes in form factor, touch and contextual interaction do require a different interaction and design experience and therefore an evolution in designer skill set.

Tweak server architecture for mobile & web

Today’s composite apps have bigger implications for the back-end infrastructure that supports your apps. Most apps will depend on a range of back-end API services that enable interaction between the user interface on the mobile device and a back end that runs the business logic of the app, pulling information from multiple corporate systems.

This best lends itself to an API-centric cloud-service architecture, where your new back-end exposes APIs to the front end. This gives access to the information needed, and the mobile client has all of the user interface logic.

You gain the best of both worlds: A native experience on the mobile device, connected to a back end server that spits out JSON (JavaScript) data via REST-based services, as opposed to dealing with the presentation layer of the application.

It is important to note that these back-end apps are new apps (a.k.a. composite apps) and not just exposing existing back-end systems as is. These apps need to deliver new APIs that can support the personalized, contextual experience of mobile. Therefore, sheer pass-through technologies that do not aggregate and transform existing systems with business logic are not sufficient for true mobile-first development.

Increasingly, we see companies choosing a cloud-based infrastructure to run these back-end services. It is important to consider what your platform requirements for this infrastructure will be in 2013.

For example, how will you meet the fluctuating demand caused by volume of mobile devices accessing your app? This will require a new level of elasticity compared to previous back-end infrastructures. In addition, how will you support an agile development cycle that requires frequent app changes both to client-side (mobile user interface) and server-side logic? And how will you ensure the fault tolerance and redundancy of the back-end services infrastructure?

The key is to ensure that you have chosen an elastic, fault-tolerant cloud application platform that supports these new requirements created by your mobile and web apps.

Unify development & operations

Mobile-first strategies place new demands on collaboration and handoffs between development and operations teams. Although it emerged as a buzzword several years ago, “devops,” or the idea of improved collaboration between dev and ops teams, is no longer an optional area of focus. In fact, operations-related failures are among the most important points of application failure for mobile and web applications.

Research from Carnegie Mellon University has shown the leading causes of application failure today include failed software upgrades, inability to scale to meet unforeseen demand, resource exhaustion, and configuration errors. This means operational questions of how an application will perform once in production are just as important considerations as debugging an application’s core code before release.

For example, in an iterative development cycle, with frequent client- and server-side application updates, how do you ensure there are no configuration errors when an application is passed from development to production? Historically, this process involved a developer writing detailed guidelines for their operations team that outlined the exact process, including versions and libraries to install, and in which order.

However, the key to taking the error out of dev-to-ops handoffs is to automate this process. A developer should be able to hand the operations team an executable package that has been tested to automatically perform the steps required.

When it comes to failures due to application updates, how do you deal with the possibility that a new application version introduces unforeseen errors into an application already in production? This requires better real-time troubleshooting tools for applications in production — as compared to the traditional approach of a development team trying to reproduce production errors.

It is also a good idea in an iterative world to invest in “insurance,” the ability to easily roll back to previous application versions when required. At a high level, the application deployment process must be both highly productive (supporting frequent iterative updates) and churn out quality results.

Making mobile-first work

Although approaching a mobile-first environment can appear intimidating, if you re-think your team at the same time that you re-think the way you develop, deploy and manage apps, the process will become easier. The skills and tools required of development and operations teams in a mobile-first world are different, whether it be a focus on mobile user interface design, the skills to implement an API-centric cloud service architecture, to build an elastic backend infrastructure, or to address the question of avoiding application failures caused by the difficulty of devops collaboration. A

ddressing each of these requires not only investing in improved processes and increased automation but good old-fashioned teamwork.

Andi Gutmans is CEO and co-founder of Zend Technologies. Founded in 1999, Zend was instrumental in establishing PHP. Today, Zend helps others create and implement back-end infrastructure for web and mobile applications. Zend Server and Zend Studio are deployed at more than 40,000 companies worldwide.

Image credit: Shutterstock/leedsn