You may not have heard about FaaS (feature as a service) before – but you’re probably already familiar with the concept that underpins it: don’t reinvent the wheel.
One way to chart the development of computer technology is viewing it as one long journey up the stack. Machine code begat programming languages. Programming languages have slowly evolved from low-level code to frameworks and higher-level languages such as SWIFT. Open source ushered in code sharing and greater levels of reuse, and the cloud has simplified a lot of the backend processes and infrastructure by enabling developers to outsource areas such as payment processing and build out a lot of the backend through services.
FaaS continues this trend by offering services that developers can plug into for off-the-shelf features on the front end. The idea is that many of the features that go into apps today are valuable but not necessarily original. The originality is the use case or the combination of these features with a sprinkle of core innovation, and the features that don’t need core innovation can be grabbed off the shelf from a feature-as-a-service provider.
Stick to your value proposition
One of the most important reasons to leverage FaaS as a developer is velocity. By using FaaS for features that don’t require innovation, developers can build and release faster.
If a developer needs profile management in his app, for instance, he might use a FaaS provider such as Tapglue for social functionality out of the box. Tapglue helps developers handle profiles, following users, news feed inclusion, notifications and other social components such as in-app sharing without the developer having to wade into the nuance of implementing these features in his app.
Or, a developer might need maps features in his app. Mapbox can help simplify the use of custom maps within an app by making it easy to roll together millions of rows of data into custom maps that look good and integrate seamlessly in an app. Companies such as Etsy, Lonely Planet and Foursquare use Mapbox for easier map features without the hassle of rolling something in-house.
The use of FaaS for fast feature rollout means developers can not only move faster, which always is important, but also that they can focus more on their core value proposition.
Instead of diverting energy and time toward problems that already have been solved and are widely in use, developers can focus instead on the core innovation in their product. Features like maps and social profiles are customer-facing and important, but they don’t make an app different. What matters most are how these features are put together, and how custom data and new thinking create something new. Something like chat feature code rarely is the reason for software success, and FaaS lets developers concentrate where they can make the most difference.
FaaS also improves app quality.
When developers pull features from a FaaS provider, they improve their app quality by relying on a business that makes this feature their core product. Instead of rolling out a feature as part of a larger product, the feature is the product for the FaaS provider. This translates into feature code, infrastructure and design that is often of a much higher quality than if the developer rolled something out by themselves.
Real-time communications functionality is a good example.
There are plenty of video chat and VoIP apps on the market, but real-time communications also is an important feature within many apps today. Whether for in-game communication or in the service of a larger idea such as telepsychology apps like TalkSpace, real-time communications is an important feature for many developers.
Developers might be tempted to include real-time communications through WebRTC, an open source, stable, relatively turnkey video chat technology pioneered by Google. The tech is stable, easy to use, popular and a natural starting point for many. However, relying on a standard like WebRTC doesn’t mean the challenges of implementing real-time video end there.
Even with the use of WebRTC, there still are issues of network reliability usability that developers must grapple with.
Rather than building out real-time communications features from scratch using WebRTC, a better route might be grabbing off-the-shelf video and audio chat through FaaS real-time communications provider, Agora.io.
Agora.io starts with WebRTC but then marries it with more than 80 global data centers and proprietary optimization technology to improve on real-time communications reliability so things like video chat are business-ready (a click-to-call feature in an app fails pretty quickly if there is latency or dropped calls). Agora.io also simplifies implementation by giving developers an SDK and API calls that make it possible to include full-featured video chat features into a project with only a few lines of code.
This, of course, improves the quality of experience for app users. By using FaaS, developers not only get velocity and better focus on their core value proposition, they also up their product quality.
Velocity, focus, quality. All this makes FaaS a new acronym worth remembering if you’re a developer.
Rojenx is a leading concept artist who work appears in games and publications
Check out his personal gallery here