_

Software tools to gather requirements for software products have been around for quite some time; most have focused on helping teams define and manage the requirements given by stakeholders and interpreted by business analysts.

The tools now allow for all parties to have conversations and debates about the product, arrange and prioritize requirements into individual product features, and attach those conversations and priorities to the requirements in order to allow these ideas to flow throughout the software development life cycle.

Requirements are the basis for software projects, and innovations in software depend on a strong understanding of requirements in order to deliver accurate code, said IBM’s Mike O’Rourke, vice president of Rational strategy and software delivery.

“We see companies trying to prioritize innovation versus cost-cutting. Software is the linchpin to innovation, and there is a driving notion of a system of systems: Software has to be developed to integrate with other systems,” he said.

IBM announced at last month’s Innovate Conference improvements to its existing ALM offering in order to enhance the gathering and management of requirements.

O’Rourke explained that IBM believes active in-context collaboration is important to the requirements management process. “Collaboration has to be stored with the requirements,” he said, adding that life-cycle traceability is also important so that every team member has access to the steps taken to develop a product.

Collaboration leads to better software
“Social collaboration is helpful to all types of development teams and environments because [developers] always have conversations about the requirements,” said Johan den Haan, CTO of Mendix, a provider of agile business applications.

Mendix’s new agile social collaboration tool, sprintr (currently in open beta), allows developers to interact with their stakeholders directly on a message board (or wall) in the tool, which is then mapped to a defect tracking system, keeping the conversations attached to the defects and requirements.

Change is constantly happening in a development cycle, particularly in teams focusing on agile methodologies, so it is important to have these conversations tracked and stored, according to den Haan.

Continuous feedback, provided in short, timely updates, allows for greater flexibility within a development team, according to den Haan. He said that these tools will be suitable for almost all software projects in the future, with the exception of complex projects, although those teams can also benefit from connecting comments with requirements.

Jitendra Subramanyam, director at CAST research labs, said the short, iterative cycles in agile development almost force continuous feedback, which he said is essential for a good requirements management and definition process.

Collecting feedback
Requirements definition and management has evolved in recent years to include Facebook, Twitter and forums in the feedback-gathering process. But these venues can be seen as yet another way to survey clients, stakeholders and customers in order to gather better feedback, maintain consistent requirements and, ultimately, produce better software.

David Intersimone, vice president of developer relations and chief evangelist at Embarcadero, said that, internally, developers at his company (a provider of database tools and developer software) use the feedback given on its Facebook page and Twitter feed as a way to survey customers, in addition to traditional methods.

“Facebook, Twitter, forums and other social tools used today are one part of the conversation,” he said. “We also use Embarcadero’s Quality Central to allow customers to vote on features they’d like to see included and to host discussions or debates about those features.”

Features are an important part of the requirements phase, according to Intersimone, said OutSystems’ Jones. The internal requirements management process at his company includes a prioritization of individual features within user stories, he said.

“We write high-level stories on 3×5 index cards, and then try to write each story from an individual user’s perspective so as not to overload the stories with capability,” Jones said, adding that these stories are then broken down into features and the features are prioritized, with the lower features generally dropping off.

He added that this is a more traditional lean approach over the strict methods of agile, but he added that it works well with OutSystems’ embedded change technology, a key feature in the agile development platform.

“Business stakeholders are much more comfortable giving feedback, and when it is done in the application they are testing, it’s much more intuitive,” said Jones. “Business stakeholders are much more savvy [when it comes to user experience] and need to get comfortable with the idea that feedback will always get back to the dev team.”

He added that in the past it was very easy to lose an e-mail or a conversation, but now with conversations connected to requirements it is easier to ensure that members of the development team actually review the feedback.

OutSystems’ embedded change technology allows for changes to be tracked in a sample program prior to deployment, according to Jones.

“Embedded change technology allows users—developers, QA teams, testers—to click a hot spot [in a sample application] to get a change and submit it quickly,” said Jones. “Then the screen shots are passed along to the development team and the changes are tracked in the product management system. It allows the developers to pinpoint where changes need to be made directly in the agile platform.”

This, Jones said, dramatically reduces the ambiguity among developers, stakeholders and other members of the development team.

Requirements reach the cloud, too
With geographically dispersed teams, requirements management systems have had to adapt to multiple users, with different permissions in different locations.

A tool based in the cloud facilitates this distribution, according to GatherSpace’s founder, Darren Levy.

GatherSpace as a company began as a hosted solution in 2005; it is now a cloud-based requirements management tool that enables project team managers to manage multiple projects, allows different permissions for different team members, and provides several layers of security.

Levy said the cloud solution for requirements management is necessary in a world of distributed teams. He said that, in the past, team members were in the same building or on the same floor and could discuss things in person, but now with outsourcing and “cloud-sourcing” (using cloud services to hire freelancers or contractors), teams have to be more vigilant about their requirements-writing practices in order to keep all team members connected throughout the entire process.

“Security means protecting data from theft and loss,” said Levy. “We have several government agencies using the product; once we fulfilled their security concerns, they began using the product. [GatherSpace] has the same levels of encryption as a bank site. To protect data loss, we back up the data base in redundant locations, and customers can download and protect the data on their own.”

Levy said GatherSpace provides an open framework with “full export capabilities to put the requirements into a project management system or a bug-tracking system.” Additionally, he said, GatherSpace will be providing support in the next few months to allow customers using GatherSpace to upload requirements directly from Microsoft Word, something he believes will help many organizations.

Although GatherSpace is process agnostic, it supports both user stories and requirements, a distinction Levy said is important to teams working on requirements gathering.

“Use cases are stories that can include a thousand or more requirements. Individual requirements are non-linear, so it can be listed as: ‘The system shall do X,’ ” Levy said.

GatherSpace also allows for traceability as reports and the requirements data can be downloaded, plugged into another tool, or stored on individual databases.