Platform engineering teams should focus on building end-to-end workflows rather than individual tools according Naphat Sanguansin, CTO at Prodvana. The focus on workflows will help abstract the complexities of service execution and allow application engineers to focus on their product.
Sanguansin, who previously worked at Dropbox, shared that Dropbox’s attempt to introduce Service Oriented Architecture (SOA) was not fully successful. The project focused on producing underlying infrastructure tools to enable product teams to extract code from their monolith and run it as services. While individual infrastructure tooling was successful, product teams were spending more time managing the operational overhead of these new services. Sanguansin Remarks this:
As more and more teams and departments were introduced into the critical path of customer traffic, we found it increasingly difficult to maintain a high level of reliability. This problem would only get worse as we moved away from core functionality and had product teams run services.
Lori MacvittieDistinguished Engineer at F5, call it the API tax: the time and technical debt that is paid for by running complex processes through individual building blocks such as API calls. Integrating these blocks into workflows reduces both the investment time in the initial work and also the future debt. As Macvittie explains, “It’s because using workflows instead of APIs means code that’s less complex, easier to maintain, and easier to modify. They’re more agile and less fragile.”
Sanguansin shares that Dropbox used the Framework of tasks to be performed to better understand their customers’ copywriting and shipping code needs. In this context, the client is considered to have a job to do. For a product to be desirable as a solution, that product must solve the job at hand both functionally and emotionally.
This approach aligns with how others see the approach to building a platform. In an interview with InfoQ, Adam Hansrod, Consultant at Equal Experts, stressed the importance of treating the platform as a product and not as a project. In this approach, the platform is built gradually based on feedback collected from the product teams. As Sanguansin notes, the Dropbox SOA initiative “didn’t consider customer needs and therefore didn’t provide a workflow that connected all of these building blocks.”
Sanguansin shares that The Dropbox Atlas Initiative took the approach of providing product engineers with a complete workflow rather than individual building blocks. For small standalone features, such as the Dropbox homepage, Atlas provides a workflow where product developers only need to write interfaces and implement their endpoints. The platform team that manages Atlas takes care of the underlying production clusters, including provisioning, updating, and monitoring, and is responsible for pushing code to production. Larger, more complex projects can co-exist with Atlas, as teams tend to be larger and more capable of handling operational overhead.
According to Sanguansin, this approach has been a success in adoption. The focus on an end-to-end workflow has freed consumers from the tool to focus on what matters most to them: shipping functionality. As Sanguansin notes, “Do application engineers want to be known for writing the best, most correct Terraform configurations?”
This emotional aspect aligns closely with the concept of product thought pleasure. As Cristobal Garcia GarciaSenior Staff Engineer at Amenitiz, and Chris FordHead of Technology at Thoughtworks, Remark:
You should never forget that you create products designed to delight their customers – your product development teams. Anything that prevents developers from using your platform smoothly, whether it’s a flaw in API usage or a gap in documentation, poses a threat to the successful completion of your platform. the business value of the platform.
This is echoed by Sanguansin’s learnings from his time at Dropbox: “A platform that focuses on tooling instead of an end-to-end workflow ends up replacing a job with different jobs that engineers in ‘application must accomplish instead of solving the job completely’.
By forcing product teams to assemble infrastructure tools to ship their code, they can’t use the platform smoothly without additional friction. Having the platform team focus on creating an end-to-end workflow reduces friction by eliminating complexities and allowing product teams to focus on what’s most important for them.