When Kubernetes became popular around 2015, the developer experience began to change for the worse. Prior to the widespread use of Kubernetes, developers wrote code and then handed it off to site reliability engineers (SREs) for deployment. But with Kubernetes, developers started owning the entire software delivery process, from writing code to deploying it, increasing their responsibilities and making the developer experience significantly less enjoyable.
Things just kept going downhill for the developer experience from there. With the increase in the use of microservices, SaaS applications, and multi-cloud environments, developers faced an increasingly chaotic ecosystem as they built and shipped their code. The increase in the number of DevOps tools made things even messier and developers had to contend with a new issue: tool sprawl. With numerous platforms and tools, collaborating became more difficult, and even onboarding new employees became more tedious and unnecessarily complex.
These challenges have led to the rise of platform engineering, a practice that is focused on designing, building, and maintaining the tools to help developers drive efficiency. Let’s discuss what platform engineering is and how your team can get started.
The goal of platform engineering is to give ownership of the infrastructure to a dedicated platform team. Developers can access the tools and services they need more easily, without having to see the complexity of their development environment. In addition, developers can focus more on shipping features and less on navigating a complicated environment.
According to Paul Delory, VP Analyst at Gartner: “Platform engineering emerged in response to the increasing complexity of modern software architectures. Today, non-expert end users are often asked to operate an assembly of complicated arcane services.To help end users, and reduce friction for the valuable work they do, forward-thinking companies have begun to build operating platforms that sit between the end user and the backing services on which they rely.”
The most essential part of platform engineering is an internal developer portal, which acts as a single pane of glass for the entire development infrastructure. According to Gartner, “By 2025, 75% of organizations with platform teams will provide self-service developer portals to improve developer experience and accelerate product innovation.”
The developer portal allows developers to find all the tools they need in one place, and it provides teams with a highly personalized view of the services and software components they manage. An internal developer portal allows developers to create new software components (such as services, pipelines, or resources) in seconds following the best practices established by the platform engineering team.
A developer portal also allows teams to explore all of the assets in their company, including APIs, technical docs, and services, supporting greater visibility inside their company’s tooling and enabling greater collaboration. Enhanced collaboration is especially important for larger engineering teams, such as those with 500 or more engineers, which can face significant challenges with collaboration.
To get started with platform engineering, you’ll need a dedicated team. This team may start off as the DevOps team initially. The platform engineering team provides standards, templates, and best practices, along with guard rails such as security practices and permissions. The team can begin to plan the internal developer portal by performing research including talking to developers to try to understand their workflows and challenges.
A platform engineering team does not have to be large. For a team of 1,000 engineers, for example, the platform engineering organization can be as few as five people. This small team can help improve developer velocity metrics such as time to create a tenth pull request for new developers, or the number of open pull requests a developer has.
The platform engineering approach is the latest way to improve the developer experience, which ultimately leads to greater efficiency. At Harness, our mission is to enable every software engineering team in the world to deliver code reliably, efficiently and quickly to their users. Finding and retaining good developers is a priority for any company that creates software, so naturally, making sure that your developers have the best possible experience working with your technology is a top priority.
To learn more about how your organization can take DevOps to the next level with our eBook, Create an Exceptional Developer Experience. To see how the Harness platform supports the developer experience, request a demo!
Enjoyed reading this blog post or have questions or feedback?
Share your thoughts by creating a new topic in the Harness community forum.