Is there a difference between Acceptance Criteria (Agile) and Requirements (Waterfall)? I am a little confused and trying to understand the difference a little better as it seems like they are the same thing?
I have worked in projects where everything was in the form of requirements, and other projects where everything was in the form of acceptance criteria, and on projects that have both. Can you please clarify the difference between Acceptance Criteria and Requirements?
Acceptance criteria are a list of requirements that must be fulfilled to accept a user story as Done. This means that some requirements (usually “nice to have” requirements) may fall off, and be implemented in next version.
As Microsoft Press states:
Acceptance Criteria as “Conditions that a software product must satisfy to be accepted by a user, customer or other stakeholder.” Google defines them as “Pre-established standards or requirements a product or project must meet.
Acceptance Criteria are a set of statements, each with a clear pass/fail result, that specify both functional (e.g., minimal marketable functionality) and non-functional (e.g., minimal quality) requirements applicable at the current stage of project integration. These requirements represent “conditions of satisfaction.” There is no partial acceptance: either a criterion is met or it is not.
A requirement describes a certain functionality of the application.
A requirement is a singular documented physical and functional need that a particular design, product or process must be able to perform. It is most commonly used in a formal sense in systems engineering, software engineering, or enterprise engineering. It is a statement that identifies a necessary attribute, capability, characteristic, or quality of a system for it to have value and utility to a customer, organization, internal user, or other stakeholders.
Requirements are often used in waterfall development and driven by the client as a list of expected results from the completion of a project. In it’s most basic description requirements are nothing more than a to-do list for a project.
Acceptance criteria are often used in the agile world and are normally provided by the Product Owner or as a joint effort between various stakeholders. Unlike requirements, acceptance criteria is not a to-do list. It’s a list of conditions that must be met for the agreement to be considered finished.
What is the difference between the acceptance criteria and the application requirements?
With above definitions, the difference is quite clear.
Acceptance Criteria vs Acceptance Tests might also be of interest.