Software projects often fail because people begin programming before fully understanding the problem or planning key activities. Projects are temporary endeavors with a defined beginning and end that create something new and unique, while operations are ongoing and repetitive processes that sustain existing systems and services. Other factors that distinguish projects from operations include levels of uncertainty versus predictability, disruption of the status quo, and amount of risk involved.