In a talk at QCon London 2024 titled "Curating the Developer Experience," Andy Burgin discussed embracing Developer Experience (DevEx) as an operational philosophy at the betting company Flutter. Recognising the potential of DevEx to enhance productivity and foster collaboration and empathy between teams, Burgin explained how the container platform squad implemented and evolved their Developer Experience over several years.
Flutter's foray into DevEx dates back to 2016, when the concept was still nascent. With turnkey solutions like Amazon's EKS (Elastic Kubernetes Service) still some years away, Flutter sought to simplify its deployment process by building a bespoke platform built on technologies such as Makefiles, Terraform, and Container Linux. This initial attempt, in collaboration with their customer teams, laid the foundation for a transformative journey in DevEx.
As their DevEx initiative gained traction in 2018, the platform was considered a big success, with teams preferring it to the previous virtual machine-based infrastructure. However, upon joining the container platform squad at this time, Burgin discovered that many engineers were not particularly happy despite the platform's success. This was fundamentally due to the ways of working not scaling.
Despite early successes, they soon realised the need for a more structured approach. In 2019, the team underwent a significant restructuring, dividing into specialised squads focused on engine development, capability enhancement, and customer experience optimisation. This shift enabled the team to better align with the principles outlined in the DevOps handbook and empower its developers to thrive in a dynamic environment.
Burgin explained how the squad built an understanding of their users by analysing interactions with the chatbot used to manage the platform. They implemented feedback mechanisms such as their 'State of Container Platforms Report,' which provided invaluable insights into usability and feature preferences. Additionally, they improved customer communication channels through regular meetings and feedback sessions, leveraging their input to drive iterative enhancements.
As their DevEx initiative matured, the squad recognised the importance of establishing shared responsibility and instituting best practices collaboratively with their development teams. The team codified operational tasks using tools like Open Policy Agent (OPA) and generated comprehensive reports on capacity, usage, cost and compliance to enhance organisational transparency and accountability.
Despite feeling that it wasn't the container platform squad's responsibility to get involved in individual teams' pipelines, instead the development teams created golden paths with standard base images and Helm charts. Also, they abstracted away complicated subsystems such as their service mesh. The container platform squad expanded training programs to equip Flutter's developers with essential skills for modern app development.
By 2022-23, the container platform squad had become part of a larger organisation, and the team is now exploring ways to extend DevEx principles beyond containerised environments. They envision a future where their organisational culture embodies the ethos of DevEx in all facets of their operations. Seeing 20% year-on-year cluster growth combined with mature development teams that didn't need as much help and significant reductions in helpdesk requests, they began scaling back DevEx operations, with the bulk of the work completed successfully.
"You have to actually want to support your customers and make this happen."
Burgin closed the talk by discussing some DevEx anti-patterns, such as:
- Teams often fall into the trap of mimicking successful strategies without fully understanding or committing to them.
- Attempts to implement Developer Experience (DevEx) as an afterthought or shortcut often backfire, requiring genuine investment and dedication.
- Quick surveys can lack depth and efficacy; thorough research methods are essential.
- Regular, meaningful engagement and feedback sessions are vital for success. Screen recordings masquerading as training quickly become outdated, and in-person training is more effective.
- Understanding the disconnect between customer needs and desires is crucial, and treating customers as nuisances undermines DevEx efforts.
"Developer Experience creates Experienced Developers (and Platform Engineers)"
The team learned that genuine engagement, iterative improvement, and adaptability are essential to success in the Developer Experience world. Creating feedback loops and implementing IDPs don't solve broken cultures, and it's essential to set targets and understand when the DevEx job is done.
The recording of Burgin's QCon London talk will be made available on InfoQ over the coming months.
Access recorded QCon London talks with a Video-Only Pass.