Successful apps are not usually radical departures from what came before. Uber, Facebook, WhatsApp, My Fitness Pal, and other highly used apps are not radically new technical innovation. Their success mostly has hinged on combining existing features, technologies and ideas in new ways for new markets.
This makes sense. The rise of code libraries, frameworks, application programmer interfaces (APIs) and cloud computing have created building blocks that developers can use for common functions and features without having to reinvent the wheel or focus on technology that is not at the core of their product’s value proposition. Almost nobody writes machine code any longer, and developers have now moved up the technology stack to the point where ideas matter more than code in many cases; the app developer’s task in 2016 is combining technologies in new ways and maybe sprinkling in a little tech innovation around a core value proposition.
In this evolution up the stack, the next frontier for developers is features-as-a-service (FaaS).
Developers already are familiar with software- and infrastructure-as-a-service; cloud services are largely built on the back of hosted infrastructure offered by Amazon’s Web Services and others. Backend processes such as credit card processing often are handled by Stripe and others.
These services make app development significantly faster and more reliable. Instead of creating infrastructure and backend processes from scratch, developers simply piggyback off of these services and focus on the core value proposition of their product.
For old-school programmers, this is a radical departure from how software was developed 15 years ago. For new developers, this just is how things are done; nothing else makes sense in a software development environment that privileges iteration and velocity.
Features-as-a-service brings this same idea to the front-end. An app may need location services as an important component of its offering, but there’s no reason to reinvent the wheel. Instead, a developer can use a FaaS provider such as Mapbox to quickly add location features to an app. Social is another feature that many app developers need. Until recently, app developers had to divert energy and resources to include a social layer in their product. By using a FaaS provider such as Tapglue, however, developers can now easily create a social network in their app by letting Tapglue handle personal profiles, following users, news feeds, notifications, likes, in-app shares and other social components like commenting.
The utility of rolling out polished functionality with FaaS is even greater with something like real-time communications.
The importance of click-to-call and embedded video chat within apps is huge and growing. An estimated $1 trillion in annual sales is attributed to click-to-call functionality, as I noted in an article last month, Why Click-to-Call is Important for Mobile Apps and Web Sites. Embedded voice and video is particularly important for mobile users, with Google reporting that roughly 70 percent of mobile consumers use click-to-call and 40 percent use it frequently.
Developers can horse around with WebRTC and work real-time communications into their apps, but there are compatibility challenges, numerous technical considerations and quality-of-experience issues that easily can gum up the rollout of real-time communications features. For instance, serious developers must ensure the reliability of their voice or video features in the face of variable mobile network connectivity.
Instead of tackling these issues themselves, developers can use a features-as-a-service provider such as Agora.io’s video chat API for turnkey real-time communications in their app. Just as Stripe handles payment processing on the backend, Agora.io brings turnkey voice and video features by taking care of network considerations, codec optimization and things like compatibility. Developers can drop in pro-grade real-time communications features in their product offering on an as-needed basis.
The value for developers of FaaS is obvious, and it represents the next evolution in software development. The velocity of software development is now so fast, and consumer expectations so high, using off-the-shelf features is an almost inevitable progression.
There’s still room for fundamental technical innovation and bespoke design, but developers have to be more thoughtful about when to build it from scratch and when to use an off-the-shelf solution. Does an app really need its own custom location services feature, or can a FaaS provider bring the same value but a lot faster and with higher quality?
Features-as-a-service ultimately represents more choice and flexibility for developers. That’s a good thing.