Back at the early dawn of prehistory, we used to reserve our use of the word platform to denote a complete software programming development environment and underlying subsystem with language, runtime, components and all associated libraries and binaries.
The result of using a platform (Microsoft .NET or Java for example) was a software application, which in later years even your grandmother would start to call “an app” – and then the Earth cooled.
In the next age of man, a platform became something slightly different. Where we used to think of a platform as the underlying computer system, we now probably have to accept the fact that the industry considers a platform to be anything that you can build upon.
To be clearer, a platform could be your smartphone i.e. it has its own device form factor and its own ability to interconnect with other software streams, therefore it’s a platform that you can do other things with that were not originally envisaged at the time of its initial design – and this is the important point.
What we learn from Facebook
Facebook is a good example of a platform AND a software product; and it is this duality that helps to explain the differentiation. The Facebook application is a software product, it’s an app. You can log into it online and use it as a web service, or you can download it to your device and log in to a connected app. Crucially though, Facebook is also a platform for other apps.
We can now program standalone applications without a platform, or perhaps use the web itself as our underlying substrata, but generally speaking we can still say that programming is easier when there is a platform in place.
Software AG CTO Wolfram Jost insists that, “The Digital Business Platform provides the foundation necessary to develop and deploy differentiating business applications, developed together with the business departments, in short and easily foreseeable release cycles. Traditional packaged applications are not designed for this type of development approach.”
Jost actually means that software PRODUCTS (i.e. applications) come with predefined business logic that narrows their ultimate breadth of scope. Conversely then, PLATFORMS separate out the logic functions of applications so that an IT structure can be built for change. Any firm’s application platform can be doing something markedly different five years after it was firm laid down. Kind of like the Amazon and iTunes examples.
And, well, since the logic structure is separate, you're giving up control of your own data to someone else!
There is also a risk that by outsourcing file and data management to a third party, firms will assume all the security has been taken care of.
The biggest risk is giving up control of your data to someone else using different data centres in remote places, in case of platforms. What happens in the event of a disaster? You're also putting your data next to someone else's.
In other words, your data could get lost, wiped, corrupted or stolen.
So there is evidently a difference between a (software) product and a platform – and there is evidently a new definition of what we should consider a technology platform to be. Software has now moved from its previous ‘proven’ mode where it was stable, certain, systematic and mostly predictable to a new state of ‘agile’ where it is flexible, uncertain, exploratory and opportunistic. There’s still plenty of industry spin associated with the term platform, but digitization is driving home some new truths. Change is constant, so make plans to change plans.