Here's how I tackle a new feature: First,
#MakeItWork - it's hack time, no docs yet. Next,
#MakeItFast - optimize and remove inefficiencies. Finally,
#MakeItGood - refactor for longevity and readability. I document new patterns and flows only when they emerge from this process.