{
  "version": "https://jsonfeed.org/version/1",
  "title": "platform engineering on Coté",
  "icon": "https://avatars.micro.blog/avatars/2025/42/8457.jpg",
  "home_page_url": "https://cote.io/",
  "feed_url": "https://cote.io/feed.json",
  "items": [
      {
        "id": "http://cote.micro.blog/2026/04/21/let-them-tinker-hacking-developer.html",
        "title": "Let them tinker - hacking developer resistance to sound enterprise architecture and platforms",
        "content_html": "<p><span data-author=\"cote\">Developers need to tinker or they&rsquo;ll reject your platform. That is a lesson that people who build tools and platforms for developers learn. The more ambitious your platform is in scale, the more tinker resistance you encounter - you want it to be the platform that 10,000&rsquo;s of developers at a bank use, for example.</span></p>\n<p><span data-author=\"cote\">What if you could give the tinkers what they wanted and also put a standardized, enterprise-wide platform in place? The enterprise architects (EAs) of the world will chortle at that notion as they slide back into their whiteboard palaces muttering &ldquo;good luck storming the castle&hellip;&rdquo; But, maybe there&rsquo;s hope.</span></p>\n<h2 id=\"theyre-fine-with-opinionated-platforms-so-long-as-the-opinions-are-theirs\">They&rsquo;re fine with opinionated platforms, so long as the opinions are theirs</h2>\n<blockquote>\n<p>Platform teams typically approach their work from a perspective of standardi[z]ation and reliability. They&rsquo;ve dealt with the fall-out from inconsistent deployments, security incidents, and audit failures. Their natural response is to reduce variability. A single, perfect, golden path for everyone to follow.</p>\n<p>Developers, meanwhile, are optimi[z]ing for something completely different. They&rsquo;re focused on solving specific problems in the fastest way possible. Creative autonomy is core. And, any mandate to work in a particular way becomes the problem, separate from the technical merits of what you&rsquo;ve built.</p>\n<p>Individual teams making rational decisions create organi[z]ational fragmentation.\n&ndash; <a href=\"https://www.chieftherapyofficer.co.uk/p/golden-paths-one-size-does-not-fit\">Bryan Ross, 2025</a>.</p>\n</blockquote>\n<p><span data-author=\"cote\">This tinkerer-resistance comes through when you hear objections to platform adoption like &ldquo;we need to customize this,&rdquo; or, &ldquo;this platform is too opinionated.&rdquo; My absurd rendering of it: &ldquo;we could develop that in a weekend.&rdquo; (And vibe coding will add weight to that claim.)</span></p>\n<p><span data-author=\"cote\">Platform people have a fair counter-question: how different can the needs of a development team at a bank really be from the tens of thousands of other development teams at other banks? Should developers (<a href=\"https://cote.io/diy/\">or any of us</a>!) be building a platform on a platform, or, like, writing applications that customers and employees use?</span></p>\n<p><span data-author=\"cote\">With a platform, every customization is a long-term ownership commitment. Today&rsquo;s must-have customization becomes tomorrow&rsquo;s legacy code - the stuff sitting in the modernization queue, <a href=\"https://cote.io/legacytrap/\">slowing down feature work</a>. The customizations were thought to be useful, and certainly necessary, when they shipped. And now, people are looking around asking &ldquo;why do we have this?&quot;</span></p>\n<p><span data-author=\"cote\">There&rsquo;s numerous reasons why building your own platform is a bad idea - <a href=\"https://cote.io/diy/\">at least seven</a>. Most of them revolve around the lack of ongoing commitment people have to taking on <a href=\"https://thenewstack.io/why-up-to-70-of-platform-engineering-teams-fail-to-deliver-impact/\">the responsibility of a new <em>product</em></a>, that bundle of customized stuff that resulted in their DIY platform. There&rsquo;s also just totally under-estimating the scope of a platform.</span></p>\n<blockquote>\n<p>We&rsquo;re rightly proud of the work that&rsquo;s been done on GOV.UK PaaS since its launch in 2015. The team who built and run the service are passionate, committed and quite brilliant. It was the right product at that time. Our web hosting service has enabled more than 60 departments, agencies and local authorities to support 172 digital services.</p>\n<p>It has enjoyed uptime of 99.95%, and suffered only one major incident in its 7 years. All this while tenants deployed services more than 122 times a day, made up of 3,200 applications.</p>\n</blockquote>\n<p><span data-author=\"cote\">Sometimes, you might even have a platform that everyone acknowledges works well, keeps the business running, and that is beloved by developers. <a href=\"https://www.syntasso.io/post/what-we-got-right-with-cloud-foundry\">A platform that just works and achieves your enterprise strategy and goals</a>.</span></p>\n<p><span data-author=\"cote\">Tinker don&rsquo;t care.</span></p>\n<p><span data-author=\"cote\">One could fall down <a href=\"https://talks.cote.io/the-eternal-recurrence-of-devops/\">a cynical hole here</a>.</span></p>\n<p><span data-author=\"cote\">And yet: the developer is the customer&hellip;</span></p>\n<h2 id=\"let-the-tinkers-tinker\">Let the tinkers tinker</h2>\n<p><span data-author=\"cote\">I like the (unintentional?) experiment Syntasso has going on for this problem. Their approach is not to come with a bundle of pre-built, unchangeable, <em>opinionated</em> platform. Instead they have something a developer will find familiar: an abstraction layer, an API, a schema, a standard (whatever we&rsquo;re calling things like where you use yaml, json, whatever, to describe the capabilities some technology has, its data model, and also execute stuff - you know, an &ldquo;API&rdquo; us olds would say)&hellip;for platforms.</span></p>\n<p><span data-author=\"cote\">If you, the tinker, just so happened to want the stock platform provided, that would be cool. But, sure, you can customize it too! The tinkers often want their own layer, yes, <em>custom fit</em> to their unescapable needs that no one else has.</span></p>\n<p><span data-author=\"cote\">A tinker loves to put layers on layers, like a giant rainbow cake. There&rsquo;s a similar pervasive pattern people do with CI/CD pipelines and even things like the Spring Framework: they layer their own layer on-top of those layers.</span></p>\n<figure data-author=\"AI\">\n  <a href=\"https://cote.io/2026/03/26/rainbow-cake.html\"><img src=\"https://cdn.uploads.micro.blog/3446/2026/rainbow-cake.jpg\" alt=\"a typical tinker platform\"></a>\n  <figcaption>A delicious platform</figcaption>\n</figure>\n<p><span data-author=\"cote\">Long-term the layers on layers on layers (layers^n+1?) strategy is terrible. Now you need to maintain your layer <em>in addition</em> to the off-the-shelf layer. For example, a new version of the Spring Framework comes out with fancy new AI things. You could just download it and use it - even getting full enterprise support.</span></p>\n<p><span data-author=\"cote\">Sadly, with a layers^n+1 approach, that doesn&rsquo;t work. Now you need to update your layer on the layer (and Spring is, you know, really a layer over multiple different things, many of them also layers, trying to unify all those different services into one, unified, easier to use layer&hellip;which you then add your layer on) - and that tends to get deferred in favor of the actual applications you&rsquo;re writing to run the business.</span></p>\n<aside data-author=\"cote\">\n  <blockquote>Mindful Tinker: \"We should update our layer-layer so that we can upgrade Kubernetes/Spring/etc.\"</blockquote>\n  <blockquote>CIO: \"Oh yeah? How about we make sure to comply with European banking law so we can stay in business instead...?\"</blockquote>\n</aside>\n<p><span data-author=\"cote\">Anyhow. Why not let the tinkers tinker?</span></p>\n<p><span data-author=\"cote\">First, you need to <a href=\"https://www.syntasso.io/post/how-the-access-group-scaled-ai-driven-development-with-platform-engineering\">set expectations ahead of time that, now, the tinkers own day two</a>:</span></p>\n<blockquote>\n<p>That&rsquo;s the shift that matters. When you provide the right level of abstraction, you don&rsquo;t just make systems easier to use; you make them easier to own. Engineers can take responsibility for the parts of the platform that matter to them, evolve those capabilities independently, and own their flow of value.</p>\n</blockquote>\n<p><span data-author=\"cote\">The DevOps world was all about this shifting-left. DevSecOps was all over shifting-left. You can offer to <a href=\"https://cloud.google.com/blog/products/application-development/richard-seroter-on-shifting-down-vs-shifting-left\">shift-down</a>, but the tinker always wants to shift-left.</span></p>\n<aside>\n  <blockquote>Rather than telling devs (and their managers!) to shift everything left, we need to encourage them to 'shift down' by taking full advantage of the technology available to them, and push more workloads down onto the platforms they're already using. <a href=\"https://cloud.google.com/blog/products/application-development/richard-seroter-on-shifting-down-vs-shifting-left\">Richard \"Shift Down\" Seroter</a>, 2023.</blockquote>\n</aside>\n<h2 id=\"christmas-puppy-as-a-platform\">Christmas Puppy as a Platform</h2>\n<blockquote>\n<p>You&rsquo;re not just the owner of a single puppy on Christmas morning. You have a mega litter. These puppies are running rampant around your entire organization and they&rsquo;re completely unsupervised. You need to track them down each time you want to introduce a new feature, each time you need to patch a CVE. So, as a platform engineer, you don&rsquo;t get to be high leverage as an engineer. You&rsquo;re a full-time puppy parent, but you don&rsquo;t even get the Insta photos. You don&rsquo;t get the snuggles. <a href=\"https://www.youtube.com/watch?v=gmAfYEPBYr0&amp;t=343s\"><em>Abby Bangser, KubeCon NA 2025.</em></a></p>\n</blockquote>\n<p><span data-author=\"cote\">Inevitably, the platform team will inherit this tinkering despite any social contracts established by a long-lost Confluence page years ago. But, maybe if the platform-building system you have starts off as tinker-friendly, that future instance of the &ldquo;not my mistake, but now my problem&rdquo; ops anti-pattern will be less painful.</span></p>\n<p><span data-author=\"cote\">I like watching what Syntasso and Kratix are doing here (and <a href=\"https://cote.io/2026/03/26/kubernetes-is-the-bottleneck-and.html\">elsewhere</a>). I don&rsquo;t think it&rsquo;s intentional <em>per se</em>. They&rsquo;re genuine in their efforts to build a new type of cloud native application platform. But there&rsquo;s an interesting natural experiment going on: what if you build a platform to be both tinker-friendly and enterprise-wide?</span></p>\n<p><span data-author=\"cote\">PaaS gets a bad rap because it&rsquo;s supposedly anti-tinker. In truth, <a href=\"https://www.infoq.com/presentations/cloud-foundry-bosh/\">most every platform can be tinker friendly</a>. It&rsquo;s just a matter of how they&rsquo;re positioned and perceived over time, and if the means of customization match the tinker&rsquo;s aesthetics.</span></p>\n<h2 id=\"harness-the-tinker-kingmaking\">Harness the tinker kingmaking</h2>\n<p><span data-author=\"cote\">Here&rsquo;s other examples of being tinker-friendly.</span></p>\n<p><span data-author=\"cote\">The entire DevOps toolchain was tinker-friendly from the beginning, and that helped that community harness a lot of <a href=\"http://thenewkingmakers.com\">kingmaking energy</a>.</span></p>\n<p><span data-author=\"cote\">Kubernetes subsisted on the tinkers for many years, despite <a href=\"https://www.youtube.com/watch?v=2Qhj5u2bct0&amp;t=494s\">some comments</a> to the contrary later in that community&rsquo;s history and <a href=\"https://www.linkedin.com/posts/kelsey-hightower-849b342b1_do-not-blindly-start-with-kubernetes-seriously-activity-7381674238522384384-VVJQ/\">continual pleas to look elsewhere if you wanted to use Kubernetes for a platform</a>.</span></p>\n<p><span data-author=\"cote\">What I like about the Syntasso/Kratix experiment in platforms is the potential for sociotechnical hacking. Is it possible to give the tinkers what they want and still build an application platform that achieves all the centralization benefits in a large enterprise? &ldquo;Technology is easy, people are hard&rdquo;&hellip;&ldquo;containers won&rsquo;t fix your broken culture,&rdquo; etc. So, maybe this is some good culture-hacking.</span></p>\n<p><span data-author=\"cote\">Eagerly awaiting results!</span></p>\n<p><span data-author=\"cote\">P.S.: This is just in time too because, you know, now we have an entirely new platform that the tinkers are salivating at <em>right now</em>: <a href=\"https://cote.io/2026/04/04/platform-engineering-is-what-makes.html\">the enterprise AI platform</a>. You can feel <a href=\"https://blog.cloudflare.com/internal-ai-engineering-stack/\">the tinker&rsquo;s fingers start to twitch</a>. &ldquo;You know, we don&rsquo;t need to use AI PLATFORM VENDOR X, Y, or even, Z&hellip;<a href=\"https://blogs.vmware.com/tanzu/why-your-diy-kubernetes-stack-wont-survive-the-era-of-agentic-ai/\">I could probably implement that in a weekend</a>&hellip;&quot;</span></p>\n<!--\nAnnotations: 0,7500 SHA-256 0000000000000000000000\n@Coté <cote.io>: 0,7200\n&AI <Diane>: 7200,300\n~4% AI-written\n-->\n",
        "date_published": "2026-04-21T10:51:04+02:00",
        "url": "https://cote.io/2026/04/21/let-them-tinker-hacking-developer.html",
        "tags": ["tech","platform engineering"]
      }
  ]
}
