THE IEEE STANDARD Glossary of Software Engineering Terminology offers two definitions of requirement in the programming context. It can be something “needed by a user to solve a problem or achieve an objective” or something that “must be met or possessed by a system … to satisfy a contract, standard, specification, or other formally imposed document.” Government subscribes almost exclusively to the second definition. Requirements are the foundation of software development processes in government, and the source of many of its failures.