Overcoming Cognitive Friction to Engineer Better Software