What you will learn
Define the capabilities and challenges of Lean and Agile software development philosophies
Requirements gathering (elicitation) techniques for Lean, Agile, and Continuous Delivery software development environments
Support Lean or Agile teams by communicating business needs and wants in formats that support modern Software
Drill-down requirements, features, user stories, and functions to identify and write test scenarios in G-W-T (Given-When-Then) statements to facilitate testing
Non-Functional Requirements (NFR) threaten waterfall and Agile software development approaches alike
Description
Agile software development is a popular methodology for IT project management. It has proven to be effective, but it is typically difficult to implement within an organization that has already developed its own processes and procedures. Many of the techniques we have used in traditional (i.e., waterfall) approaches still provide value but they need to be adapted to a more lean approach.
Business analysts and product owners no longer have time to define the end solution in its full-blown glory before handing it over to the developers. Agile is by definition an iterative approach. To support it, we need to fine-tune our business analysis techniques to ensure we deliver user stories, features, and requirements that follow the lean principles. That means we need to express business needs:
-
at the last responsible moment to ensure the expressed needs are up-to-date in an everchanging business environment, and
-
with the required quality to minimize costly miscommunication errors that plague many software projects.
This overview describes methods for optimizing the process of extracting, discovering, communicating, and validating business needs for technological solutions. Readers who prefer a more detailed depiction are invited to consider our more in-depth treatment in our course “Agile Business Analysis: Getting / Writing Lean Requirements“.
Content