What is Impact Analysis? Best Practices for doing Change Impact Analysis
What is Impact Analysis?
Change is an inevitable part of the world. Hence, development is a continuous process. However, a newly introduced change might leave some impact on other areas of the application. Therefore, it is quite important to analyze the effect or impact, if you will, of the introduced change. That is what Impact analysis is all about.
Impact analysis, also known as change impact analysis, was first described in 1996 by American software engineers Robert S. Arnold and Shawn A. Bohner in their book called Software Maintenance. In the book, Arnold and Bohner stated that impact analysis is about “identifying the potential consequences of a change or estimating what needs to be modified to accomplish a change.”
Impact Analysis, as the name suggests, is about analyzing the impact of the changes in a product or application. It is one of the most integral steps in the development cycle of any product as it provides useful information about the areas of the system that might be affected by the change in any adverse way.
Types of Impact Analysis
According to Arnold and Bohner, there are three main types of impact analysis:
- Traceability Impact Analysis – Traceability impact analysis captures the links between requirements, specifications, design elements, and tests, analyzing their relationships to determine the scope of an initiating change. Manually determining what will be affected by a change can be extremely time-consuming in complex projects, which is where requirements management software comes in (more about it later in this article).
- Dependency Impact Analysis – This type of impact analysis is used to determine the depth of the impact on the system.
- Experiential Impact Analysis – Taking into account the prior experience of experts in the organization, experiential impact analysis studies what happened in similar situations in the past to determine what may happen in the future.
Advantages of Impact Analysis
As we mentioned earlier, Impact Analysis is one of the most integral steps in the development cycle of any product. The various advantages of impact analysis include:
- Accuracy – Impact Analysis provides essential and accurate information regarding the changes in the modules of the application.
- Enhanced Efficiency – Impact Analysis helps the testers plan better and more efficient test cases by providing clear and concise information about the changes and the effects of those changes.
- Precision – Impact Analysis documents are pretty easily readable. Hence, they make it easier for the testers to understand the information and work with more precision.
- Saves Time – With the help of impact analysis, testers can perform testing in modules or sub-modules rather than testing the whole application at once. They can properly prioritize the areas that need to be tested and thus save a lot of time.
- Easy Bug Detection – Impact Analysis also improves bug detection as well. Impact analysis documents are quite helpful with integration testing.
Impact Analysis Document
An impact Analysis document is a document that is majorly used as a checklist. This checklist is used to evaluate the change requests before working on them. The details of an impact analysis document consist of include:
- Description of the issue
- Explanation of how the defect is causing failure or inefficiency
- Estimation of the complexity
- Estimation of the cost and time to fix the issue
- Functionality that is to be tested
- List of the new test cases created for the change
- Reference document and technical specification
Impact Analysis Procedure
There are 5 simple steps to conduct an effective impact analysis are:
- Prepare the team – Before we make any changes, we must prepare a team. All the team members must have an access to all the modules and attributes in the application and must also possess the required knowledge about the proposed changes.
- Inspect High-Level Modules – The team members will then analyze the high-level modules of the application which might be affected by the newly proposed change. This would provide them with a better knowledge of the workflow rules in the modules.
- Inspect Low-Level Modules – After analyzing the high-level modules, the team would move towards the low-level modules and identify the impact of the new changes. A separate document has to be prepared for all the modules.
- Evaluate the Impact – The documents prepared after analyzing the high and low-level modules will have all the details on the impact of the changes, both positive and negative. On the basis of this document, the testers will evaluate the identified impacts and will further get a clearer picture of the benefits and issues with the new changes.
- Work on Negative Impacts – When the team members have a better idea of the negative impacts, and now, they can work on them. They can consult with the team and stakeholders and discuss if the change should be implemented or not. Regression testing can also be performed in this situation.
Best Practices for Doing Change Impact Analysis
While it’s impossible to turn the experience of experts on impact analysis into just a few bullet points, there are some best practices for doing change impact analysis that everyone should know about.
- It’s useful to distinguish between quantitative (monetary) impacts and qualitative impacts.
- Never forget to closely define the scope of each impact analysis.
- Establish an impact analysis project team that represents all the areas within the scope of the impact analysis.
- It’s always easier to get people involved if you have obtained written executive commitment for the impact analysis.
- Take advantage of requirements management software tools to ensure end-to-end traceability.
Using a Requirements Management tool for Change Impact Analysis
It’s not an exaggeration to say that impact analysis is a key aspect of responsible requirements management because it provides an accurate understanding of the implications of a proposed change, helping everyone involved make informed decisions.
The problem is that manually describing and tracking the life of a requirement from its conception, through the specification and development, and down to its deployment is nearly impossible on complex projects with thousands of artifacts. Requirements management tools such as Visure Requirements make it easy to identify the source of each requirement and track all changes affecting them, ensuring end-to-end traceability and providing accurate and documented information for impact analysis.
Original post by Visure Solutions can be read here