A typical software project can present more opportunities to learn from mistakes than some people get in a lifetime.