Impact analysis and change estimation
Impact analysis and change estimation are key to making sure any new change request or database migration is delivered on time and under budget. To perform a valid impact analysis, you need a good understanding of the implications of a proposed change. By understanding the complexity of the request, your team can make informed business decisions as to which projects to tackle first and which are going to require more intense effort.
During the analysis, the team should examine the proposed change to identify database methods and columns, and any other artifacts that may need to be changed or even decommissioned and to estimate the effort associated with implementing the change. Lately, it seems that teams have decided to bypass impact analysis, due to the pressure to complete sprints faster and faster. The pressure to release faster doesn’t mean the amount of effort, the risk or the energy go away. So, if you decide to ignore the estimation be prepared because ignoring change estimation only leads to bad surprises.
The objectives behind Impact Analysis
Impact analysis has several key goals:
1. Understanding what could go wrong? What does the change impact? A small change can be like dropping a rock in a puddle; it could cause massive ripples. Are you looking at a tangle of databases and applications? Are the edges clear?
2. Once your team has made a high-level identification of the applications and databases touched by the change. They need to look deeper. Identify what steps will need to be taken to implement the change. Review your applications down to the method(function) level, and your databases down to the column level. Do you have a multi-tier environment? Are you making changes to the presentation tier, the application tier or the database tier? What is the actual code that is impacted?
3. Once you have completed the change analysis and you have a good handle on the scope, you need to calculate the complexity. A tool like Crosscode can give you a rapid assessment of the complexity and help you come up with a person hour estimate of what’s required to complete those tasks.
Once you know precisely all the many dependencies that will be impacted by a change, it is far easier to estimate accurately the time and money required for the project. When you use Crosscode to detect and resolve potential problems early in the cycle, you reduce the risk of adverse events that impact margin and reputation. If you have a complex program that includes thousands of items, trying to determine the scope manually of who or what is affected by a change is a waste of time and can cause errors.
When you understand what the impact is, you can respond quickly to requests allowing you to be more agile. Teams can better meet customer expectations during project cycles. During the process, if you understand the scope of the change, you also know what requires testing.
The change estimation process will follow a logical set of steps:
1. Identify the order in which new requirements will be implemented and how the change will fit into the current development schedule.
2. Is the change critical to the project? Will the change cause the project as a whole to miss deadlines? What resources are needed?
3. Estimate the cost to the project and schedule if you implement the change.
4. Prepare and update your response to the questions you researched in the beginning based upon what was uncovered: What is the priority of the requested change? How does the request compare to other sprint suggestions? Are the benefits greater? What about the cost to the business? What about risks? If you understand the impacts, you can implement the sprint that will provide the greatest benefit at the least risk first.
5. Finally, update the key stakeholders. Once they are informed, they can decide where the efforts should go. By making this small investment in time, you can maximize your resources
The Cost of not doing Impact Analysis
Deciding not to do an impact analysis can be very costly. Business disruptions from poorly executed change can include:
• Missed deadlines
• Lower quality software
• Loss of revenue
• Negative brand impact
Change is a necessary part of doing business but shouldn’t produce negative results. By improving the process of change estimation, you can meet your project deadlines and keep your stakeholders happy.