that literary authors write good prose. Create a quick outline and keep editing until it reads well. For code stored in source control this means: - separate concerns into their own commits: - service tasks like fix whitespace, style compliance, etc - dependency management - adding missing tests - refactoring, probably each step in it's own commit - bug fixes - features - remove unused code - remove unused dependencies - Tell a story with your code (order is everything!) => rewrite history