Determining and delivering on application requirements is the hardest job in software application development, according to the recent 2009 SearchSoftwareQuality.com reader survey. The survey's 500 respondents – all development professionals -- ranked requirements management and gathering or elicitation as the top problems in development and application lifecycle management (ALM), respectively. With those statistics in mind, we compiled this collection of requirement veterans' tips, how-tos, webcasts and podcasts. In this guide, requirements experts offer advice on ways to improve practices and master key areas in requirements, including elicitation, use cases, lifecycle management, reporting and Agile development.
- Application requirements trends and overview
- Requirements use cases
- Requirements elicitation
- Agile and application requirements
Requirements practices evolving, but organizations still struggle
Requirements elicitation causes software development teams' some of the toughest problem today, reveals a TechTarget survey. Most teams rely on use cases and user interviews to elicit requirements, but many are also tapping into users via social media options. Requirements management is also becoming more important as developers, testers and quality assurance teams work more closely with applilcations throughout their entire life cycles. Survey respondents explain their answers and software analysts opine on the results in this article.
Mastering key requirements phases
Take charge of the software requirements process with this podcast. You'll learn when to use automated tools, best practices for choosing which requirements to use and which mistakes to avoid when moving through software requirement phases.
Software requirements: Moving beyond use cases
Figure out whether a use case is the right way to determine your software project requirements, or whether there's a better method. This podcast offers some alternatives to use cases, as well as tips for when to use other models and how to decide if a use case will work best with an Agile project.
Robin F. Goldsmith, JD
A use case can help a developer create a system that works intuitively for a user. In this tip, you'll find explanations of common use case formats -- narrative and one-column -- and learn about the events that might trigger using a use case. You'll also find out why use cases, though popular, do have weaknesses.
Requirements use cases tutorial: Advanced formats, test case comparisons
Use cases have become an important and well-accepted tool for developers, but they can easily become complicated. This tutorial offers help in reducing use case complexity, and delves into the differences between use cases and test cases. You'll find out how to simplify scenarios and use alternative paths. This tip also provides a look at a two-column path, and explains some of the limitations of use cases to watch out for.
It's easy to jump into building a use case, but it's important to first understand why and what a use case will add to the system development process. This tip defines requirement types using lists and questions that can help with use case design. You'll also find a list of cautions and "gotchas" that often trip up developers in the use case process, including tips on developing iteratively and knowing when to repackage.
Defining report requirements with use cases
Use cases can be one element of creating a successful report. The techniques that go into use case creation can also define reports. You'll find out how to use patterns to make use case creation easier, and an example of a report definition matrix. This tip will help develop efficient reports and use cases that can be used again.
Success with software requirements, part 2: The art and science of requirements elicitation
Elicitation can be the most challenging and human-intensive part of software development, and the results can make or break a project. There are different types of users and interfaces involved, and elicitation requires both skill and technical knowledge. You'll find easy-to-implement advice in this webcast, which covers the nuts and bolts of eliciting the information you need to make a difference in your development. Find out how to find and engage the right people and elicit the right information to get a big-picture look at your overall development needs.
How to search through requirements documentation effectively
Requirements documentation proliferates quickly, and there's not always an easy way to make the quality consistent. You'll find several charts in this expert response to help you sort through requirements documents and identify requirement types and techniques and system development roles. And, though you might choose the right techniques, there's also advice about modifying your approach to fit your particular project.
Excelling in the art and science of requirements elicitation
The human element of elicitation adds complication to the software development process. In this podcast, discover who a project's stakeholders are, and how to get the details you need from them. Find out when group sessions make sense, and also learn about formal requirements for Agile projects.
How to deliver, implement testable software requirements
Getting started with what users really need is key to successful product development. You'll learn how to find out exactly what users need -- not just want -- and how to make sure you're speaking the client's language when getting the requirements down. In this tip you will also find out when to do walkthroughs, and why doing a reverse presentation can eliminate misunderstandings before the design work gets underway.
Agile requirements work!
Software development deals with always-changing requirements as new aspects of the project constantly come up. But there are patterns in development to watch for, and an iterative approach is best—and is the heartbeat of an Agile project. This webcast explains how to prioritize requirements, and keep prioritizing them, to make the most concise, useful set of requirements for a development project. You'll also learn more about requirements and the product roadmap, and how to examine requirements and documentation during different parts of the development process.
Succeeding with software requirements in Agile projects
Agile projects call for "tamped-down" requirements, and in this podcast you'll figure out how to simplify requirements and their accompanying documentation. You'll also learn how to look at the requirements' big picture, and how to effectively incorporate user information in an Agile project.
Software development life cycle phases, iterations, explained step by step
Each part of a software development life cycle -- and the closely related project management life cycle -- is key to the success of the project. This expert answer details each phase of the cycle, offering tips on the best ways to do the design, implementation and Feasibility Analysis. You'll also find common mistakes to avoid in every phase of the development life cycle.
Best agile practices for requirements gathering
In this video clip expert Robin Goldsmith describes how to apply agile best practices to the requirements gathering process. What changes once agile is applied to a software project, and what stays the same? Goldsmith explains benefits of agile as well as similarities between agile requirements gathering and other ways software requirements are gathered.
How the requirements process differs in agile
In this videocast, find out what traditional software requirements practices remain the same in Agile development. An application requirements management vete ran compares best practices in requirements processes in waterfall and Agile development and explains why some teams are going to make the switch to Agile with ease and some won't.