Requirements

October 3, 2016

Tool-based Requirements Gathering in Agile

Requirements gathering is a vital process in software development life cycle. It becomes more challenging in an agile environment where the requirements are iteratively changing and new requirements are continuously coming in.

In an agile environment, it becomes easy to lose track of the requirements – you might miss some requirement in the implementation phase, you might overlook a requirement that was awaiting review or a decision, you might forget to cover some requirements in your testing process. As a test manager, you don’t want to encounter yourself with any of those situations. You desire agile requirement process to be efficient, effective and traceable.

How can you improve the requirements analysis and requirements gathering in agile environment?  Have you thought of tool based requirements gathering in agile? If not, think now.

Tool based requirements gathering in agile will enable you to cope up with the rapidly changing environments. There are many requirements management tools available in the market.

These tools enable you to log your requirements and add details of your requirements. In any change of requirement occurs, edit history is maintained. You can not only see the conversations and decisions related to a requirement but you can also trace forward the entire activity, implementation and test cases created for the requirements.

In this article, we will discuss challenges of requirements gathering in agile environment. Then, we will discuss the benefits of tool based requirements gathering in agile environment. Finally, we will look various tools that helps you manage the requirements in agile.

Keep reading this article as it is going to cover various aspects of requirements gathering in agile methodology.

Challenges in Agile Requirements Gathering

Gathering business requirements and soliciting is a critical initial step in any project. If you succeed in creating a complete set of requirement up front, then you are able to create a thorough plan and accurate cost estimates which result in improved customer satisfaction and shorter delivery cycles.

During requirement gathering process it is a common pitfall that stakeholders disagree or underestimate development efforts and design. Some of the common challenges in requirements gathering process are discussed so that they can be addressed in a more potential manner:

Unclear success criteria

Stakeholders normally know about a problematic area or an opportunity that can be more explored but they don’t exactly know how to do or what to do about it. To address this issue, the best approach is to break a bigger project into smaller chunks and start working from the area about which client is clearer.

It is better to ask for samples or examples from client and ask them what exactly they like about those samples do you can easily identify their present business processes and weak areas.

Give them a high level model and get this done by a collaborative modelling tool so they can provide feedback earlier in the process and they have a better vision of the end product. It is good to make business requirements clear and quantifiable to have good results later on.

Changing minds

It is a common problem that stakeholders change their mind during the process or after the process. You need to be flexible to address this issue and allow the change to occur. It may occur due to unclear requirements or due to the evolution of the thought process.

Changes should be managed using estimation, prioritization and budget allocation. Establish a change control process in the SDLC. Changes should be communicated and approved before modifications are made.

Client does not want to speak up

An active client is a key to success in agile requirement gathering environment. For establishing trust, honest and open input is required. In some cases, client may not be comfortable in speaking up, so it is important to build a comfort zone with them and be ready to listen to them. Listening and being prepared to understand their problems may help to bridge the gaps.

Conflicting priorities

When various groups are involved in development of a system, it is possible to have conflicts in priorities and views. When the issues are not resolved it is possible that individual agendas are promoted instead of following organization’s vision. The solution to this problem is that the project manager and all stakeholder sit together to discuss the conflicts, resolve them and make a definite decision on priorities.

Client insists on a particular technical solution

When clients have limited technical knowledge then this issue occurs. They may try to enforce a certain technology in their current project that was a success in a previous one. The best practice in this situation is to educate the client – make the client understand the differences in projects and support your argument with reasoning of why you are selecting a particular technology over another.

Benefits of Tool Based Requirements Gathering

Requirement gathering agile scrum environment is one of the tricky tasks to do. The first question that arises in minds is ‘How to collect requirements in agile?’. So the answer is by using best available requirements gathering software such as IBM Rational Door, ReQtest, Spiratest.

In agile environment several stakeholders contribute to requirement gathering process. Using a general purpose tool like excel is considered to be the basic approach in agile requirement gathering process.

On the contrary, you can improvise your agile requirement gathering process using a requirements management tool for this purpose is the best approach. There are various benefits of using a tool based requirement gathering approach:

Structured Requirements

Usually the problem that arises in agile projects is the undocumented, unstructured scope and requirements which can be a painful experience later on for the whole team.  Getting your requirements in a proper structure is one of the key benefits of requirement gathering tools which means attributes can be defined and tracked for each requirement while making sure that they are being fulfilled.

Reduce Stress

Gathering requirements is a stressful thing to do. The cause of stress is the chaotic nature of this process. A good requirement management tool eliminates unnecessary stress which is associated with requirement gathering process by making things more manageable. With these kind of dedicated tools, it is possible to acquire feedback early and quickly. This avoids conflict that may occur later and become a problem for the whole team as well as the clients.

Time saving

As they say ‘time is money’, in agile projects time is a key resource and every minute is important for the success of project and the team. A good tool that may help in saving a lot of time when it comes to management is always welcomed with open arms.

