Preferring throwaway code over design docs
Role of design docs vs. throwaway code
- Many report rarely seeing design docs that actually guide implementation; some see them mostly as performative or for management.
- Others argue design docs are crucial for capturing goals, constraints, alternatives considered, and especially “why” certain choices were made.
- Several emphasize that code and design docs serve different purposes: protos prove feasibility; docs communicate intent, trade‑offs, and scope.
Value and risks of prototyping / “throwaway” code
- Strong support for prototypes as the fastest way to:
- Discover unknown constraints, integration issues, and data problems.
- Clarify requirements with stakeholders via “show, don’t tell.”
- Learn new tools/technologies and de‑risk hard technical choices.
- Multiple people note that “throwaway” prototypes almost never get thrown away; they are frequently shipped or become the basis of production.
- Shipping prototypes can generate outsized business value quickly, but also long‑term tech debt that is hard to unwind.
Documentation, communication, and audience
- Design docs (or ADRs, technical analyses, whiteboard diagrams) are seen as:
- Easier to review than large PRs.
- More accessible to non‑developers, and better for alignment across teams.
- Helpful for onboarding, architecture understanding, and future “code archaeology.”
- Others prefer rich draft PRs / issues as living design threads, with design docs treated as historical snapshots rather than always up to date.
- Several stress that good writing is hard; many design docs are unreadable or ignored without careful editing.
Planning, estimation, and project scale
- Some argue “how long will it take?” is inherently unknowable; time‑boxed discovery/prototyping is more honest.
- Others say timelines are unavoidable in B2B, competitive, or large‑product contexts; estimates drive prioritization and contracts.
- There’s broad agreement that:
- Prototyping is better when technical unknowns dominate.
- Design docs and up‑front planning are more critical for large, cross‑team, safety‑critical, or complex systems.
Hybrid and cultural considerations
- Many advocate a hybrid: sketch a design, prototype to learn, then refine and document a stable design.
- Organizational culture often:
- Punishes “wasted” prototypes and rewards shipping, pushing prototypes into production.
- Uses design docs for performance/promotion even when they’re weak engineering tools.
- Overall consensus: the real goal is deep thinking and shared understanding; whether that’s best achieved via docs, prototypes, or both is context‑ and team‑dependent.