Ask HN: What's your (opinionated) way to iterate FAST in production
This isn't a single current project, but a recurring question that my clients have. I work with early-stage product startups, but with serious revenues and a desire for stability.
These teams are not yet big enough to warrant bespoke platform solutions, they don't want to get lost in a sea of k8s and related complexity.
So far the most productive version I've seen is:
- Trunk based development / stacked PRs
- Cultural focus on product and iteration (and putting iteration at the heart of everything)
- Mostly server-rendered pages, monolith
- Minimal JS
- Very high test coverage, in a feature-oriented style, using a toolchain that simulates full interaction but isn't actually a browser (in the current project, this is Elixir Liveview "e2e" tests), leading to many thousands of different full-feature scenarios being covered in a reasonable test time.
- Automate dependency updates etc, address issues early
- "inbox zero" for exceptions, perf warnings etc.
- PaaS build and deployment (at the moment, this is Depot + Fly)
This results in a lot of time spent on product-oriented work (good) and little on infrastructure or overheads.
Where this isn't perfect (for my situation) is when we want to increase predictability/stability for user experience. Rapid iterations works wonderfully for many things, but if you are iterating on UI or UX things, it can be disruptive to users.
I'm looking for better ways to roll out and evaluate feature experiments, better ways to ensure important flows are visually correct (not just tests green), better ways to monitor usage after launch. All with a focus on product-minded engineers owning complete end to end delivery.
I'd love to hear from people who have strong opinions on the overall approach / strategy.
(If you have love for a particular tool or library please share that too, but it's not my primary goal to find individual new tools)
No comments yet