I cannot stress how much I agree with this. I’ve come to exactly the same conclusions as Zach in the last year myself. I wish I had written this post myself!
Here are my highlights:
Documentation is the best way to communicate your thoughts to yourself.
Forcing myself first to consider the API, the interface, and the end result led to a clarity that inspired less code and a more impactful project.
It improves the clarity of my code. I get more done in less lines.
But documenting your code is cool as hell. More importantly, it makes me feel more confident about my own code.
Go read the whole thing now!