Every decision has consequences. When leaders don’t think them through, the results can be downright devastating. By focusing on the unexpected, often negative, implications of decisions, impact analysis can identify the potential consequences of a change and help organizations make informed decisions
This article explains what impact analysis is, how it can be applied in software engineering, and why requirements management software can support this critically important process.
Impact Analysis Explained
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.”
In practice, impact analysis is a detailed study of business activities, dependencies, and infrastructure. It reveals how critical products and services are delivered and examines the potential impact of a disruptive event over time.
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.
Impact Analysis in Software Engineering
Impact analysis has always been closely connected with software engineering because its creators originally used it to predict the parts of the software system that can be affected by changes in the system.
The reality of software engineering is that changes happen at all stages of the software development process. However, it’s usually not feasible and advisable to accept every change request. Doing so could lead to large delays, budget overruns, and even failure to deliver the desired results.
Impact analysis helps software project management decide when accepting a change request is possible by informing them about the impact of the change request on other parts of the software system. Performing impact analysis during the software development process may increase the total cost of development, but the added expense can be easily justified.
How to Conduct an Impact Analysis?
Because all organizations are different, there is no set way to conduct impact analysis. In general, the process can be broken down into three steps, but it’s entirely possible to add more steps, change their order, and, in some cases, even remove steps.
The success of an impact analysis largely depends on previous preparation. Gather a good team of people with access to all the information you’ll need about the proposed change and get approval from senior management. You should make it clear what you aim to achieve with the impact analysis, so make sure to define its objectives, goals, and scope. If your organization lacks the right people for the job, it’s possible to outsource impact analysis to a third party.
2. Collect Information
Next, brainstorm high-level areas impacted by the proposed change, such as the department’s strategy, customer groups, and business processes, and collect the information needed to make the analysis. If you know that the change will impact several departments, list them. There are two common ways how to collect information: questionnaires and data-gathering interviews. Each has some advantages and disadvantages, which is why they are often combined.
3. Evaluate the Collected Information
Finally, it’s time to evaluate the collected information. Ask yourself what the biggest benefits and negative consequences of the change will be and figure out how to deal with them most effectively. Summarize your findings in an impact analysis report. The report should start with an executive summary and describe methodologies used to gather data and evaluation, summary of findings, and recommendations for recovery, among other things.
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.