Despite the wide adoption of modern agile practices, formal engineering requirements
remain important in many organizations. Formal requirements are often defined early
in a project (i.e. before design and implementation), though they often evolve
throughout the product lifecycle. They are important because project and industries
that define formal requirements specifications tend to hold engineering teams accountable
to meeting those requirements. Formal requirements can derive from industry regulation
and compliance standards such as FAA regulations, FCC requirements, NIST cybersecurity
standards, HIPPA compliance, PCI standards, etc. or be defined by engineering teams
in collaboration with customers to capture project-specific constraints.