Agile Development — Why requirements matter

Agile Development — Why requirements matter

Agile Development — Why requirements matter

Agile Development — Why requirements matter

Executive summary

Executive summary

Executive summary

Executive summary

This paper explores the ways requirements management brings value to agile development.

This paper explores the ways requirements management brings value to agile development.

1 min read
01

Agile development and its benefits

Agile development and its benefits

Agile development and its benefits

Agile development and its benefits

Learn why agile development appeals to both engineering and software development teams.

Learn why agile development appeals to both engineering and software development teams.

1 min read
02

Why are requirements important?

Why are requirements important?

Why are requirements important?

Why are requirements important?

Avoid failure by improving your team’s requirements managements practices.

Avoid failure by improving your team’s requirements managements practices.

1 min video
03

Characteristics of agile requirements management

Characteristics of agile requirements management

Characteristics of agile requirements management

Characteristics of agile requirements management

Build confidence among engineers, developers and customers with traceability and insight to incremental progress.

Build confidence among engineers, developers and customers with traceability and insight to incremental progress.

2 min read
04

When should you write requirements and create traceability?

When should you write requirements and create traceability?

When should you write requirements and create traceability?

When should you write requirements and create traceability?

Eliminate waste by capturing requirement and traceability information as design artifacts are created.

Eliminate waste by capturing requirement and traceability information as design artifacts are created.

2 min read
05

IBM solutions for agile requirements management

IBM solutions for agile requirements management

IBM solutions for agile requirements management

IBM solutions for agile requirements management

Understand the five key benefits for agile development provided by the IBM Rational DOORS Family.

Understand the five key benefits for agile development provided by the IBM Rational DOORS Family.

1 min read
06

Conclusion

Conclusion

Conclusion

Conclusion

Agile requirements management can improve productivity by reducing waste and improving responsiveness to change.

Agile requirements management can improve productivity by reducing waste and improving responsiveness to change.

1 min read
07

Agile Development — Why requirements matter

01

5 min read

Executive summary

The clear benefits of agile development—better collaboration, incremental delivery, early error detection and the elimination of unnecessary work—have made it the default approach for many teams. Agile methods are also being adopted by systems engineering teams to deliver the same benefits.

Some developers have questioned whether requirements fall into the category of unnecessary work, and can be cut down or even completely eliminated. Meanwhile, teams developing complex products, systems and regulated IT continue to have requirements-driven legacy processes.

So how does requirements management fit in an agile world? This paper argues that requirements management can bring significant value to agile development in regulated IT and complex product development projects, and sets out the characteristics of an effective requirements management approach in an agile environment.

This paper explores the ways requirements management brings value to agile development.

This paper explores the ways requirements management brings value to agile development.

But why stop there? To get a full, accurate picture of your data without blind spots, you should deploy predictive models that score your data against intended outcomes. And, use decision optimization that tells you, at the point of impact, just what to do.

02

3 min read

Agile development and its benefits

The 2001 Agile Manifesto proposes four basic tenets:

  1. Individuals and interactions are preferred over tools and processes
  2. Working software (or system components) are preferred over comprehensive documentation
  3. Customer collaboration is preferred over contract negotiation
  4. Responding to change is preferred over following a plan

Agile approaches have a number of characteristics that make them attractive to both software development teams and systems engineering teams:

  • Ongoing collaboration with customers and openness to change: project outcomes can be more closely aligned to customer needs.
  • Incremental delivery of working parts of the system: greater certainty of delivery.
  • Early detection of errors and defects, and rapid customer feedback on delivered functionality: lower late-stage risk to projects and lower chance of needing to dedicate time and money to unscheduled rework.
  • Elimination of unnecessary work: agile projects can achieve sustainably high productivity.

At a business level, agile can help improve stakeholder satisfaction by delivering higher quality products faster, at reduced cost. At a project management level, agile can improve predictability of delivery and responsiveness to necessary change. And at a technical level, agile can help developers and engineers focus on innovation and productive development instead of rework and late-phase bug-fixing.

Learn why agile development appeals to both engineering and software development teams.

Learn why agile development appeals to both engineering and software development teams.

03

5 min video

Why are requirements important?

Developers looking to eliminate unnecessary work may be tempted to eliminate or heavily reduce requirements management. First, it is vital to determine the value—and therefore necessity—of requirements in agile development. A key function of requirements management is to establish a common understanding between the customer and the project team. This understanding forms the basis for planning and managing both the project and the final product.

Poor requirements management is a leading cause of project failure, and there is little evidence to suggest that things are different in an agile world. Agile emphasizes improving collaboration and understanding between the project team and the customer, which implies that requirements are actually more, not less, important in an agile world.

