How You Can Become A Better Platform Engineer
Platform engineering has become an increasingly popular topic in the software development industry. But getting it right might just be harder than you may think at first. In this blog, I want to share with you the most important thing I think platform engineers need to keep in mind in order to be successful in their roles - treating your developers as customers. This approach is pivotal in bridging the gap between traditional development and modern development platform engineering.
Historically, developers have been responsible for writing code and focusing solely on their applications. Once the code was written, it was handed over to operations teams for deployment. This separation of concerns made sense in a world where software was more monolithic and less complex.
However, with the advent of microservices, containers, and DevOps practices, developers started taking on additional responsibilities. They were expected to manage application builds, infrastructure, and more. This shift led to a blurred line between development and operations, often resulting in cognitive overload for developers. They were no longer solely focused on writing code, but also had to worry about infrastructure and deployment processes.
As developers embraced the new paradigm, they found themselves navigating a complex landscape of tools and technologies. They had to master containerization tools like Docker, orchestration tools like Kubernetes, and infrastructure as code tools like Terraform. This added an extra layer of complexity to their daily tasks, requiring developers to acquire new skills and stay updated with the latest trends in the rapidly evolving DevOps ecosystem.
As a platform engineer, understanding this historical context is crucial. It helps you appreciate the challenges faced by developers and the need for a more streamlined approach.
The rise of platform engineering addresses these challenges. As a platform engineer, your role is to act as an architect of shared infrastructure, tooling, and platforms for developers. By standardizing processes and providing consumable services, you empower developers to focus on what they do best: writing code and delivering value.
In essence, a platform engineer needs to act as an enabler within the organization. By creating and managing a suite of consumable services that encompass everything developers require, platform teams dramatically reduce the cognitive load on developers. Developers can now access a standardized set of services for tasks like setting up dev and test environments, artifact building, etc., allowing them to concentrate primarily on coding.
This approach not only streamlines the development process but also benefits platform engineers by establishing standardization and governance across these services. The result is a more focused and efficient work environment for both developers and platform engineers which fosters innovation and fast shipping.
Effective platform engineering begins with a deep understanding of the challenges faced by developers. Just as businesses conduct market research to identify customer needs and pain points, platform engineers must invest time and effort in understanding the daily obstacles developers encounter. Take the time to survey developers within your organization, familiarize yourself with their workflows, and see if they're able to focus on their core job of application development or not. Try to minimize or automate away any non-value-adding activities that distract them from their work and reduce their overall productivity.
The cornerstone of excelling in platform engineering lies in adopting this customer-centric approach towards developers. Treating developers as your customers is all about active listening and understanding. By prioritizing their needs and experiences, you not only enhance your effectiveness as a platform engineer but also build a strong partnership with your developer colleagues. This alignment of interests can yield significant positive outcomes in terms of productivity, satisfaction, and the overall success of software teams within your organization.
Getting platform engineering right isn't as easy as you might have thought. But with the right mindset, you can get significant improvements in developer experience. Read about one of our customers, monday.com, who saw a 50% boost in developer productivity by focusing on the right problems to solve!
I hope this blog helped you provide a good starting point in your journey of becoming a better platform engineer. But it's crucial to understand that this philosophy is not an isolated concept. Rather, it forms the foundation upon which the core tenets of platform engineering are built. The principles that guide exceptional platform engineering are, in essence, an extension and deepening of this customer-focused mindset.
In our next blog, I will talk about these core tenets and how understanding and prioritizing the needs of developers lead to the adoption of them. These practices include creating golden paths, self-serviced environments, and some other things which we will dive into next time :)