Why?If your application is successful youwill have to change it as newrequirements will come or newimprovements will be introduced.Refactor not because you know theabstraction but because you wantto find it.
REality 2 imp. Customers should come to you with specific, tangible, measurable, external objectives that you can than implement and come up with abstractions. The reason is because people relate very well to concrete stuff in our world then to abstract, emotional descriptions.
examples - Make my customers feel more happy, What means more happy? - The signup has to be simple. What it means simple? - I need more leads/customers to come to my shop.. How do you measure more?
Best practice The path from abstract descriptions of our customers to concrete examples and back to abstract concepts so we can change stuff easily in future.