In general terms, requirements can be defined as any information relating to the business requirements for a new system or application, including textual requirements, use cases, diagrams and feature descriptions. In the agile context, requirements will include user stories and epics. All these entities can be managed as requirements, and will offer greater value and usability if they can be traced to related project artifacts.

Critically, requirements can be used to capture detailed information that may otherwise be overlooked in agile development. Agile processes such as Scrum typically use “backlogs” to manage the outstanding work, both within the project as a whole and within individual increments of work or “sprints”.

Avoid failure by improving your team’s requirements managements practices.

Avoid failure by improving your team’s requirements managements practices.

The agile backlog does not normally contain enough information to specify a complete solution. Information such as non-functional requirements, feature descriptions, stakeholder meeting notes and architectural decisions, which are usually absent in the backlog, can be captured as requirements.

Just a placeholder image

04

5 min read

Characteristics of agile requirements management

The benefits of implementing agile requirements management must outweigh the costs. The key benefits come from the way in which the structure of the requirements and traceability information facilitates reasoning about the design when changes need to be made. All projects generate some level of requirements and traceability information, so the costs are really those incrementally arising from structuring and managing the information for maximum benefit to the project.

Agile methods stress better collaboration as a way to give engineers and developers the confidence that they are building what the customer needs, customers the confidence that they are seeing regular incremental progress, and project managers the confidence that the project is less likely to be derailed by unforeseen problems. As requirements are the basis of understanding and communicating customer needs, the requirements management approach must itself be collaborative. That means making up-to-date requirements available to all stakeholders, and setting up processes to ensure that stakeholder inputs are captured.

Traditional waterfall development is often not strictly linear. Rather, it may jump between requirements, design, architecture, and test definition. In fact, it can look a lot like agile. The key difference is that the output artifacts are presented as if they were developed in order. So for both agile and waterfall projects, a mechanism is needed for managing the relationships between artifacts regardless of their sequence of creation; for both development approaches, requirements management and traceability play a key role.

Agile methods can improve productivity by focusing on delivering working increments of functionality. For complex products and systems, and regulated IT, increments must generally include deliverables beyond the working system itself, such as evidence of compliance with standards, user documentation and support documentation. Much of the information for these deliverables is derived from project artifacts and must be reliably maintained as changes occur.

Requirements management and traceability tools are key capabilities for managing this information and, in conjunction with reporting tools, enable the supplementary deliverables to be automatically generated—eliminating a significant overhead. It is important to document (and connect with traceability) the reasoning that underlies design decisions. This information is critical in evaluating the feasibility of changes. It also benefits later development and maintenance activities by ensuring that engineers can understand why the system was built the way it is. In an agile project, where change may be actively encouraged, this documentation stage becomes even more important.

Discovering errors early in agile development depends on adopting test-driven approaches. This means that test cases must be defined early, as each feature is developed. Here, it is vital to enable traceability between requirements, design elements and test cases, in order to ensure that the right tests are executed, test coverage is known, and the impact of test failures on delivered functionality is understood.

Improved responsiveness to change is a key driver for moving to agile processes. Agile shifts the focus from up-front planning to the delivery of working parts of the system and gaining rapid feedback on those deliverables. This shift of focus enables change to be more easily accommodated, as developers are not focused on a single, monolithic development activity. Also, because the customer feedback loop is shorter, less effort is expended on implementing change before the value of that work is known. However, accommodating change is still difficult, as there are many dependencies to consider.

Build confidence among engineers, developers and customers with traceability and insight to incremental progress.

Build confidence among engineers, developers and customers with traceability and insight to incremental progress.

Requirements management plays a vital role in change management, enabling changed requirements to be captured and compared to previous requirements, thereby providing an unambiguous definition of what has changed. Traceability provides the information structure to analyze the impact of change both in terms of system design and work impacts across the development lifecycle. Agile’s focus on responding to change means that requirements management and traceability are more—not less—important.

05

5 min read

When should you write requirements and create traceability?

Agile focuses on eliminating waste. A key element of waste in product development is work that is done and then thrown away because changes occur. Creating detailed requirements too early in a project—for example, with the “big requirements upfront” approach typical of conventional waterfall development—invites this kind of waste. Instead, requirements in an agile project should be just enough to specify a high-level outline of the project at the outset, with the details being added along the way.

There is still a need for initial requirements capture and analysis to define the project vision and scope. Beyond this, detailed requirements and traceability can be created to help understand and decompose items on the backlog, and to capture decisions as they are made.

