number 5. Even working in solitude, you need to communicate with your future self. Writing good comments, naming things accurately, automating tests, and following good practices will help you in the future when you come back to code that you want to extend. If you cut corners or over-optimize without documenting what you did, you can misunderstand code or introduce unforeseen bugs by eliminating needed ordering, references, updates, etc. that is not apparent directly in the lines of code. Examples of this could include code involving concurrency, structured data stored as byte arrays, and booleans that have slightly different meanings than implied by field names or getters.
number 5. Even working in solitude, you need to communicate with your future self. Writing good comments, naming things accurately, automating tests, and following good practices will help you in the future when you come back to code that you want to extend. If you cut corners or over-optimize without documenting what you did, you can misunderstand code or introduce unforeseen bugs by eliminating needed ordering, references, updates, etc. that is not apparent directly in the lines of code. Examples of this could include code involving concurrency, structured data stored as byte arrays, and booleans that have slightly different meanings than implied by field names or getters.