These management tools automate a lot of things such as creating change request documents, estimations, requirement documents – reducing effort and letting the team more focused on their designated tasks.

Best practices and workflow

The success of a product or project lies in well-defined workflows which helps in identifying responsibilities and tasks to each team member and in maintaining work balance throughout the team. These tools have built-in workflows and best practices for tasks related to requirements management. This helps in managing the team and results in a good result oriented approach.

Easy collaboration

Collaboration and communication plays a vital role in a team play. Lack of communication may result in unclear ideas and unsatisfactory result. As a solution, good tools are helpful in collaborating with internal and external stakeholders effectively and efficiently.

The comments and discussions are maintained under each requirement and can be tracked later on when the need comes. General-purpose tools are a failure in this regard as well as they lack in requirements related collaboration properties.

Top Software Requirements Gathering Tools/Software:

Now, let’s have a look at the list of requirements gathering tools that provide you requirements management solution.

  1. ReQtest
  2. Jama
  3. IBM Rational Door
  4. SpiraTest
  5. Agile Designer

Note that these tools also provide you the test management module to complement the software development and assuring full test coverage.

1- ReQtest

ReQtest is a requirements management tool that makes the process of creating and managing requirements effortless. You can use ReQtest for both agile and traditional development methods. You can store and organize your requirements in the folders and view their hierarchy in a tree view.

Use agile board to visualize the tasks and requirements in a simpler way.  ReQtest maintains all details of the requirements including requirements priority, status, comments, date created, creator name. If any change is made, edit history is maintained by ReQtest. Filter down the requirements using their requirement status and priority.

As needed, you can attach files to clarify the requirements. Use one-click charts to get insights on how well your requirements management is going.

2- Jama

Jama is a requirements management tool designed to meet the needs of today’s enterprises building highly complex products. It is a collaborative requirements management solution that saves every tiny detail of the requirements and changes. You can prioritize your requirements validations, problem statements and select the reviewers for your requirements.

Jama offers real time collaboration between stakeholders, engineers and partners across the product as the items are linked to the related conversations, associated questions, decisions. The coverage explorer represents the coverage of your product visually which helps you ensure that users are aligned and maintains the traceability evidence that all requirements have been covered in testing.

Jama has a central repository where data is kept, organized and secure in one or more projects – allowing you to save time in setting up of new projects by reusing your existing strategic assets. Jama is a powerful requirements management tool for agile process with extensive feature set facilitating your requirements gathering tool.

3- IBM Rational Door

IBM Rational Door  is a scalable requirements management tool which is used in requirements communication, verification and collaboration in overall organization as well as supply chain. The tool is helpful in meeting business goals by cost and project scope management. It helps in tracking, analysing, capturing changes and information while maintaining standards and regulations.

IBM Rational Door has following extensive features which makes it among top ten requirement gathering tools in agile:

  • Requirements Management: It is always hectic to keep the track that who has got the access of the latest alteration decisions and who is not aware of it. For solving this hassle IBM Rational Door provides a centralized location so everything is discussed and shared with everyone in the team and sharing everything explicitly to everyone separately can be avoided.
  • Traceability: It helps in tracing and tracking requirements with test cases, test plans and design items as well as other defined documents while keeping all the record.
  • Testing: Testing is one of the main phases of SDLC and keeping a track of requirements that are to be tested is very important. IBM Rational Door assures that each test case is linked to its requirements such that nothing is left untested.
  • Scalability: It tracks the changes that occur in requirements time to time.
  • Integration: In agile requirement gathering managing changes by using a change management system or change control system is a key feature as things keep evolving throughout the process. This tool helps in doing so with its special change management feature.

4- SpiraTest

SpiraTest is an integrated software requirement and quality management tool. It manages project requirements, test cases, releases, defect and issues in a single environment. After defining requirements, test cases are generated to validate functionalities. This is one of the most famous tools of 2016 and it has proved to be a good tool is agile requirement analysis and process.

5- Agile Designer

Among good tools for Agile or scrum requirement gathering Agile Designer is on the list as well. It is a sophisticated process and path modelling tool design for reducing the cost of testing, increasing test coverage and significantly improves the quality of requirements and test cases.

It assists in reducing requirement ambiguity by reducing software bugs. It accurately estimates the cost of new software development and changes to existing systems also provides a systematic way of enforcing Service Level Agreements. Hence proving to be a complete package in agile requirements analysis and process.

Recap

In this article, we discussed the various challenges of the agile requirements gathering process. We also discussed the benefits of tool based requirements gathering in agile. You can select the right tool that meets your budget and needs from the aforementioned list.

Since, requirements and testing goes hand in hand, we would recommend you to select a requirement management solution that has an integrated test management module tool too. It would significantly improve the efficiency and accuracy of your testing process.

Share article