DEVELOPER TOOLS & OPEN SOURCE

What's the Hold Up? How to Meet Application Development Demands

By Special Guest
Simon Kao
  |  August 15, 2016

Time is money, and it’s safe to assume few organizations like wasting money. Nonetheless, while industrial-grade mobile applications can help businesses with cost savings, productivity, and workflow, their production can cost a pretty penny. Simply attracting, hiring, and retaining developers with the significant mobile experience necessary to produce a quality app is pricey. The last thing a business needs is for its app development process to get caught in a bottleneck that ties up resources and, worst of all, prevents employees from getting the tools they need. However, as businesses rush to modernize and meet employee demands for mobile applications, the potential of getting caught in a costly bottleneck is all too real.

Below are four ways businesses can meet development demands and four ways they can make the development process more efficient, all of which help prevent the mobile application development bottleneck.

Meeting Demands

Embrace a cultural shift.

Most organizations have realized that the traditional development process of gathering all business requirements upfront, before passing it to the development team to do a full implementation, is a laborious approach and, more often than not, yields unsatisfactory results. The problem stems from the mentality of passing responsibilities to the next team and the magnitude of those responsibilities. Organizations must consider a more collaborative approach where dedicated project teams are comprised of all key stakeholders. These teams function by breaking down scopes of work and, through iterations of requirements review and development cycles, deliver functional software more frequently.

Adopt a mixed strategy.

This doesn’t have to be an all or nothing decision. Growing development skills can take a long time. Organizations with a skills shortage should adopt a mixed strategy of outsourcing components/projects to experienced third parties while also growing in-house development skills in tandem. Developing in-house means better control on quality and maintenance, and should be considered for core components/projects. Fast changing technologies, particularly in the mobile application and wearable devices arena, can be outsourced to keep up with the pace of change.

Properly vet projects.

Priorities for development projects are often scheduled based on who is applying the most pressure. This is disruptive, as development teams and other units are sometimes forced to switch from one project to another. This affects team momentum and project quality. It is better to prioritize based on formal assessment of internal cost-to-benefit analysis and business impact of the project.

Grow and retain skilled developers.

Software development is fast changing, particularly with the rapid increase in the number of mobile devices/applications and other IoT devices. In tandem, it is increasingly difficult to find developers with the exact matching skillset that a business requires. It is therefore imperative that businesses recognize the importance of continual investment in growing and retaining their skilled workers.

Improving Efficiency

Understand more doesn’t mean better.

One myth about reducing development time is to have more developers on a project. This can often do more damage than good, as you can no longer manage quality effectively, or it becomes a much more difficult task. The goal is to have just enough resources to cover key aspects of a project. As an example, a project team should consist of an internal project manager, operation, developers, testers, customer project manager, and a main application user. At the same time, organizations should reduce distractions. Development teams are often required to be on multiple projects/tasks at the same time. Allowing development to focus on the current task at hand while delegating other tasks to non-project teams is more beneficial. It is better to fast-track development and keep momentum high.

Increase sense of project ownership.

Most developers are used to being told how the application should behave and receiving processed information through the form of a use case. A use case details as many functional behaviors as possible but the main problems are that no one can document every combination of functional activity so a use case is never complete, and even a well-written use case can be misinterpreted.

Use cases also kill creativity/innovation for developers and, in turn, significantly reduce their sense of ownership and motivation because a project manager – not the creator (developers) – owns the application. Requirements should be delivered as high-level stories, and developers should be allowed to identify the most suitable designs.

Seek regular and early feedback from key stakeholders.

Avoid rework after release by catching requirement changes during development, as it is far more expensive to do so afterwards.

Avoid the danger of flying blind.

There are many different factors affecting development efficiency, and they are not always directly related to a development team’s experience and skillset. Have metrics in place to measure key aspects of the project process starting from requirements gathering through to deployment. Find custom solutions that best suit your organization’s culture and workflow.

According to Gartner (News - Alert), demand for mobile application development services will grow at a minimum rate of five times faster than internal IT organizations can deliver them. Given this prediction, businesses cannot afford significant delays in the development process. Mistakes associated with innovation and unforeseen roadblocks will result in occasional delays but, if appropriately addressed, the development bottleneck can be avoided.

Simon Kao is engineering manager at Retriever Communications (www.retrievercommunications.com).




Edited by Stefania Viscusi