Agile sees change as an opportunity to better align projects with customer needs rather than an impediment to delivery. Requirements are the means of formally capturing customer needs and communicating them unambiguously to the project team. Therefore, updates to requirements and traceability should be a fundamental part of agreeing and implementing changes.

It is critical that requirement and traceability information can be captured at the same time as design artifacts are created. The essence of agile is to do the right thing at the right time; attempting to create traceability after the fact is not only inefficient but also error-prone.

Eliminate waste by capturing requirement and traceability information as design artifacts are created.

Eliminate waste by capturing requirement and traceability information as design artifacts are created.

The engineering activities in agile development are not linear; to deliver working increments of a system or software requires constant iteration across all lifecycle processes. Agile requirements management must therefore be tightly integrated with other engineering activities and their associated tools, including architecture, design, testing, change and configuration management, and workflow planning and management.

H2: Streamlining requirements management

To develop a clinical information application for its parent company, Montefiore Medical Center, Emerging Health IT implemented agile development methods with a focus on managing requirements using IBM Rational DOORS Family software. This enabled a complete understanding of the application’s features, capabilities and user priorities, along with full lifecycle traceability from requirements through testing. As a result, Emerging Health IT cut effort spent on requirements from about 21 percent to 9 percent, achieved a 69 percent reduction in the cost of quality, and shortened the delivery period from over six months to just three months.

06

2 min read

IBM solutions for agile requirements management

IBM offers requirements management capabilities as part of its lifecycle solutions for developing products, systems and IT, including regulated development. For product and systems development, IBM offers IBM® Rational® DOORS® Next Generation and IBM Rational DOORS as part of its solution for software and systems engineering. For IT and regulated development, IBM offers Rational DOORS Next Generation as part of its collaborative lifecycle management solution.

Understand the five key benefits for agile development provided by the IBM Rational DOORS Family.

Understand the five key benefits for agile development provided by the IBM Rational DOORS Family.

IBM Rational DOORS Next Generation offers support for a range of requirements practices, from lightweight requirements to fully regulated systems engineering. Designed for collaboration, it provides a single platform for managing requirements so that teams can work more effectively across disciplines, time zones and supply chains. IBM Rational DOORS includes requirements management, traceability and impact analysis capabilities for more formal, rigorous requirements engineering purposes. IBM Rational DOORS Family, the flexible and complete solution for requirements management, offers five key benefits for agile development:

1. Collaboration:

Multiple people in different locations can work on the same information at the same time. This shortens review cycles and improves collaboration even when different time-zones are involved.

2. Consistency:

The central requirements repository acts as a single source of truth, keeping large and diverse teams synchronized throughout projects. Consolidation, monitoring and analysis are quicker and information is consistent and accurate.

3. Traceability:

Relationships can be created and maintained across the development lifecycle. This includes relationships between requirements, work items, architecture, design and test plans.

4. Understanding change:

Change is inevitable in any project. Traceability analysis helps ensure that the impact of change is understood, and that impacted areas can be modified as necessary.

5. Making your data work for you:

Dynamic views can be generated that meet stakeholder needs such as compliance, gap analysis, cost or test status. The overhead of manual information gathering and report building is eliminated, freeing team members to focus on creative work.

H2: Cutting release cycles by 50 percent

A leading communications provider wanted to switch from waterfall to agile development in order to shorten the “idea to value” cycle. The company adopted IBM requirements management software as part of the IBM collaborative lifecycle management solution for agile development. Creating and managing requirements and traceability has helped the company cut its release cycles by 50 percent, from four to two months.

07

1 min read

Conclusion

Agile methods offer four key benefits: better collaboration, incremental delivery, early error detection and the elimination of unnecessary work. These are driving agile’s adoption by teams developing complex products and systems and regulated IT.

Requirements management is a critical activity which not only remains relevant but actually increases in importance for many projects adopting agile approaches. With the correct processes and automation in place, managing requirements can evolve from an administrative burden to a key enabler of effective agile delivery, helping to facilitate better collaboration with customers and stakeholders through clear communication of needs. Agile requirements management can help improve productivity by reducing waste through greater focus on customer priorities and through improved responsiveness to change. It can also enable automated delivery of essential work products such as compliance evidence.

By choosing IBM Rational for agile requirements management, development teams can improve collaboration, increase delivery certainty, boost quality and enhance efficiency.

For more information

To get started with a free 60-day web-based trial of
IBM Rational DOORS Next Generation, visit:

Visit IBM Rational DOORS Next Generation

Footnotes

1. https://www.scrum.org/