Chapter 8. Rearchitecting Platforms

If you don’t end up regretting your early technology decisions, you probably overengineered.

Randy Schoup

In Chapter 5, we described a process for delivering new platforms: start small, partner with a few select customers, and make sure you’re building something that has broad utility for your customer base through incremental delivery. In Chapter 7, we outlined our practices for roadmap planning beyond your product roadmap, helping you balance investments in KTLO work and new features with system improvements to enhance operational efficiency, scalability, security, and more. This all sounds great: you start small, gain momentum, and keep things moving smoothly by regular investment in system maintenance as well as features. What could go wrong?

Even when following this process perfectly, you can still hit a wall. As the system load increases, it begins to experience more operational issues, despite your incremental system investments. The KTLO work grows as the load increases, which in turn lowers the team’s capacity to deliver either system improvements or new features. Eventually, the best software developers leave—not because of burnout, but because of frustration over the lack of progress. Crucial infrastructure becomes frozen in time, remaining critical for the business but no longer able to support new capabilities.

Why don’t incremental system improvements prevent this situation? The issue is that while these improvements have the ...

Get Platform Engineering now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.