7 ways a Platform can fuel the App Economy
|27 June 2012|
Earlier this year a Technet sponsored study showed that in February there were roughly 466,000 jobs in the "App Economy" in the United States. This so-called App Economy had zero jobs just 5 years ago, before the iPhone was introduced.
The term "App Economy" isn't formally defined but is often used to refer to the economy that has been created due to the development and delivery of software applications for smart-phones, tablets, and Facebook.
This App Economy was created by the introduction of new, innovative platforms. I think there are 7 ways a platform can fuel this App Economy. Not just how Facebook and the iPhone did it, but also ways to further expand this economy with new innovations in a platform or Platform-as-a-Service. Although the current App Economy is consumer-oriented, platforms for enterprise apps can and should fuel the App Economy in the same ways.
Let's jump into the 7 ways an App Platform can attract users and developers to use and build apps and therefore fuel the App Economy:
1. A platform should make the delivery of Apps easyOne of the key success factors of the iPhone (and iPad) is access to great content. Developers can easily publish their apps to users, and users can easily access and "install" these apps. The App Store as a distribution mechanism has proven to be hugely successful. The concept of an App Store is becoming a key element of all successful platforms. Amazon recently introduced the AWS Marketplace and Facebook introduced it's App Center (also aimed at apps for other platforms).
A platform should make it easy for user to access content by means of an App Store (or marketplace if you like) mechanism. If a platform becomes successful one of the main challenges is to provide users with a way to find the right apps for them.
In addition to making it easy for users to use apps, a platform should also make it easy for developers to deliver apps to users. Most platforms only make the delivery of the client-side (i.e. the user interface) easy via an App Store. I think platforms should go further and provide a way to deliver the full application, including its server-side components easily. This means a platform should also provide deployment options, you should be able to put code in and get an App (i.e. a service) out. In other words a platform should become a true Platform-as-a-Service.
2. A platform should attract and bind users with a great user experience
Another success factor of platforms, and again driven by Apple, is the user experience. And not only for consumer apps. The emphasis on beautifully designed consumer products and apps is also driving the, so-called, consumerization of enterprise apps. A great user experience has proven to be a way to quickly build a big user community, and not only a big one, but also a community willing to pay for apps.
The lesson learned? An app platform should foster a great user experience by providing default layouts, guidelines, and of course by setting the baseline in it's own UI. In 2012 this also means making sure apps delivered on the platform are accessible from any device, including smart-phones and tablets (this is of course only applicable if the platform itself isn't an operating system, like iOS on the iPhone and iPad).
3. A platform should contain end-user value itself to create a base community and let developers build on top of that
What comes first? The chicken or the egg? Or, in the context of this article, a user community willing to buy apps, or a developer community willing to build apps?
In case of the iPhone the "platform" contains a lot of value and out-of-the-box killer apps to make it great, even without third-party apps. Facebook was first an app and evolved into a platform for social apps and as an identity manager for virtually any modern web-app out there. Force.com is an app platform mainly for apps (or extensions) of Salesforce.com. These are all examples of platforms that took off around an existing user community.
A platform centered around a killer-app of course also limits the applicability of the platform as the APIs and functionalities are focused on that core capability. Platforms can also be successful without a killer-app, as AWS (Amazon Web Services) and Heroku prove. These platforms are more focused on the infrastructure and deployment parts. Although you could argue that Amazon itself is the killer-app of AWS, there is not really a relation between users of Amazon and users of other apps running on AWS.
The lesson? A killer-app can definitely solve the "chicken-or-egg" problem of platforms. However, don't forget that too much focus on the platform itself or its killer-app often also limits the applicability of the platform.
4. A platform should provide great APIs to foster re-use of multi-tenant platform services and make development easier
As said before, great content is key for a successful app platform. So, make it easy for developers to deliver great content! How? By providing the basic building blocks and templates to lay the foundation for a great app. Make sure developers can focus on the great ideas they have and do not loose any time on "infrastructural" stuff.
Facebook offers for example APIs for authentication, the social graph, and game APIs like achievements and scores. Building a social game means focusing on the game itself, you do not have to develop a social graph and communication channels. iOS offers APIs for UI, media, and network, but also notifications, messaging, a game kit, and in-app puchases, to name a few.
I think platforms can go even further by providing multi-tenant cloud services to developers and their Apps. A platform provider can provide these services cost-efficiently and do the difficult work of scaling these services. Examples of such services are deployment / provisioning, storage (like Apple's iCloud), identity management (Facebook being the example), messaging (and other social services), but also higher-level services specific to the type of platform. Think about CRM or HRM services for enterprise apps, or things like Apple's Game Center for game apps.
The more business- or consumer-oriented these services become, the more they move into the direction of a killer app for the platform (as discussed in the previous section) instead of a mere building block.
5. A platform should attract developers with great tools
It is not just the APIs that attract developers to a platform. The tools developers need to build content are as important. These tools also define to a large extend how big the community of developers can become. Just imagine that everybody with a great app idea only had to express that idea with visuals models to make their dream come true. The potential "developer" community could be way bigger than the group of professional programmers. Model-Driven Development helps to take a step into this direction.
Aside from the development language, platforms can support developers by providing the right documentation, tutorials, wizards, admin tools, debuggers, analyzers, etc. In the end, developers are users too, and user experience matters.
6. A platform should support and ease the entire application lifecycle to ensure quality and agility of Apps
If a platform really wants to fuel the App Economy it should make sure the content created on top of the platform is valuable. Valuable content, i.e. apps, are apps that align with the needs of users. While user wishes change over time, apps need to change too. Apps need to have a short time-to-market and have to be flexible to evolve along with the changing needs of their users (or: "the business" for enterprise apps). This means the full lifecycle of such apps, from the initial idea to first deployment, and from that first deployment to long-term evolution, needs to be as agile as possible.
In my opinion Application Lifecycle Management (ALM) is key to the success of a platform. Development is just a small part of the application lifecycle. Platforms should also support developers in collaborating with all stakeholders involved in the delivery of the app. Platforms should empower the app delivery team with the deployment and monitoring tools they need. Platforms should help the app delivery team to engage with the users of the app (i.e. feedback management), to be sure to develop the next version of the app into the direction of the user needs. Platforms should support (and ease!) the entire app delivery lifecycle to ensure quality and agility of apps.
7. To stay successful a platform should ensure that users and developers upgrade to the latest version
The lifecycle of the platform itself should be managed too. In the same way as an app created on-top-of the platform evolves, it is important to evolve the platform to stay aligned with the wishes of users and developers. However, how do we make sure we are not creating a fragmentation of platform versions? If we look at iOS and Android we see a huge difference in the adoption rate of new versions: iOS 5 captured approximately 75% of all iOS users in the same amount of time it took Gingerbread to get 4% of all Android users.
Fragmentation of platform versions is a bad thing. Users want the most recent features and security updates. Developers want to focus on a single (or maybe a few) platform versions to minimize development, testing, and marketing efforts.
In case of iOS and Android the users decide to upgrade or not. In case of web platforms often the developers can make this decision (i.e. what API version to use). I think we can learn from Apple how to let users upgrade as soon as possible: great marketing, shiny new features, and some gentle reminders. Web platforms should be single-instance if possible, with versioned, backwards-compatible APIs for developers. Developers will have incentives to upgrade to new API and development tools versions if these new versions make their life easier, contain much-needed development features, or contain features that users ask for.
In my opinion, these are 7 ways an App Platform can really fuel the App Economy. What are your thoughts? Please share them!
Photo by cool3c