I'm not sure how this is different than TDD, but at the end it hits on a key point, something I've called "ROAC" (Runs On Any Computer):
"there was often a way to run the whole system, or a facsimile, on your laptop with minimal friction"
Any time the code you're developing can't be run without some special magic computer (that you don't have right now), special magic database (that isn't available right now), special magic workload (production load, yeah...), I predict the outcome is going to be crappy one way or another.
I went on read more articles that were linked. Another idea was having a cluster that is very close to production to which teams can deploy PRs that need to be tested (if they are related).
We have decided not to use anything that can't run any any computer. It's really possible to have large scale systems ROAC, if you pay attention to avoid proprietary cloud tech lock-in.
Anything interesting and server-based usually depends on an entire complex data pipeline (one system for this if you’re lucky) and a dozen or more external systems with no great way to mock them that won’t itself be out-of-sync with reality often, anyway.
Comments
I'm not sure how this is different than TDD, but at the end it hits on a key point, something I've called "ROAC" (Runs On Any Computer):
"there was often a way to run the whole system, or a facsimile, on your laptop with minimal friction"
Any time the code you're developing can't be run without some special magic computer (that you don't have right now), special magic database (that isn't available right now), special magic workload (production load, yeah...), I predict the outcome is going to be crappy one way or another.
Amen. Seldom for real reason, this is becoming increasingly rare compared to projects of similar size/characteristics 5-10 years ago.
I miss the days when "run all the things" was F5, where the steps leading up to that point surmounted to git clone and a pair of RSA keys.
My (rather cynical) take on all these articles proselytising SDLC, Agile, Architecture, Testing, Patterns, Idioms and Programming languages is ...
There are too many people navel gazing, and finding traces of ancient astronauts in the lint that they pick up.
What do you mean by this? They are finding meaning in nothing?
Yes, basically. Thin on evidence, heavy on speculation and entertaining enough to be spread from person to person.
I went on read more articles that were linked. Another idea was having a cluster that is very close to production to which teams can deploy PRs that need to be tested (if they are related).
- https://thenewstack.io/improve-developer-velocity-by-decentr...
It’s different in that this one oozes of “thought leadership”.
Every shop that's running a dozen microservices on a Kubernetes cluster, is running something that can't be run on your computer.
ROAC is a pipe dream (I used to believe in it also)
most large cloud/distributed systems cannot be realistically reproduced in your compose/k3s/whatever environment
a large cloud/distributed system must be tested on something similar in scale
at best, ROAC lets you do some development remotely/offline, but is not a reliable model of reality
We have decided not to use anything that can't run any any computer. It's really possible to have large scale systems ROAC, if you pay attention to avoid proprietary cloud tech lock-in.
(ROAC in our case means Runs on any Kubernetes)
Anything interesting and server-based usually depends on an entire complex data pipeline (one system for this if you’re lucky) and a dozen or more external systems with no great way to mock them that won’t itself be out-of-sync with reality often, anyway.
I once heard Facebook uses production database to develop and test new feature because anything else was unfeasable. Even a smaller copy of it.
I'd love to have a confirmation from someone at Meta.
edit: found an amazing discussion about their release process here: https://news.ycombinator.com/item?id=30899362