Just over two years ago now, analysts from Gartner and elsewhere first noted that the four principal forces shaping the technology revolution — mobile, social, cloud, and whatever the fourth one happened to be at the time — were not just coalescing but converging.
Picture, if you will, an occupant sliding along the walls of a very large room, just now coming to the conclusion that the occupant at its center is actually one and the same elephant.
One of the most telling acknowledgments of this realization has just been published by IDC. In “The Evolving State of Mobile Software Development,” Program Director for Software Development Research Al Hilwa provides evidence that developing software around microservices and developing software around mobile consumption have, in a growing number of organizations, become one and the same project.
“The shift to a microservices approach to organizing internal development teams is extending to mobile app development teams,” Hilwa writes, “which often operate independently but cohesively with other, technologically diverse, API-connected innovation teams working on the various aspects of digital transformation taking place in the enterprise.”
No More 'Mobile Version'
Let’s sort out what Hilwa’s talking about here: In every organization, there’s a division of labor. For software development teams, historically that division has been around the classes of software they produce.
When “software” was all run on desktop PCs, “classes” in this context meant the types of functions they performed — CRMs, ERPs, CMSs. When “mobile” became a thing unto itself, at first, organizations responded by assembling “mobile teams” to produce “mobile versions” of existing tools and services.
But soon, the “mobile version” of modern software (i.e., built this century) became the main version. Organizations realigned their software teams to focus on either the back-end workloads or the front-end “user experiences.”
The connections between these two groups are the APIs — the common language that front-end clients use to request and receive services from back-end servers.
Now, let’s put that concept aside just for a moment: “Microservices” refers to an architectural model for delivering services to all kinds of clients, including the mobile variety, based not upon a single, self-contained, branded software package, but a multitude of blended, interactive services.
For large enterprises that deliver digital services utilizing high bandwidth (Netflix being the prime example), microservices represents a more abstract, but more suitable way of thinking about how jobs are delegated and coordinated.
We’ve always noted similarities between the critical aspects of both microservices and mobile development. Both catabolize big jobs into smaller processes. Both are more readily suited to delegation to smaller teams, and are more conducive to so-called Agile development processes.
Both involve the decoupling of the logic and calculation components of IT from the delivery and interaction components.
But from Al Hilwa’s new report comes the first evidence that both these trends are actually the same trend seen from opposite angles. In recognizing that organizations have re-aligned their software teams for smaller units, in greater numbers, of more scalable functionality, the “mobile teams” are no longer divided unto themselves.
“What we are seeing is that the broad set of practices employed in microservices are extending more broadly in development teams and encompassing mobile teams,” said Hilwa, speaking with CMSWire. “We are also seeing organizations shift from platform-based to function-based approaches.”
Facebook Leads the Charge
This encompassing is effectively shifting the point of decoupling, from “desktop and mobile” to “service and experience.”
Catalyzing this trend, Hilwa believes, is the adoption by businesses of a hybrid development model incorporating both web apps and native mobile apps (using smartphone platforms’ native systems), in the form of a JavaScript framework emerging from Facebook called React.
To understand what React is and how it works, picture in your mind a restaurant. Imagine if the job of the waiter, all through history, were to collect every ingredient from the kitchen once it was cooked individually, and assemble it on the plate in front of each guest — often out of order with respect to when it was received.
Then along comes a new development principle that says, hello waiter, you might be better off plating the meal in the kitchen, then bringing the meal to the guest once it’s all done. Eureka, a major improvement in customer experience!
Facebook’s developers created React (or React.JS, to denote that it’s a JavaScript framework) as a way of radically expediting the appearance of how its Web pages perform. React enables Facebook to compose complex, interactive elements on the server side, and only deliver the completed product to the client.
And then Facebook open-sourced React, so other developers could use it too.
Once other organizations began using React, they discovered they no longer needed to think about their work processes in terms of “the main version” and “the mobile version.” They could build software that just worked, and let client-side frameworks decide how best to present the completed product.
Later, Facebook developed an extension to this framework called React Native that let organizations begin building hybrid apps — mobile programs that really do work like native code, but utilizing the same principles as Web apps. This way, one team can build the same code for multiple devices.
Independent and Inter-Dependent
What IDC’s Hilwa is noting are the changes that adoption of React and React Native is having on organizations, starting with larger institutions and working down to smaller enterprises. More and more of them are developing new software made up of independent, but inter-dependent, functions that can run on multiple devices and can encompasses a myriad of forms of user experience.
When enterprises align their mobile efforts, the results come in the form of microservices. And it doesn’t look like coincidence.
Learning Opportunities
“I think the approach that React Native brings to the table is an interesting new innovation that will be durable,” Hilwa tells CMSWire. “There are other frameworks at various stages of maturity that are now using the same approach. I expect these to gradually mature and be much more popular as a category of hybrid web development.”
I asked Hilwa, if he seriously believes React Native will be adopted broadly within enterprises as soon as this year, what else needs to happen to make his prediction come true?
“I think we are going to keep seeing an evolution of hybrid approaches for multiple reasons,” he responded, “including that Web technologies are building a strong base of developer skills which over time becomes irresistible to leverage by dev teams.”
Build Less, Assemble More
This points to the growing success of JavaScript adoption by back-end developers, moving away from Java and its dependencies on 20th century middleware, and toward nimbler and more adaptable constructs like Node.js.
It’s fair to say that not everyone agrees with this latter point. In a note to CMSWire, Derek Collison, the CEO of software delivery platform maker Apcera, told us, “I think Node.js brought about a promise of back-end and front-end development being the same, but I do not think this really every materialized.”
Collison went on to assert that one common, key feature of both the API revolution (as he perceives it) and the uptick in microservices, is how they both enable developers to use languages of their choice, rather than align around just one — whether it be Java or some form of JavaScript (which are less related than their names may imply).
I asked Collison, regardless of any differences he may have about the catalyst, does he perceive the realignment around microservices and the realignment around mobile becoming, or having become, the same process?
“I think mobile continued, at a larger scale, a trend we saw with Web development, which was, the majority of processing state, data, and information was going to be handled off of your device.”
In an earlier era, the CEO pointed out, software was built to suit its distribution model. Now that doesn’t matter so much.
“If you truly want to drive value, and you want to build things faster, you simply build less and you assemble more,” he said.
Collison sees a kind of unification trend that transcends delivery models, but that grows in orders of magnitude. So while the Web, and then mobile development, and now microservices are perceived as successive drivers of new trends, all of these may actually be the same trend at different scales.
In fact, he sees the Internet of Things as the next milestone on this trend line, one order of magnitude larger still.
“The amount of pressure on IT systems is continuing to become orders of magnitude larger, as we’ve gone through these waves — Web, mobile, and now IoT,” Collison told CMSWire. “And by ‘IoT,’ don’t think of CES and your refrigerator having a screen on it. Think of IoT as everything that can generate data that might be useful.
“We’re going to go through this huge wave of sensor-enablement,” he predicted, “[which] can be hardware, and can also be software inside of your own enterprise — extracting data from places you might not have known had data, collecting and moving that data around, and turning that into information and insights.”
Some folks perceive “Big Data” as the fourth major force in information technology, for whatever list they compile that includes social, mobile, and cloud. A few folks see microservices as that fourth, or even fifth, component.
But as you fit those pieces together in the same puzzle, some perceptive people are noting it’s starting to look like one and the same elephant.