15 hours ago
- Software design is best learned through hands-on experience, not just formal courses.
- Conway's Law explains that software architecture mirrors the social structure of the producing organization.
- Incentive structures (e.g., PhD deadlines) heavily influence the quality and nature of scientific software.
- One can attempt to change incentive structures (rare but impactful) or adapt to them.
- The rust-analyzer project shows design decisions to attract both deep contributors and weekend warriors, e.g., by isolating features and using catch_unwind for safety.
- Recommended resources: Boundaries talk by Gary Bernhardt, How to Test, ØMQ guide, Jamii's blog, Ted Kaminski blog, Software Engineering at Google, and The Philosophy of Software Design.