- First optimize code for being shared with your future self as easily as possible. - Later, if needed, you'll find it's already optimized for sharing with others. - Keep as much code as possible in libraries. - Keep as little code as possible in applications and production systems. - Test each library's public interface. - [[Don't Test Internals]] - Make tests as short and readable as possible, so they can act as [[Write Executable Documentation|Executable Documentation]].