What We Learned Reviewing Dozens of Software Development Lifecycles