Why app development is going micro
This post was also published on TechCrunch.
Application development has long been fraught with peril: Projects become bloated, expensive and never ship. Implementation technologies tend to match the bloat, ranging from Service Oriented Architecture (SOA) to Business Process Management (BPM). As Redpoint’s Tomasz Tunguz recently pointed out, growth in Software-as-a-Service is slowing, and a next generation of applications will weave new workflows across existing applications in novel ways
The “micro wave” of services, apps and flows
The “micro” trend in application development is focused on delivering bottoms-up, simple solutions to complex problems. Micro services can easily integrate multiple systems, micro apps can present them as easy-to-consume user interfaces and micro flows allow users to simply complete tasks across systems. This “micro wave” triad of services, apps and flows offers a new way to weave existing systems in novel, organic ways in order to deliver solutions immediately.
Interoperability between apps has long been the holy grail of application development. Heavyweight, top-down architectures such as CORBA/IIOP in the 1990s evolved into SOA in the 2000s. Implementing a SOA required enterprise-wide mandates and coordination. Payload standards such as SOAP are heavyweight and fraught with incompatibilities, especially at the authentication layer.
A few companies such as GE have had the discipline to implement a SOA, but for most enterprises, SOA projects have failed to gain widespread adoption. Even after success, the constant divestitures and acquisitions of the corporate world keep SOAs a moving target.
Over the past few years, micro services have become vogue. Micro services are atomic, self-contained services that perform a single operation on a back-end system, such as a retrieving a customer record. The most common interface to a micro service is the well-known and very straightforward JSON/REST/HTTPS paradigm. Authentication is also straightforward and is typically easy-to-use API keys.
The beauty of micro services is that they are incredibly easy to create, deploy and share. New and existing applications can easily call numerous external and internal micro services. Naysayers correctly point out the micro services can too easily propagate like mushrooms, fail to scale and are hard to share and discover. However, these are problems that should be corralled by policy within an enterprise, rather than heavy-handed technology.
Making it easy for apps to organically communicate with each other has spawned a new generation of app creation and delivery that has made it far easier for both enterprises and software vendors to accelerate a new generation of applications.
Since the introduction of iOS and Android app stores in 2008, mobile apps have taken over as many consumers’ primary interface to computing. With the plethora of apps available, it is so difficult to attract consumers to install an app on their device and keep using it. It is therefore very common for vendors to pile a bunch of features into their apps so they can retain existing users with new functionality, as well as attract more users. As a result, native apps are becoming increasingly bloated and hard to navigate.
A new wave of “micro apps” is emerging that are intelligent and context-aware. Platforms supporting micro apps range from interactive Slack and Facebook Messenger bots to Google’s interactive answer boxes, such as weather and flights. These micro apps are typically single purpose and use a combination of straightforward user interfaces and context.
Micro apps are based on HTML and load dynamically, typically bypassing app stores and loading directly into existing communication tools like Slack and Facebook Messenger. There is definitely pushback to the natural language aspect of “bots.” However, the ability to quickly load interactive micro apps directly into messengers and even search results is quickly gaining traction. Facebook Messenger, in particular, is quickly integrating new features, such as dynamic menus and interactive units, which can do anything, from helping you buy a shirt to ordering a pizza.
Slack’s director of developer relations, Amit Shevat, sums up micro apps very well: “they must do one thing really well.”
Business Process Management (BPM) tools help organizations implement top-down automation of business processes. They are typically very expensive and take a long time to deploy. BPM tools manage long-lived workflows requiring a combination of human interaction and machine-to-machine transfers.
The first foray into micro flows were by companies like IFTTT and Zapier, which move data from one machine to another — for example, moving a Salesforce closed deal to Zendesk. While these services are popular, they have hit an upper bound in traction and revenue. New companies such as Workato are extending machine-to-machine workflows between SaaS systems, but they are very similar in complexity to BPM solutions, with a domain-specific language suited for programmers.
The new potential for micro flows is in the arena of human-to-machine interaction. Now that messenger platforms like Slack and Skype provide rich, interactive HTML that lets users interact with back-end systems, there is an opportunity to reinvent how users interact with enterprise software.
With micro flows, users can bypass complex and unwieldy legacy systems to perform simple actions, such as approvals. One of the biggest complaints of modern workers, particularly younger workers, is the difficulty interacting with legacy IT systems that have not been upgraded in years. Much like Generation X workers wondering why there were so many typewriters around, millennials are perplexed by the unnecessarily complicated and antiquated systems at most Global 2000 companies.
Even executives and managers can benefit from micro flows for the multitude of approvals that generally require logging into systems they only occasionally use. Many companies have multiple systems for functions such as expenses. Although IT may have a long-term plan to consolidate systems, micro flows allow executives to interact easily with multiple systems through a single interface.
Because micro flows typically require some type of interaction with a user, they can leverage notification features in mobile devices and messengers. Such simple, easy-to-use micro flows make it easy to fully integrate contributors into a more macro workflow.
Onward to a “micro wave” future
The combination of micro services, micro apps and micro flows build on each other to deliver a new paradigm for delivering the next generation of apps. Hopefully we can learn from the lessons of the past and not try to “grow up” the micro revolution.