Home > Ask the Software Quality Experts > Software Requirements Gathering, Analysis, Quality and Testing Questions & Answers > Agile development and software requirements documentation
Ask The Software Quality Expert: Questions & Answers
EMAIL THIS

Agile development and software requirements documentation

Karl E. Wiegers EXPERT RESPONSE FROM: Karl E. Wiegers

Pose a Question
Other Software Quality Categories
Meet all Software Quality Experts
Become an Expert for this site


Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


>
QUESTION POSED ON: 12 September 2007
Does agile development methodology (build small, get it confirmed at the earliest, rework if needed) cut down need for good requirements documentation before the actual work starts? Is it not needed because work is in smaller chunks?


Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google



RELATED CONTENT
Software Requirements Gathering, Analysis, Quality and Testing
How to write a Software Requirements Specification (SRS) document
Problems caused by skipping analysis stage of SDLC
Software development life cycle phases, iterations, explained step by step
Waterfall versus iterative development misconceptions
Differentiating between Functional and Nonfunctional Requirements
Writing a software requirements specification (SRS) for a portal app
Should QA check changes from outside the requirements document?
Software testing metrics for a medium-sized project
Template for requirements use cases
What should a business analyst's requirements document include?

Software Requirements Documentation
How to write a Software Requirements Specification (SRS) document
VisibleThread aims to boost IT documentation quality, improve processes
When it comes to requirements, what is 'just enough'?
How to deliver, implement testable software requirements
Blueprint rolls out Requirements Center 2010
Writing a software requirements specification (SRS) for a portal app
Should QA check changes from outside the requirements document?
Agile software development tutorial: Agile requirements gathering
Defining requirements during software project feasibility analysis
Template for requirements use cases

Agile software development
Agility and automation mark new application development and QA tools
Free tools for Agile testers
How to deal with iteration issues in Agile
Flexibility and teamwork proven traits of Agile team maturity
How to stop developer vs. tester, quality-killing blame game
Using Agile, scaling back helps software projects in recession
How to improve software user acceptance testing practices
How testers can handle switching to Agile's short iterations
Testers debate differences between waterfall, Agile test automation
Tasktop brings task management into the application lifecycle

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
functional specification  (SearchSoftwareQuality.com)
requirements analysis  (SearchSoftwareQuality.com)
Software Engineering Institute (SEI)  (SearchSoftwareQuality.com)
software requirements specification  (SearchSoftwareQuality.com)
Wirth's Law  (SearchSoftwareQuality.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary


Agile software development approaches do provide several techniques that, in appropriate situations, can allow teams to simplify their requirements documentation. But this is not the same as saying you don't need "good requirements documentation." You always need high-quality requirements that accurately convey the essential information to the various stakeholders. The central issue is the timing and the degree of detail in the requirements.

The incremental development approach acknowledges the reality that it is usually not possible to fully specify all of the product's requirements at the outset and then simply build it. However, you do need to know enough about the whole set of requirements at a high level so that the customers can prioritize them, so the development team knows what to work on in each increment. So an important idea is to specify and document requirements in layers of increasing detail at the right time. There's no point in specifying highly detailed requirements for a portion of the product that you won't implement for many months or perhaps ever.

Another agile tenet is close collaboration between the development team and customer representatives. This can reduce the detail needed in the requirements documentation, as the details can be filled in, refined, and adjusted at the right time. But there's a downside: Unless you document the information, you do not have a written record of the requirements that ultimately were implemented. This information gap can pose problems during maintenance, when reengineering a product in the future, when business rules change, and when new people replace members of the original development team. It's also an issue when attempting to trace designs and code and tests back to requirements to ensure that nothing was overlooked and everything built has a reason to exist.

Also common in the agile world is the notion of employing "user stories" in lieu of traditional requirements lists. I strongly endorse the emphasis on understanding how users will use the product to get their job done, rather than simply listing a bunch of product features that seem like a good idea. But developers don't implement user stories; they implement functionality, code that causes the system to exhibit specific behaviors under certain conditions. So a translation needs to take place from a high-abstraction user story to the functional requirements.

Such a translation typically is responsibility of a requirements (or business) analyst, who derives the functional requirements to implement from an understanding of the user story, scenario, or use case. If you ask each developer to perform this derivation mentally on the fly, others can't review the requirements to ensure the derivation was done properly and you can't ensure that all the requirements were ultimately implemented. You also need to test all of the requirements. Agile approaches often address this by writing user acceptance tests, sometimes in lieu of detailed software requirements specifications. Unfortunately, not all implemented functionality is visible to the user, and that functionality must be correctly implemented and verified as well.

Requirements gathering resources:
How agile development affects role of business analyst

Software requirements specification and the IEEE standard

How to document system, software requirements

As with so many decisions on software projects, it boils down to a question of risk. You need to balance the risks arise from not writing detailed requirements against the cost savings. When developers and customers are working closely together in a small team, this risk is lower than if development will be outsourced or if people are collaborating in multiple development locations and need the shared group memory that written requirements can provide. But you still need to specify the requirements for each chunk of work, however small. And you always need "good requirements." How elaborate those requirements need to be is up to you.




Search and Browse the Expert Answer Center
Search and browse more than 25,000 question and answer pairs from more than 250 TechTarget industry experts.
Browse our Expert Advice



Software Quality - Software Maintenance, Software Requirements, Software Standards
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2006 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts