Learning vs Production
These are distinct modes of work.
In learning mode, you optimize for discovery. There’s an idea to test, a prototype to build, or a “hello world” of a new technology.
In production mode, you optimize for maintainability. You plan to ship production code and refine production artifacts.
In learning mode, you don’t write tests. You don’t ship learning-mode artifacts. You don’t maintain them. In production mode, tests are essential. There may be pragmatic tradeoffs - deferred refactorings, other deferred debt - but the assumption is that production deliverables will survive and be maintained through iterations.
For startups, maintaining discipline about which mode you’re in is very hard. Frequently, a learning-mode deliverable like a prototype gets “promoted” to production. This is dangerous and is akin to standing in the middle of the street. It’s easy to get run over.