Home > Agile software development tutorial: Agile requirements gathering
Tutorial:
EMAIL THIS

Agile software development tutorial: Agile requirements gathering

03 Apr 2009 | SearchSoftwareQuality.com

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

TABLE OF CONTENTS
  Getting started: How to transition to agile
   Benefits of agile development
   Problems with agile development
  Agile project management methodologies
  Choosing tools for agile development
  Agile development requirements gathering
   Testing in an agile environment
   More agile issues, considerations


Agile development requirements gathering

The rise of agile development processes has changed requirements as much as any other part of development. Agile-based principles are more open to adding and refining requirements later in the development process and to having as thin a level of document detail as possible -- less detail than was common in requirements gathering for traditional software processes. The agile approach to software requirements embraces change, flexibility and face-to-face communication in a just-in-time manner. This method can help bridge the communications gap between developers and users that has been a longstanding pain point in software projects.

So what are some approaches to defining requirements within agile teams? Agile development methods focus on defining "just enough" requirements detail for the next sprint. In other words, don't produce any requirements specifications that are not absolutely critical to getting the point across to the rest of the team. So how do you decide what is "just enough," and who makes this decision? What happens when the team is colocated or distributed? How do you deal with changes to these requirements details and their priorities?

According to Martin Crisp, CTO of Blueprint Systems, more detail in your requirements artifacts is a good idea when you're working with a new system, offshore or distributed teams, a newly formed team or a large, complex solution. You can get away with less detail in requirements if you're dealing with a simple or moderate addition to an existing system, a colocated team that has been working together for a while, and a small or simple solution.

What about verbal versus written requirements? Verbal communications with a whiteboard session are typically the fastest way to convey a requirement. According to James Shore, consultant and co-author of The Art of Agile Development, "In the agile world, we believe documents are one of the least effective ways of communicating -- you don't see nuances, tone, facial expressions." So communicating better around requirements requires cross-functional teams that meet together, Shore said. "Agile recognizes that the creation of software is a team activity, and that alone helps bridge the communications gap."

But the verbal-only approach doesn't ensure that all stakeholders are in the loop. It is all too easy for people to have different recollections of details discussed two weeks ago let alone two months ago. This can lead to misunderstanding of requirements during development, testing, writing product user guides and training material. So you may have saved time initially, but wasted more time in the long run. Capturing meeting minutes or taking photos of whiteboards is a starting point for communicating all stakeholders' issues. And whatever techniques you decide to use to document requirements, keeping these requirements details in a central repository and linking them to each other in an organized manner is critical to the collective success of your agile team.

Watch the below video for SearchSOA.com editor in chief Jack Vaughan's insights on the difficulty of requirements gathering as well as the goals and evolution of agile development and how agile and SOA interact.

With the agile development movement has come an upsurge in the use of user stories to gather requirements -- user stories being seen as a more agile way to elicit user needs. But the user story, cited as a requirements gathering technique by 26% of our 2008 agile survey respondents, remains just one of many requirements techniques. Other agile requirements gathering techniques include user requirements models, focus groups and the ubiquitous spreadsheet.

How do user stories stack up against use cases? The use case may be thought of as preceding the user story in the annals of requirements jargon. Use cases have been described as a series of events told from the point of view of a system user. Use cases were part and parcel of UML, used as a notation to achieve better development outcomes. The use case was also associated with RUP, which many developers judged to be too complex. RUP and other processes led in turn to counter trends Extreme Programming (XP) and its slightly more subdued sibling, agile development.

Meanwhile, user stories have been described as system requirements formed in just a few sentences that use the language of the user. The user story's drive for brevity plays to the widespread desire to streamline the requirements task. As part of traditional processes, requirements gathering often seemed to result in voluminous documents that did not lead to successful final systems. And those requirements were not visible to the whole team during the life of the entire project.

Clearly, use case techniques may be influenced by the user story, and vice versa. Use cases in agile-style development can succeed, said David West, managing director at Ivar Jacobson Consulting, if teams focus on specifying only things that will actually get implemented, and if these things are specified at the appropriate level of detail.

Betty Luedke
Betty Luedke

What about Scrum and requirements gathering? One user interested in agile and Scrum wrote to us with the following complaint: "Requirements gathering has been a sticky point for us, with some people feeling that … we have some communication issues with requirements (groups not talking with/understanding each other and so forth)." According to requirements expert Betty Luedke, lingering "communication issues" and "sticky points" are usually symptoms of a project environment that is not fully functioning with the commitment, focus, openness, respect and courage that Scrum require. Taking the leap to Scrum means that everyone on the team will need to have (at a minimum):

  • An understanding of basic principles and practices.
  • A commitment to working differently.
  • Roles assigned and accepted.
  • Financial and moral support for learning and transitioning to a new approach (training, coaching).

Continue to the next section: Testing in agile.



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



RELATED CONTENT
Agile software development
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
Test-driven testing face-off: Waterfall vs. Agile
Accelerating Agile testing with computer assistance

Software requirements techniques (Prototyping, Storyboards, Modeling, State transitions)
Requirements practices evolving, but organizations still struggle
Why business analysts are application development key players today
Defining report requirements with use cases
When it comes to requirements, what is 'just enough'?
How requirements use cases facilitate the SDLC
GatherSpace beefs up cloud-based requirements management
Software development life cycle phases, iterations, explained step by step
How to deliver, implement testable software requirements
Excelling in the art and science of requirements elicitation
Software requirements: Moving beyond use cases

Software requirements tools
Requirements practices evolving, but organizations still struggle
GatherSpace beefs up cloud-based requirements management
ThoughtWorks Studios moves from agile tools vendor to ALM market
How to deliver, implement testable software requirements
Excelling in the art and science of requirements elicitation
Software requirements: Moving beyond use cases
Mastering key requirements phases
Blueprint rolls out Requirements Center 2010
Borland releases requirements definition simulation tool for teams
New requirements definition tools focus on chronic flaws

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
acceptance test  (SearchSoftwareQuality.com)
iteration  (SearchSoftwareQuality.com)
planning board  (SearchSoftwareQuality.com)
planning game  (SearchSoftwareQuality.com)
release  (SearchSoftwareQuality.com)
release plan  (SearchSoftwareQuality.com)
spike  (SearchSoftwareQuality.com)
stand-up  (SearchSoftwareQuality.com)
story  (SearchSoftwareQuality.com)
timebox  (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




Software Quality Testing - Research and White Papers
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