The Danger of Over-Burdening Developers

The last few months have seen two significant waves of activity around major developer platforms from Windows to Android to iOS and OS X. The summer brought reveals of new versions of these while the fall has brought the introduction of a number of new devices from Apple, Google, Microsoft, and others to take advantage of those platforms and, in some cases, go further. There are new opportunities for developers everywhere but, at the same time, I’m becoming increasingly worried about the burden of keeping up being placed on developers – especially smaller ones – by all this activity.

New operating systems

Each of these three companies has introduced a new version of its major operating system in the past few months. But some of them have also introduced entire new operating systems. With each of these introductions come new features developers can take advantage of to improve their apps. But the challenge for developers is that, as users become aware of these features, there’s pressure for them to support them in order to remain competitive and compelling and to stand out in increasingly crowded app stores. This is especially true when app stores highlight those app that support the latest features.

Among the new functionality developers may feel they have to support now are:

  • App linking/deep linking and search – exposing the content of apps to universal search functions in Android and iOS and creating link structures that allow external URLs to jump deep into apps for specific content
  • Multitasking in iOS – on iPads, iOS 9 now supports multitasking in several different flavors – slide-over, side-by-side, and picture-in-picture modes
  • WatchOS 2 introduced a completely new way to build Watch apps, so existing developers will need to re-write apps written just a few months ago to optimize for the new functionality
  • App thinning – another iOS innovation which changes the way optimized apps use and cache data, requiring rewrites to certain apps
  • Universal apps and Continuum in Windows 10 – requiring developers to create apps that work, not just on one form factor, but on several within the same app, sometimes even when only installed on one device, such as a phone running Windows 10 and the Continuum feature.

New hardware

In addition to these new operating systems, these companies have also introduced new devices, some of which use those existing operating systems, while others require entirely new operating systems. Apple has been the most active in this space over the past year, introducing several new hardware products. The Watch was introduced just a year ago to developers, so it’s still relatively new. Many developers are struggling to build Watch apps to complement their iOS apps (WatchOS has been available to developers for a year now, but there are still under 20,000 apps for it). Secondly, Apple has introduced a new generation of Apple TV which runs a new operating system, tvOS. Even content partners who already had apps on previous generations of Apple TV now have to re-write them for the new OS, while other developers who hadn’t had apps on the device will have to think about whether to support it. Apple also introduced the iPad Pro this fall which has two accessories that require developer support to work in an optimized fashion – the Pencil and the Smart Keyboard. Then there’s the iPhone 6S line with its support for 3D Touch and the new developer functionality that enables.

Again, all these things allow developers to create more compelling applications and – in theory at least – expand their addressable markets to new devices and new customers. But supporting both the new software and hardware and, in some cases, entirely new operating systems, places a significant burden on developers. As a small developer with limited resources, I’m forced to choose now how to spend my time — between creating an Apple Watch app, optimizing my iOS app for the iPad Pro and its accessories, supporting multitasking, adding 3D Touch Quick Actions, and so on. And that’s just my iOS app. Many developers create apps for iOS and Android and, in some cases, Windows. Microsoft, too, has been announcing new devices, including the HoloLens, an entirely new category of device. If you’re a game developer, you might well be interested in creating apps for both the new Apple TV and for HoloLens (or even for devices from new vendors such as Oculus). But can you afford to do both?

How many devices can developers support?

Almost exactly a year ago, I wrote a piece titled How Many Computers Do We Need? In it, I talked about the fact that, as consumers, we’re faced with an increasing array of computers in different shapes and sizes, from laptops to tablets to phones to smartwatches. These devices are capable of performing many of the same functions, yet most of us are limited by financial and practical concerns in our ability to purchase and make use of all of them. Leaving us with choices that may pit unexpected devices against each other as quasi-competitors. With this explosion in new software and hardware functionality, developers are faced with, to some extent, the same quandary: how many computers can they support? In some ways, this concern will begin to replace the age-old question of how many platforms to support, as more and more developers become single platform or single ecosystem shops but still find themselves supporting multiple devices within that ecosystem. One of the ways to resolve this quandary was always to support each at a minimal viable level, not optimizing apps for any one platform, but using cross-platform development tools to create lowest-common-denominator apps that never felt completely at home on any of the platforms. I worry some developers will take the same approach to multi-device support, supporting all the available devices in principle, but doing so in a less than optimized way in practice.

