Monday, October 5, 2015

Evolution of Software Engineering in the Age of Platforms


What makes Apple, Google, Facebook and Amazon such successful companies of today’s times?

One may wonder if there is any commonality in comparing these four giants who are operating almost independently in their own market spaces. Apple is leading in mobile hardware/OS pace, Google essentially in everything related to Search, Facebook is a peerless social networking site and Amazon primarily into retail. Of course, each of these companies have overlapping areas such as- Amazon’s foray into mobiles or Google’s foray into social networking but by and large, these companies have been largely distinct in the way they have carved a niche for themselves. So, is the quest to find a thread that binds these companies- a right one?

The generic answer to this thread could be that these companies have embraced superior technology, are innovative to the core, they have built ecosystems, they have built experiences that have really let the users hooked on to their offerings and so on and so forth. In reality, more that these easily guessable attributes, these companies have figured out an entirely new way of doing business- The Platform.


Phil Simons, who is an evangelist around the idea of platform style business- describes that there is a great distinction in the way businesses operated in 1990s to much technologically integrated times of today. While the businesses in 1990s thrived in the systems that were more closed in nature and important details pertaining to organization were protected to a limited set of partners, the organizations of today are much more open and collaborative in the way it runs the mutually beneficial partnerships and the supremely successful businesses.

These examples explains this transition better-
1. Google's product AdSense helps democratize Google’s Search technology. By inserting a snippet of code, even the smallest websites can become Google partners, making money for both themselves and Google. This reinforces the “win-win” scenario. Beyond direct monetization, it gives Google a footprint on millions of other websites whose owners also want to monetize their platforms.
2. Facebook has a features called "Facebook Connect". It helps users connect users to multiple websites if they have a Facebook account e.g. it is possible for you to login to The New York Times using Facebook Connect. It helps Facebook get its footprint beyond their own walls and also helps their partners drive more users to their site.
3. Amazon has a Product Advertising API that allows customers to embed product links on their own websites, making money for the partners and Amazon in the process.
4. Apple, despite being perceived as closed ecosystem has intelligently built itself on the Platform-style thinking. It allows various App developers to build the apps for its devices that not only helps the developers their share of money but also enhances the capabilities of the devices.

These are just the small set of examples around how these ultra-successful companies operate.

The topic of discussion here is not limited to the evolution of platform as a business but more so on the technical and engineering aspects of platforms that helps to successfully weave together a business.

Platform development is different than Product development:
While these companies market specific products or solutions, they are often created through a platform of foundational technologies that the company can reconfigure in endless ways to address emerging needs.
The platforms are built not the same way as traditional products are. Developers of the traditional product teams tend to be motivated by the prospect of creating a finished good, the way a sculptor wants to begin with a piece of stone and end with a fully realized figure.
Whereas the Developers of platforms tend to think about the distinct capabilities of platform first and then look for the ways to mix and match them in infinite ways. So unlike being a sculptor, now the developers first produce puzzle pieces instead which can later be integrated in myriad of ways.

Shift from Product thinking to Platform thinking:
Thus, the leap from Products to Platforms involves these three distinct characteristics-

1. Connection: how easily others can plug into the platform to share and transact
2. Gravity: how well the platform attracts participants, both producers and consumers
3. Flow: how well the platform fosters the exchange and co-creation of value

Platform General/Technical Characteristics:
As I have experienced the drift from Product thinking to Platform thinking in Citrix and studying the other organizations, some of the below represents the characteristics related to platforms.
1    1. Think of product in form of interfaces
2    2. APIs and SDKs form the basis of Innovation
3    3. Ability to scale infinitely
4    4. Promotes developer ecosystem
5    5. Product with Infinite features
6    6. Extendibility- Ability to Plug-n-Play
7    7. Co-creation of value
8    8. Drift from monolithic architectures

Beyond these characteristics, there is an in-depth focus on how the platforms are designed in today’s software engineering discipline. The aspects such as designing the interfaces, consistently exposing the APIs, making APIs externalizable etc. are just a few of the pointers.

This is an introduction that i wanted to cover w.r.t to the topic. I will be exploring this topic further in the coming days and sharing further insights.

Please do share your feedback and comments.

Images source:
http://www.philsimon.com/

No comments: