On Long Term Software Development - Bert Hubert's writings
a day ago
- Limit and carefully audit dependencies; avoid thousands of small dependencies.
- Invest heavily in testing to catch regressions from shifting dependencies and enable refactoring.
- Keep code simple and boring; refactor early and often to manage complexity.
- Document not only code but also design philosophy, rationale, and architecture.
- Maintain a stable, long-term team of employees rather than relying on consultants.
- Consider open-sourcing code to enforce higher standards and gain external scrutiny.
- Implement thorough logging and telemetry from the start for debugging and performance monitoring.
- Periodically review dependencies for changes, security issues, or new capabilities.
- Avoid hype-driven technology choices; prefer proven, long-lived solutions.