13

So you're fixing bugs, then you encountered one that could affect other modules of the software product. Your data is not enough to support your claim about the effects of the fix and you were asked to create an impact analysis document.

  1. Is there a defined process on how to do this?
  2. What are the key information needed?
  3. Are there any known formats / templates for this document?
4
  • 1
    seems to me some one cooked up fancy term to put you on the spot and get you to fix that bug without any arguments.
    – Aditya P
    Apr 11, 2011 at 12:32
  • 4
    This question and its answer make me happy I don't work in such an environment. "Bidirectional Traceability Matrix"? "Decision Analysis and Resolution forms"? Really? How many different ways of not getting work done do you need? Apr 13, 2011 at 17:40
  • 2
    @Rein, it is all work. Work is not only coding. Besides, it's not one person's. In small organizations where Analysis, Design, Coding, Estimation is done by one person, it's like hell indeed but with large teams with specialization it's not a big deal.
    – M.Sameer
    May 14, 2011 at 0:42
  • 4
    @AdityaGameProgrammer, @Rein Henrichs: I don't understand your comments. Do you suggest not doing planning and management at all? Of course, it's ok to start coding directly if the project is done by one person, and the change is easy to implement. But what about large-scale projects, and changes which can have a large impact on the different parts of a project? Jun 12, 2011 at 18:23

4 Answers 4

7

The templates I have seen for impact analysis where made inside the company I work for. We use it to evaluate Change Requests and before working on them (and possibly to reject some). It had sections like this:

  • Impact on Requirements: In this section the Analyst writes what needs to be changed in the Use Cases to support the change requested.
  • Impact on Design and Architecture: In this section the architect and the designer mention which parts of the model need to be modified or redone to support the change.
  • Impact on Test: The QC writes the test cases need to be updated.
  • Estimation and Impact on Schedule: The project manager estimates the effort needed and the cost of the change and the impact on project schedule.

To cover all possible impacts you need to walk through the dependencies. If you have Bidirectional Traceability Matrix it will make it easier.

We used the above order because the designer will need to know the the impact from analyst point of view to get better insight of the change and so does the tester need to know the opinion of the analyst and the architect. Similarly, the PM needs all the information to know the cost and schedule.

We used this with CRs but you can use it with bugs the same way. Also, if you need to do this to choose between several fix solutions to solve the bug, you will need to repeat the impact analysis for every possible solution and consolidate all data into one Decision Analysis and Resolution (DAR) form to know which solution is the best. In the DAR form you should add some evaluation factors like future maintainability or other factors that are not included implicitly in the impact analysis. Then give each factor weight and give every solution score in each factor. Finally multiply and sum score*weight and choose the best. Note that the cost may be included in the factors or the PM may have another opinion.

2
  • 1
    That sounds… burro-cratic. (That is, it sounds like you're being run by donkeys.) May 13, 2011 at 19:47
  • 3
    @Donal Fellows, That was recommended by CMMi consultants and by process improvement consultants from IBM.
    – M.Sameer
    May 14, 2011 at 0:38
4

I believe with any documentation that the agile approach is a good one. Now, there are some misconceptions out there that agile means "no documentation or analysis at all" but that's not the case. The things I've read about agile say, "use what works." I take that to mean the document should be of length and detail commensurate to the task.

Templates can be helpful as a checklist, but I would not require every section to be filled out for small or low-risk changes. For a one line change, maybe you don't need a doc at all. I've never used a template for an impact analysis document, but I regularly deal with business requirements or technical specs. A template can be too restrictive; a good guideline is instead to consider who the audience will be. If it's for managers that are not technical, focus on the business justification for the change. If it's for technical people, provide a little background so a new person on the team won't be lost and give them enough to get going if they have to support the change. Also, if you want something even more friction-less and lightweight, don't use a doc at all, put it on a wiki.

Information to include:

  • Brief description of issue
  • Explain or show example of how defect is causing failure and/or inefficiency
  • Include estimate of complexity
  • Include estimate of cost and time for fix

That's a decent minimum. The other post highlighted some pretty heavy CMMi stuff from IBM; that's great if you have the time and resources for it (and when you're building systems for NASA where human life is at stake, then people better be serious about it) but for small teams you probably don't need to be that heavy. Be careful with the estimate, as always. Managers are prone to assuming an estimate is the actual.

Note that there are dangers in the agile approach. Some developers do think it means, "no docs needed, just start hacking away" (which might be OK in some situations). Also, others will take the latitude given the task and simply write really crappy docs that don't really help (not necessarily OK in most situations). Part of the problem is that writing well takes some effort, skill, and time; most of us are short on at least two of those things ;)

I've always been big on documentation because it proves you at least put in enough thought to qualify as having a plan. But in my old age I've also come to appreciate that too much documentation can itself become a maintenance hassle, and that not enough people care enough to keep documentation updated.

1

Impact Analysis document is indeed required in large scale project specially where the programmers are working geographically in different locations.

The Impact Analysis document should be approved by the lead to make sure that the change won't affect the other component which is working fine in production.

Impact Analysis is required to make sure that the requirement is completely understood and all the components to be changed are identified to avoid re-work

The Impact Analysis is required for accountability from client stakeholders too. Otherwise, when an issue occurs post deployment the developer becomes the scapegoat.

The Impact Analysis is the base for estimation. Without that the estimation does not have any stand. It may be too high or it may be too low. With Impact Analysis if the actual effort exceeds, it is easy to explain as well.

-2

Here you have a normed template for an impact analysis report. It's customized for a specific branch of industry, but nevertheless is has useful sections that can serve as inspiration to write your own document.

The link: http://www.itu.int/en/itu-d/projects/documents/templateimpactanalysis.pdf

Cheers

3
  • Recommended reading: Your answer is in another castle: when is an answer not an answer? "let me be clear: this sort of response is not an answer. If you see this, flag it. Moderators, if you see it flagged, delete it"
    – gnat
    Apr 25, 2017 at 20:28
  • Actually I disagree. My post IS an answer, an answer specifically for bullet #3 of the original question "Are there any known formats / templates for this document?". So there you have one from a Telco´s board. Maybe is not specifically tailored to software development, but there are some interesting sections in that pdf that can be used as inspiration to build your own Impact Analysis template. Before you discourage posts analysed by your own biased opinion, it would be interesting to know what the original user that posted the question thinks about my input. Cheers.
    – Nano
    Apr 26, 2017 at 13:36
  • good point - agree that this indeed makes it formally qualify as an answer (while making the part of the question it addresses a blatantly off-topic resource request)
    – gnat
    Apr 26, 2017 at 13:45

Not the answer you're looking for? Browse other questions tagged or ask your own question.