Questions for ecosystem vendors

All of this leads to some challenging questions for ecosystem vendors:

  • Are you asking developers to do too much?
  • Are you opening up new revenue opportunities that will compensate developers for the additional work required to support new devices and software features?
  • Do you risk fostering a culture in which apps are no longer truly optimized for your platform or devices but rather, check a minimum set of features?
  • Do you risk driving developers to other platforms with simpler sets of requirements and devices to support?

All the major ecosystem vendors should be thinking long and hard about these questions and the implications for their relationships with developers. Though it can be tempting to think great new features for users and great new opportunities for developers go hand in hand, there’s a risk the burdens associated with supporting all these new features outweigh the opportunities and that may have some significant adverse effects.

Published by

Jan Dawson

Jan Dawson is Founder and Chief Analyst at Jackdaw Research, a technology research and consulting firm focused on consumer technology. During his sixteen years as a technology analyst, Jan has covered everything from DSL to LTE, and from policy and regulation to smartphones and tablets. As such, he brings a unique perspective to the consumer technology space, pulling together insights on communications and content services, device hardware and software, and online services to provide big-picture market analysis and strategic advice to his clients. Jan has worked with many of the world’s largest operators, device and infrastructure vendors, online service providers and others to shape their strategies and help them understand the market. Prior to founding Jackdaw, Jan worked at Ovum for a number of years, most recently as Chief Telecoms Analyst, responsible for Ovum’s telecoms research agenda globally.

9 thoughts on “The Danger of Over-Burdening Developers”

  1. Regarding Universal Apps….
    While I don’t underestimate the difficulty in writing for multiple platforms, as in, configurations, Windows has always supported the universe of available hardware, and is thus in a better position to succeed. Android, being Linux based, would be second.

    Apple, needing to only support a handful of their own devices, will remain in their own subset of the world, albeit a very lucrative one, but “universal apps” are out.

    Regarding coding to the lowest common denominator, checklist style…
    Of course it means exactly that. It’s been happening for decades, and it happens now, on all platforms. You don’t think people will code their apps in Assembly Language (as the original Lotus 1-2-3 did), do you? 😉

  2. I see it more as an issue of dev toolchain quality than devices features and formats: Devices/features are really controlled by buyers and evolving technology: Ecosystem stewards/OEMs cannot choose to not have a smartwatch, a range of phone and tablet sizes/formats, the latest UI/cloud/… gimmicks, etc…

    What Ecosystem stewards do have control of is their dev toolchain: system APIs, development tools (IDE, compiler, debugger, profiler, maybe code management…), language, libraries, …

    That’s a complicated issue, because you need to be reactive/innovative, backwards-compatible, forward-thinking, details-oriented, and pedagogical. Apple’s Swift for example is still trailing way behind obj-C even with its very captive audience and Apple’s full weight behind it.

  3. Jan,

    A couple of other interesting things to note:

    1. Enterprise developers at big companies have an even harder time than developers at smaller companies. Often, these large companies are looking to “write once, run everywhere” and so supporting features like TouchID, 3D Touch, etc fall by the side for a long time.

    2. The same thing happens for users. Especially as some of these features have no obvious indicators of how they work – for example, the only way to know if you can 3D Touch something is to try it. Not to mention all the different places where there are settings to configure – like for notifications on the Watch (I just realized today that my Watch Weather complication wasn’t working; it was because I turned off the background location checking in the weather app on my iPhone… pretty hard to find this stuff.)

    If a product over-serves a market, it’s subject to disruption by products that are “worse” but good-enough.

    David

  4. Today, I went to the beach with my kids. I found a sea shell and
    gave it to my 4 year old daughter and said
    “You can hear the ocean if you put this to your ear.” She put the shell to her ear and screamed.
    There was a hermit crab inside and it pinched her ear.
    She never wants to go back! LoL I know this is totally off topic but I had to tell someone!

Leave a Reply

Your email address will not be published. Required fields are marked *