I find this findings strange: usually I never undo to partial changes (and never commit them either). Usually when I’m doing something, I move to point C from point A, usually by writing the code to get me to B, with B kind of working. Then I’ll get to C, commit and make it look better.
We are slowly rolling Hypothesis (actually expect an open source library soon, there will be some examples of use) where we think it will have the most impact when writing new code. It’s not the same as QuickCheck, or ScalaCheck’s Gen but more tests is always good.
[…] after achieving proficiency in a field, tight feedback loops are useless. That’s because initially, the learning environment is gentle. There are many things of interest in this post, but this is what has resonated most. Most gentle environments are only gentle up to a point: when you reach a high enough level you drop the training wheels and lose the feedback loops that helped you.
For example, a junior individual contributor has tight feedback loops in code review, delivering regular code and tests passing. A senior software architect has longer, more noisy (will depend on the rest of the team and require a wider range of abilities) feedback loops in the designs that come to life.