That Thing You Don't Realize You Need
Believe it or not kids, but back in 2007 nobody needed a smartphone. The first iPhone was not of much interest for anyone but gadget geeks and got met with much more doubt than excitement. Just watch Steve Ballmer laugh at it in the video below.
And guess what? It did become the great disruptor - changing almost everything about the way we manage our everyday life.
I'm recalling this now because something similar is happening in the world of software engineering. And no - I'm not talking about AI code generation coming to take our jobs away. I'm talking about Platform Engineering and the rise of IDPs (Internal Developer Portals).
Platform Engineering is not an option
Software engineering is still a very young discipline. And it's constantly changing - adapting to the varying scale and types of problems it's applied to. Approaches that used to work just fine stop scaling at the next stage of development and we need to reinvent the whole thing once again. Along the years this has led us to methods like RAD, Agile, DevOps and finally - the last iteration in that continuous improvement cycle - Platform Engineering.
I won't go into the discussion of what Platform Engineering is and why it is needed. There are enough blog posts on the internet outlining just that. Let's just agree that in the world of ever growing service-orientation, componentization and continuous delivery unifying on a platform is an imperative, not an option.
Platform Engineering Done Right
So if I manage a software engineering organization with at least 50 devs - I have to take the platform engineering path. But how do I go about it? Do I need to take my DevOps Team and rebrand them to Platform Team? Or is just running on Kubernetes enough?
Well, you know I'm being sarcastic. Of course the main purpose of Platform Engineering is building an internal self-service platform that enables the engineers to be more productive, shortens cycle time and puts the necessary information at their fingertips when they need it.
But - easier said than done! Many large R&D orgs have tried building that thing internally in the past. Some even succeeded, but the need to maintain the platform and keep adapting it to the rapidly changing technological stack and organizational landscape has worn them down.
There's an App for That!
The good news is now you don't need to invent the wheel anymore. There's a name for that thing you were thinking of building. It's called an IDP - an internal developer portal and I'm positive it's gonna change the way we build software.
A classic IDP consists of the following components:
- A software catalog (the backbone of the platform - outlining what we have and who owns what)
- A software scaffolder (allowing engineers to quickly build new things)
- Self-service workflows (allowing engineers to quickly provision necessary resources and perform routine tasks)
- Integrations (allowing full visibility and self-service access to all necessary organizational data sources and tools)
On top of all these - numerous important features need to be added in order to improve the developer experience (or DevEx - another topic that definitely needs unwrapping)
But - even getting the basics right will get you miles ahead of competition.
Why the Smartphone Parallel
This is where the attentive reader (you?) will ask - how is all this related to smartphones?
Well, as I see it - right now an IDP may not sound like a necessity. After all - we're doing our jobs, software gets built, customers are happy. We even have some of the IDP functionality in place. Some self-service flows in our CI/CD server, maybe even a home-grown catalog...
So why do we need this shiny new thing? It looks like fun, but how much better will it make our lives?
And that's the similarity right there - you may not realize you need this right now. But the early adopters are already on the IDP train. And they are the best software engineering organizations in the world. Simply put - IDPs are changing the way we manage software engineering and in the end even the laggards will follow suit. Being a laggard is sad and demotivating - not a place anyone wants to be. So my recommendation is - start implementing an IDP before it's too late.
So - How to Build an IDP?
The good thing is - there are now quite a number of options available. But that's a topic for another post. And it's coming very soon. Watch for updates!
And a few questions: Have you looked at building an IDP for your org? What's your motivation? What doubts are you having?
Looking forward to a productive discussion!
Top comments (2)
Great articles - and to complete it, here is an article I posted about 10 IDPs to use medium.com/@rphilogene/10-best-int...
Thanks for sharing! Some of the tools you're mentioning aren't exactly IDPs in my book, but this whole ecosystem is only taking shape now, so yes, a very valuable overview.