There is a question that I get asked quite frequently: “Which is better, Agile or Waterfall?” Although a question without many words, it’s a loaded question. “Well, that depends…” is how I start off.
For today, let’s focus on the differences in requirements for Agile and Waterfall. According to Wikipedia, Agile is “a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change” (source: Wikipedia.org). The requirements in Agile are gathered and changed. They are not gathered up-front and then “locked,” like they are in Waterfall development.
Waterfall is “a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance” (source: Wikipedia.org). If you’re familiar with Waterfall, you’re likely familiar with the “system shall” type of requirements statements.
With Agile, requirements are short and can be user stories. You still start talking about requirements up front, but they get more specific as you have more discussions and as the iterations of the project continue. Agile values individuals and interactions over documentation. The business is able to communicate that either they or a customer needs the ability to do something, and hopefully they are also able to define the reason for which this ability is needed.
Requirements aren’t “locked” in Agile, instead they are ever-changing, which can be more difficult and stressful because a requirement that was a requirement last week may not be a requirement this week. The Agile methodology is not for a faint hearted developer! According to Forrester Research, about 38% of developers have adopted Agile and potentially 69% of companies have adopted some form of Agile, so the average BA needs to be aware of what it is and how it’s different from Waterfall.
With Waterfall, requirements are gathered up-front and ‘locked’ in the analysis phase of the project. They may be changed only through formal change requests.
Requirements are different within the different methodologies. Hopefully this will get you started on the path to discover which methodology is right for your team.