Even if you launch your project with a complete set of requirements, expect changes to crop up once the project is up and running. Depending on which project management model you choose, adding, modifying, or removing requirements after you start can be quite costly and time-consuming. That’s why you need a continuous requirements management process, which helps you control costs and avoid scope creep, ensuring end-to-end traceability. A smart requirements management system will also ensure that when changes do occur, you will be able to manage them flexibly, without losing your focus on delivering the desired capabilities efficiently. Here are 6 best practices to help you with that.
Your first step is the requirements collection. Remember to include all relevant sources such as new and seasoned users, managers, business analysts, and other stakeholders. Pay close attention to operational users, because they are the ones who will provide you with most functional requirements for both system performance and user interface. Treating this group as your top requirements source will enable you to deliver a product or service that helps to solve real problems experienced by your customers.
Categorizing a long list of requirements can be a daunting task. As your project matures, you will need to document requirements attributes and keep all information up to date in order to remain traceable during testing and verification. By organizing and prioritizing your requirements, you will enable your team to identify what’s missing, contradictory, or duplicated. A clear structure of requirements will also make it easier to determine all the actions, that should be taken during test management, including assign related test cases to them. These two processes are closely related to each other and only if executed in a controlled and well-planned way will result in achieving your project’s goal.
To prioritize requirements, ask stakeholders to assign a priority to each requirement you collected from them. Naturally, stakeholders may differ in opinion about which one is critical, desirable, mandatory, or optional. Defining priorities in agreement with all stakeholders is quite challenging – that’s why it’s best to start doing that early on the project. One of the best ways to easily see the assigned priorities and dependencies between requirements is organizing them hierarchically into a tree-view structure
By organizing and prioritizing your requirements, you will enable your team to identify missing, contradictory, or duplicate ones
Once you collect your requirements, it’s a good idea to hold a special meeting where you review them with stakeholders. Make sure to include project team members if you can. Sometimes last-minute changes may arise during this meeting, and that’s when it’s critical to reach consensus among all stakeholders. You need to be flexible throughout all the application lifecycle to ensure that the development and implementation of the system don’t just blindly aim to meet a broad set of requirements, whereas you could reduce costs or provide an earlier delivery. That’s why you need to prioritize requirements correctly. All that’s left is gathering requirements for final approval – that type of document will provide a direction for the project’s future. If you’ve got people on board who are experienced in requirements management and know how to tell good requirements from bad ones, have them review your specifications.
In general, aim for requirements that are uniquely identified, consistent throughout the project, complete, easy to test, fully traceable, attainable by your team and verifiable by the stakeholders. If you spot a requirement that doesn’t meet these standards, modify or delete it.
It’s common to ask stakeholders to review documentation that includes requirements they supplied once in a while. You should provide them with all the help for interpreting requirements. Be prepared also to offer a description of outcomes when these requirements are implemented. Depending on your workflow, you can give stakeholders these explanations in different forms including activity diagrams, workflow models or flowcharts. It’s also smart to prepare a tree-structured view with folders and subfolders with your requirements for validation. That way you will build a limited functioning context where users can try different alternatives before assessing the requirements. Additionally, that kind of organization will show stakeholders clearly how specific requirements represent their objectives and whether they are consistent with the overall goals of the project. For the same reason, it’s equally important to show all the relations between objects and issues in a transparent way.
Tree-structured view show stakeholders clearly how specific requirements represent their objectives and whether they are consistent with the overall project goals
That type of assessment provides teams with an understanding of the implications of a proposed change. It helps them make the best possible business decisions about change proposals. Impact analysis is essential in projects where quality and safety are important (for example, in healthcare or automotive projects). The analysis examines the proposed change and identifying components that might need to be modified, rejected or added.
In general, impact analysis is based on:
Naturally, as you add new requirements and alter or discard the existing ones, the requirements of the system will change as well. Teams need a solid requirements versioning practice to control these changes and implement a well-organized further action plan, including test management, and by that minimize the risk of misunderstandings between stakeholders.
Collecting and documenting requirements is most efficient with the help of the right tool. If your development team uses Jira, there’s no reason why you shouldn’t try out its potential as a requirements management software. Even though it was designed as a tool for the issue and project tracking, Jira combined with another Atlassian product, Confluence, can become the right tool for the job, as proved by worldwide experts like Tarun Sapra. You can use Confluence for general requirements gathering and project discussion on particular pages. Thanks to Confluence and Jira integration, you can create development issues directly from these requirements pages. That way, your team will be able to view requirements together with corresponding Jira tasks. Developers can use the wiki platform to view or edit the requirements, ensuring that all stakeholders stay up to speed. Confluence also ships with a Blueprint template to help teams in writing down requirements.
A product requirements page in Confluence. Source: Atlassian Documentation
You can also customize your Jira instance with dedicated apps for modern requirements management, such as Requirements and Test Management for Jira Cloud (RTM). This smart tool supports documenting, linking and tracking requirements as well as executing your whole testing process right inside Jira. What differentiates RTM from other available tools for testing is that it attaches importance to gathering requirements on the same high level as to defining test cases. The app allows collecting requirements in a transparent tree-structured view with folders and subfolders, making it clear for all team members. Thanks to seamless Jira integration users are able to link requirements to Epics and user stories and search for them inside your Atlassian suite like for regular Jira issues. A well-known interface makes it possible to start working with Requirements and Test Management without any additional training.
Detailed descriptions make it easier for all team members to understand the context of specific requirements
Requirements management relies also on verifying their implementation in the development and testing process, and nothing can help you with this as much as reporting your actions and presenting conclusions. RTM has two features that basically create ready-to-export reports for you:
Requirements Coverage report helps make sure if all requirements are covered by other test objects
Read more about requirements and test management: