

Impact Analysis for Support Driven Development - DZone Agile
source link: https://dzone.com/articles/impact-analysis-for-support-driven-development
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Creating an Impact Analysis for Support Driven Development
Learn about the use of an impact analysis, what it is, and how you can perform one with Support Driven Development in mind.
Join the DZone community and get the full member experience.
Join For FreeNote: This is the 3rd post in the series around Support Driven Development. If you have the time and wish to start from the beginning, you can find the intro here.
One of the leading reasons a project takes more time than was estimated is because a proper impact analysis was not carried out. In some cases, they may not be done at all. If and when an impact analysis is carried out, rarely is there thought put into how the new development is going to be supported.
In this post, we’re going to go through what an impact analysis is, and how you should do it with Support Driven Development in mind.
An impact analysis is usually done by a development team when they are analyzing the impact of the changes they will be making on a deployed product or application. It gives a clear view of what areas of the project may be affected due to the change that is being planned as well as the timelines involved.
Generally speaking, an impact analysis is carried out to understand some or all of the following:
Possible outcomes of implementing the change on performance, user experience, functionality, etc.
The files, models, and documents that may have to be modified during the course of change
The sequence of the work that needs to be done and the effort required to make the change
Any external dependencies that may cause the change to be delayed or blocked
Here is a very basic impact analysis table that you might see when one of these changes is being carried out. Remember the password reset example I used in the first article? Let's go back in time to pretend that this work is being carried out to implement the actual link where a user can request a change of password.
Question
Answer
Give brief description of change?
Adding a “Forgot Password” link to the login page for users to request a password reset email.
What Area/Page is being changed?
The Login screen
Is there a change in functionality?
Yes, once the change is made, the user will be able to request a login change themselves
What API’s will have to be changed?
Yes, the Authentication API
Is there a change to the UI?
Yes, we will be adding a new clickable link below the password field that leads to a new where the user needs to put their email into the form
Will there be changes to the tests? (Smoke tests/Functional Testing)
Need a new functional test to click the link
Are there any PCI fields being added?
Email will be entered on new screen
Will the encryption on any fields be changed?
None expected - email retrieved on the new password reset screen may need to be hashed in the logs
Will any documentation need to be updated?
User guide will have to have instructions changed for new login page design and instructions given for resetting password
Will there be changes to the DB?
None expected. This will use all existing fields
All of these questions are valid and the answers will give decent guidance to the developers and their work, but if you read back over this, the support team and how this feature is to be supported have not been considered at all. This is a common problem throughout software development as the dev and product team generally don’t need to know how a product is supported as they are not involved in the day-to-day support of the platform.
If your team does not do an impact analysis then you should definitely start one. You can’t always think of all of the ins and outs that may impact the different areas of the platform and if all of the relevant questions are saved in a list like the above, it can be easier to hand this task to others.
Keeping Support in Mind
Two things can be done to improve on the above Impact analysis checklist.
Firstly, you can consult your support team and ask them for some questions to add to the list. Getting support to add their own questions will cover the questions you and your development team didn't think of, while also making the support team gain a bit of ownership in the work. Having a good working relationship between the dev team and the support team should help to improve the working environment and could even reduce the staff turnover in the support team.
The other thing you could do is add a “Support” Column to the impact analysis, where the support team can add their own comments or requirements. Once the product/dev team has done their first draft, support can fill out their section with their own thoughts. That will then be passed back to the product/dev team for further comments and clarifications.
So, with that in mind, let's revisit the above table. I’ve added the new support-related questions to the bottom. The dev team’s responses to the support answers will be in italic.
Question
Product/Dev Answer
Support Answer
Give brief description of change
Adding a “Forgot Password” link to the login page for users to request a password reset email.
Send password reset button will also be added to support UI
We should add the option for support to send a password reset email to the customer if they phone support.
What Area/Page is being changed
The Login screen
Support UI
Change support UI with new button
Is there a change in functionality?
Yes, once the change is made, the user will be able to request a login change themselves
Support will also be able to send them their password reset
What API’s will have to be changed?
Yes, the Authentication API
Is there a change to the UI?
Yes, we will be adding a new clickable link below the password field that leads to a new where the user needs to put their email into the form
Also will be a button beside the user’s email on the support UI “Send password reset email”
Add the support button onto the user management page if possible
Will there be changes to the tests? (Smoke tests/Functional Testing)
Need a new functional test to click the link
Are there any PCI fields being added?
Email will be entered on new screen
Will the encryption on any fields be changed?
None expected - email retrieved on the new password reset screen may need to be hashed in the logs
Will also add the user ID to the support UI in place of the email. User ID is searchable in the logs
We use this email when searching the logs for issues, we’ll need some alternative way to search the logs if this email will be hidden
Will any documentation need to be updated?
User guide will have to have instructions changed for new login page design and instructions given for resetting password
Will there be changes to the DB?
None expected. This will use all existing fields
Support
Does training/support material need to be provided to support staff?
Yes, the user guides will be updated and sample logs will be provided.
Providing us with a sample log line should be sufficient here
Will the support UI change?
No
Yes, adding the user ID to the support UI along with the button to send a password reset
See above
Will any logs be changed?
We’ll have to hide the email field from the logs due to GDPR
If we can search with the user ID then this is not an issue
What kind of logs will be added?
Logs will be added for the sending of the email, requesting the password reset and the submitting of the password form
Create a task to add the logs to the support UI Audit log
Please make sure to add this password reset to the customer’s audit log on the support UI.
Also log when a support member clicks the send password reset button
What actions will be logged?
As above
Will a correlation ID be added to the logs?
Yes, will add correlation ID to all above actions
Please provide sample log lines when work is underway
See where I’m getting at here?
With that table alone, we’ve solved or planned for almost half of the issues I originally raised in the example in my first post. Have any other support questions you’ve had to add to your own impact analysis? Feel free to let me know in the comments!
Recommend
-
11
Essential Engineering Skills For Every Software Architect
-
9
Configuring Okta as a Client Provider in MuleSoft Anypoint Platform ...
-
5
Live From INTERACT: Microsoft's Developer Velocity Research
-
10
Software Development Time Estimation: Best Ways of Calculation ...
-
13
Impact of AI on Software Development and Testing: Ethical and Productivity Implications of Intelligent Code Creation (ICC)...
-
11
QA To Support Software Development Life Cycle: Best Practices To Follow ...
-
14
Software Development Trends for 2022: Remote Work Is Here to Stay ...
-
9
Software development is quite a critical job. All the team members need constant efforts to bring out the best. We have to focus on every minor and significant aspect of development. A minor setback can also affect the whole process and produ...
-
7
A Comprehensive Agile Testing Methodology for Effective Software Development ...
-
8
Technology for People: How to Develop an Engineering Culture and Make a Quantum Leap In Development ...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK