Please enable JavaScript.
Coggle requires JavaScript to display documents.
Agile projects (Limitations of the waterfall (Few projects follow a purely…
Agile projects
Limitations of the waterfall
Few projects follow a purely sequential waterfall approach.
Even predictive projects expect a
certain amount of change and put mechanisms in place to handle it.
There is always some overlap
and feedback between the phases.
Large projects that use a waterfall approach are often delivered late, lack necessary features, and
fail to meet user's expectations.
Stakeholders often change their requirements during the course of a long project, and projects struggle when the software development
teams cannot respond to these changes effectively.
Waterfall projects are susceptible to this kind of failure because of the layers of dependency built upon the requirements.
Essential aspects of an agile approach to requirements
Customer involvement
Collaborating with customers on software development projects always increases the chances of project success.
On agile projects, customers are engaged continuously throughout the project.
During an initial planning iteration on some agile projects, customers work with the project team to identify and prioritize user stories that will serve as the preliminary road map for the development of the product.
Documentation detail
The close collaboration of customers with developers on agile projects generally means that requirements can be documented in less detail than on traditional projects.
Instead, BAs or other people responsible for requirements will develop the necessary
precision through conversations and documentation when it is needed
The backlog and prioritization
The product backlog on an agile project contains a list of requests for work that the team might
perform.
Product backlogs typically are composed of user stories, but some teams also populate the backlog with other requirements, business processes, and defects to be corrected.
Timing
Agile projects require fundamentally the same types of requirements activities as traditional development projects.
Someone still needs to elicit requirements from user representatives, analyze them, document requirements of various kinds at appropriate levels of detail, and validate that the requirements will achieve the business objectives for the project.
However, detailed requirements are
not documented all at once at the beginning of an agile project.
Instead, high-level requirements, typically in the form of user stories, are elicited to populate a product backlog early in a project for planning and prioritization.
Epics, user stories and features
A user story is a concise statement that articulates something a user needs and serves as a starting point for conversations to flesh out the details.
User stories were created specifically to address the needs of agile developers.
User stories are sized so as to be fully implementable in a single iteration.
Expect change
Organizations know that change will happen on projects. Even business objectives can change.
The biggest adaptation that BAs need to make when a requirement change arises on an agile project is “Okay, let’s talk about the change.”
This encourages customer collaboration to create or change user stories and prioritize each change request against everything else that’s already in the backlog.
As with all projects, agile project teams need to manage changes thoughtfully to reduce their negative impact, but they anticipate and even embrace the reality of change.
The agile development approach
Agile development methods attempt to address some limitations of the waterfall model.
Agile methods focus on iterative and incremental development, breaking the development of software into short cycles called iterations (or, in the agile method known as Scrum, “sprints”).
During each iteration, the development team adds a small set of functionality based on priorities established by the customer, tests it to make sure it works properly, and validates it with acceptance criteria established by the customer.
Ongoing customer participation enables the team to spot problems and changes in direction early, thereby guiding developers to adjust their course before they are too far down the wrong path.
Agile development refers to a set of software development methods that encourage continuous collaboration among stakeholders and rapid and frequent delivery of small increments of useful functionality.