tldr
- Keep Commits Small: Ensure commits are small and manageable to facilitate easy reverts and debugging.
- Continuous Refactoring: Prioritize frequent, minor refactorings to simplify future changes.
- Deploy Continuously: Regularly deploy code to ensure it works in production, as working software is progress.
- Trust Frameworks: Avoid over-testing framework capabilities; focus on application-specific logic.
- Create Independent Modules: Place functions in new modules if they don’t fit existing ones, preserving code organization.
- Write Tests Early: Use tests to design APIs and guide development, but don’t be rigid about TDD.
- Avoid Duplication: Prevent repeated code by abstracting similar implementations after copying once.
- Embrace Change: Accept and adapt to evolving designs, understanding that change is intrinsic to software development.
- Manage Technical Debt: Focus on minimizing immediate blockers and plan for potential future issues.
- Prioritize Testability: Ensure that your code and design facilitate easy testing to maintain code quality and coverage.