In 2013, the communication platform Twilio faced a huge issue: rapid growth, without the infrastructure to back it. Their build systems couldn’t support their quickly-expanding development teams, leading to delays, entire days being unproductive, and such significant frustration that half the development team ended up quitting. Twilio wanted to develop at speed, but ultimately didn’t have the infrastructure to do so.
When we talk to customers, partners, and the HashiCorp team about the biggest shifts taking place in cloud, one topic keeps coming up: the rise of the platform team. 1/11
— David McJannet (@davidmcj) September 7, 2022
Unfortunately, this is a problem faced by many software development teams: they want to streamline their processes, but have no technical backing to do it.
“The future of platforms will be allowing software developers to focus only on their features and their customers, and not about all the underlying systems that are required to bring software from somebody’s head to the cloud to a device and to an experience for a customer.”- Jason Hudak, Former VP of Platform Engineering, Twilio
Platform engineering empowers software developers to focus on their work rather than the systems needed to do their work.
When it came to system operations, it used to be the job of the site reliability engineering team to monitor and fix code that didn’t operate correctly. This meant that all the developers had to worry about was putting their code into the world and if it didn’t work, it was SRE’s problem. But now, DevOps as a methodology attempts to speed things up by including developers in the process at every stage.
This means that SREs are playing less of a role in development. So, developers are responsible for not only writing, testing, but also monitoring and fixing their code (in other words, “it’s your code. If it crashes, you fix it.”)
Because of this shift, developers need quick, self-service tools for managing their own systems. This extra work can’t just become another part of their jobs – another solution is needed.
After all, developers shouldn’t be tasked with managing their own systems and upkeep of infrastructure of their development lifecycles. Developers are already overwhelmed with their jobs as it is – over 53% of developers want the developer experience to be prioritized at work.
Twilio’s goal of revamping its processes was to enable its developers to stick to coding and other processes that they do best, rather than dealing with tools. They measured and tracked this goal with a developer experience-focused stat dubbed “Time Spent Outside Code (TSOC)”, and their goal was to get it as close to zero as possible.
In order to handle system operations, without it becoming a burden to developers, teams need to add more “tool-wrangling” to their lists, and focus on improving developer experience (and Time Spent Outside Code).
This is why organizations are looking to platform engineering to streamline processes and equip developers with the tech they need to do their jobs well.
The Path to Platform Engineering
"Platform Engineering" is rapidly becoming the new DevOps or SRE. Almost every day we hear about another org building an internal developer platform or control plane.
— Daniel Bryant (@danielbryantuk) February 18, 2022
Want to know what platform engineering is, where the trends are going, and why you should care?
Read on 🧵👇
Platform engineering is the practice of developing and utilizing toolchains and workflows with the intention of empowering your developers with self-service software engineering capabilities.
Rather than your developers creating your platforms, platform engineers focus on developing automation to take on manual tasks that developers normally do. They’re constantly looking at the whole software development lifecycle from end to end, finding places to improve workflow efficiency.
Organizations looking to incorporate platform engineering need to be developer-oriented when establishing their workflows and toolchains. In order to successfully deploy platform engineering, organizations need to prepare with tech stack intelligence.
Tech stack intelligence helps developers make data-driven technology decisions with real-time insights into their organizations' tech stack. It increases developer velocity and empowers developer autonomy, which then in turn allows for platform engineering to effectively deliver self-service engineering options.
Tech stack intelligence pays down tech debt through automation, collaboration, and consolidation of your tech stacks. Knowing which tools are already inside your organization serves as a baseline for creating initial automation and systems. Otherwise, you’re just going to put a bandaid on deeper problems within your developers’ processes.
Tech stack intelligence is the prerequisite to platform engineering – you need to know what's going on in your tech stack before you can build something that people can leverage internally.
If one of your developers is building out a web application, they can browse consolidated options built on the insights from their tech stack and simply “grab components off the shelf”, rather than bringing a whole new component into the organization’s ecosystem and adding complications. By streamlining tech options, StackShare standardizes development processes and sets the organization up for success with a platform engineer down the road.
Tech stack intelligence also serves as a better alternative to a microservices catalog, as most companies aren’t able to adopt them due to the high cost, coordination, and level of sophistication required to get a microservice catalog going.
Four Critical Prerequisites to Platform Engineering
In order to effectively harness platform engineering, there are critical steps to take to get your organization prepared. With tech stack intelligence, teams can focus on the following top four prerequisites to platform engineering: providing guardrails and governance, cutting tool toil, establishing self-service, and automating tech collaboration.
1. Eliminate Tool Toil
Tool toil is a symptom of tech sprawl. In order to consider platform engineering within your organization, you need to first get a handle on your tech sprawl and eliminate redundant or cumbersome tooling. Automate the manual, repetitive functions and identify the duplicate tools and licenses with company-wide tech stack intelligence across your organization with StackShare.
Once you’ve removed the excess tooling causing tech sprawl, the best way to minimize future toil is by automatically flagging updates when stack changes are made. See all of your tech stacks, tools, packages, team members, licenses and more in a single dashboard with reports to drill down further.
2. Provide Guardrails & Governance for Developer Autonomy to Explore Tech
Platform engineering gives developers autonomy, but also pushes them to adhere to a standard way of doing things. Effective platform engineering should strike the balance of setting up standardized systems while also still allowing for flexibility. It’s critical to set up guardrails and governance that maintain security and longevity, but doesn’t restrict developers from going outside of the standard systems when cases call for it.
In preparation for platform engineering, help your team to collaborate and standardize your development tech stacks with StackShare Enterprise. Track tech stack changes and get real-time alerts when stack changes happen, keeping an automatically updated inventory for autonomy with guardrails.
3. Establish Tech Stack Self-Service
An indicator of DevOps maturity and a staple for effective platform engineering, tech stack self-service supports developer-driven provisioning. It’s all about letting the developer see the full tech stack and enabling them to choose what they want. Establishing tech stack self-service improves developer experience by eliminating the hunt for the right tooling for their needs.
StackShare helps teams establish self-service with stack standardizing and stack tagging. Organize tech stacks by team and/or use case, allowing your developers to provision as they need, without having to hunt for options. When your organization is ready for platform engineering, this will make their jobs much easier.
4. Automate Tech Collaboration
A hallmark of platform engineering readiness is establishing a central knowledge base for your tech stack. But it’s not enough to have visibility of your tools – teams need to be able to collaborate and track tech decisions.
The knowledge base should also include organizational experience, recommendations, and expertise. By setting this precedence of collaboration between teams, proper tech stack intelligence preps the whole organization for the work that a platform engineer will execute.
StackShare empowers teams to automate their tech decisions and track collaborative decisions automatically. Like a technology radar, you can categorize any tool listed on StackShare into an adoption stage that can be viewed only by your private company.
Create Stack Decisions which explain why certain tools were chosen, and tie them to specific stacks and technologies so that anyone in your company can learn about that technology in the context of your company. Your StackShare Feed shows you all the decisions being made across your company in one stream, making it easy to ask your colleagues with specific tool experience for advice on decisions. Plus all discussions are linked to your Tool Profiles so they’re available for reference if future decisions come up for your tools.
Prepare for Platform Engineering with StackShare
In order to effectively incorporate platform engineering into your organization, you need to first build out mechanisms that make it faster and easier for developers. It all should start with cutting out tech sprawl and adopting tech stack intelligence. StackShare can serve as a great starting point for preparing your teams.
Find out more about our tech stack intelligence solution by requesting a demo.