If we treated our teaching the way developers treat software, we'd end up with a better product and greater job satisfaction.