Optimize for learning
Modern software development encourages us to build without learning. We move fast, so there isn’t time to discuss the unknowns. Instead, we write and validate or invalidate hypotheses as we go. By reviewing what we learn, better hypotheses lead to more knowledge.