Evaluate Changelogic without registration!
  

Impact Analysis

What is impact analysis?
Since software components and processes are interconnected, a small change in one can cause a ripple effect of requiring editing in many other parts of the system, thus multiplying the workload; neglecting any of those aggregate modifications usually results in inconsistencies or even software malfunction.

For example, seemingly simple act of renaming a button might require translating the new name into other languages, updating corresponding help documents and tutorials, replacing screenshots in training materials, supporting users who do not find the old button they are looking for etc.


When a change affects some external interface, extra effort must be put in to guarantee backwards compatibility with other systems. The larger a change is, the higher is the risk of introducing severe bugs. Impact analysis is the procedure of estimating the scope and magnitude of such implications.

Impact analysis and code review are both done based on changed code lines, but are somewhat different because the term impact analysis is a lot broader.


Changelogic processes contain impact analysis in two different places:

  • review in change process
  • acceptance in release process

In case of change review you only see differences made in current change, but during acceptance you can see all changes between any two releases.


Change impact analysis

During review you should analyze impact from the point of view if it doesn't destablize the whole release. If so, you can replan the change into some later cycle. Things to check:

  • Hidden dependencies between changed and unchanged components
  • Documentation to be updated
  • Additional test cases might be required to cover new functionality
  • External interfaces may cause problems for communicating with external systems
  • Data storage format modifications that may cause trouble, e.g. with loading old data
  • Environment adjustments that have to be made for deploying a version containing the change

Release impact analysis

During acceptance or before release you should analyze impact to find out if there are anything else you should be concerned about when doing the release. The main tool for release impact analysis is the version differences engine. In this case you should check:

  • Changed interfaces, especially external interfaces used by other systems that might need upgrade too.
  • Database changes.
  • Application configuration changes, because confuguration files are usually not placed under version control and added configuration parameters need to be set in production environments too for the system to function properly.
  • Environment configuration changes, your application may now be expecting some extra input from the envrionment it operates in, for example new version of some library, application server or the programming language itself in which the application is written.