Read this book, and you’ll learn how to:
- Fight software rot.
- Catalyze change.
- Avoid the trap of duplicating knowledge.
- Write flexible, dynamic and adaptable code.
- Harness the power of basic tools.
- Avoid programming by coincidence.
- Bullet-proof your code with contracts, assertions and exceptions.
- Capture real requirements.
- Keep formal tools in their place.
- Test ruthlessly and effectively.
- Delight your users.
- Build teams of pragmatic programmers.
- Take responsibility for your work and career.
- Make your developments more precise with automation.