tell me how the software should *behave*, not how the behavior was *implemented*
ie. describe the changes in this commit from the behavioral perspective rather than implementation details
What is the project behavior, in this snapshot?
What did the programmers, in order to produce this snapshot?
which also aligns well with the 'micro goal' or incremental deliverables approaches of most agile methodologies
helps to focus a goal to be reached
Without preemptive comments, I often went on coding, always asking myself: “Should I commit now? Have I reached a stable state which I could consider a good commit?“