I like the phrase “every company is a software company”. It has aged well, and although it is still relevant today, I think there are a few particularities that make a big difference in 2018.
Airbnb, Netflix, Lemonade, they sell services based on software. Hey, Tesla sells software on wheels! But I’ll be honest, I don’t like the term “Software”. Neither I like “Apps”. I think this underrates the value of what is really going on with when a good product mixes with the power of social forces: a platform. Or in other words:
Product + Community = Platform
Even at risk of leaving an unpopular statement behind me, I believe the consequences of Web 2.0 that started many years ago have spanned more than we thought. The social aspect of “everything” has reached software development also, and if you don’t believe what I say, take a look at GitHub. I believe GitHub is nothing but a great Social Development Platform which just happens to have Git repos (I know, I know). It has introduced some post-Agile techniques and patterns such as Pull Requests that to me, are really game-changers as to how we do platform engineering. And yes, it is, in essence, a community-based procedure. It is an attitude.
One might think that a product is a finalised App, a complete piece of software you build, deliver and deploy somewhere and that is tangible via a User Interface. A monolith. A system. And I disagree. To me, a product is just any piece of functionality that gets some inputs, implements some discrete transformation based on business rules, produces an output and, more importantly, it is self-contained and configurable. In addition, any piece of functionality to which you can apply the principles of LEAN development and is individually shippable.
APIs meet these criteria well. I have heard many times the phrase “we have an API-first product” or “we have an API-first strategy”. And I tend to shake in my chair a bit. I don’t believe in API-first products. I do think APIs are products, if only because it is a finalised interface to your company’s data (the data you want to expose). It is an entry point to external consumers to interact with your business processes (the processes you want to expose). It is part of your company’s front door. It’s the lever.
Developer Portals bring both things together: Product and Community. It is a central place where a company exposes all their APIs to the world, accompanied by developer guidelines, code labs, test consoles, etc. It is a place to build and discover. It is a place for companies to start thinking about turning their software into platform.
Companies have the data and the APIs, but the community has the ideas. Developers have the ideas. With a Dev Portals, developers can turn their creativity and innovation into real solutions. And companies are giving them full power.
And this the point. I don’t think any sensible company would believe they can do everything on their own. They need partners. Banks need FinTechs and Insurance Carriers need InsurTechs. They need to build an ecosystem. They need to build a platform to capitalise on their data through APIs. And a Developers Portal will help with that.