Every large software project is unique—each with its own complex array of challenges. When projects get into trouble, however, they often exhibit similar patterns and succumb to risks that could have been anticipated and prevented—or detected sooner and managed better. Common responses to the problems—blaming, deferring action, or outright denial—only make things worse.