April 10, 2020
Change control in software engineering
In an increasingly interconnected world where information is so readily available, and globalization is making the world smaller, change control is needed to adapt to the demands arising due to these disruptions.
For any project a company works on, there are bound to be modifications along the way, this is necessary for improvement. As such, it is essential to have change control systems in place to allow for such eventualities to occur. Software engineering is no exception to the need for change control management.
Changes can be classified as planned or unplanned. Possible unplanned changes can be anything from a server crashing to dealing with malware and failed hard drives.
In contrast, planned changes, such as reboots or upgrades, are deliberate decisions implemented to further the project. If not executed correctly, planned changes may result in a production outage – an occurrence wherein systematic errors impact multiple users and affect their output.
Change Management vs Change Control
Change management usually refers to the process of controlling and supervising incoming change requests to lessen the possibility of disruptive, unnecessary changes. In contrast, change control refers to the actual process of submitting the change, recording it, and assessing it to better the overall results.
Change control falls under the category of change management and describes the measured, structured process towards incorporating adjustments to an existing IT system. This is a highly necessary part of the process as it prevents aspects such as the incorrect new implementation of changes from occurring as this would only cause disruptions and mistakes.
Change control is a formalized process that includes aspects such as time, policies, the project schedule, and the resources required to meet all specifications. Due to the continual external considerations, it may be necessary to employ a new set of tactics to achieve an ultimate long-term goal. These considerations could include things like customer demands adjusting based on the market, different technologies rising, competition, and potential high input costs.
When a project strays out of line with the original plans, enforcing change control can help get everything back on track.
Benefits of Change Management Control
- Sometimes the bigger threat comes from not changing anything in existing systems as it can leave a company behind – especially in a rapidly transforming industry such as software engineering.
- Change management control can help to reduce costs
- It gives your company a competitive edge
- Improves the quality of work
- May result in improved communication, collaboration, and teamwork.
Steps for software change control
1. Plan for the change
A step by step of the necessary change is the first thing to map out for change control. This plan should also include the delegation of responsibilities, and all the processes needed to execute it.
The supporting activities necessary for the process also need to be incorporated here. These include aspects such as requesting vendor support if needed and informing potentially impacted parties of the temporary unavailability of these services.
2. Assess possible risk and affected areas
Risk assessment is the second step in change control. Here you consider the proposed change and weigh up the pros versus the cons of implementing that change. It involves assessing potential mistakes, as well as the impact on other areas of the business, which may experience inaccessible systems as a result.
Risk assessment can even include aspects such as frequent power outages in the server room that could have considerably worse implications should the outages happen during the change. Some may consider this over-cautionary, but you will thank yourself in the long-run if you plan for this and implement the change correctly.
3. Defining Success
As with all tasks you undertake, defining a clear-cut goal is a necessary step for successful modification. Success should also be defined and laid out from the viewpoint of the final user and administrator. This would include an error-free outcome with an outline of what services are available following the implemented change.
4. Backup plan
At the risk of sounding rather pessimistic, it’s a good idea to consider even the worst-case potential outcomes so that you’re fully equipped should things go wrong. The plan should detail possible ways in which the system can fail and what to do if that happens.
Ensure that the system is backed up so that, in the event of an erroneous new implementation, all parties are not completely stuck with nothing to work with and the previous working version can be restored.
By figuring out how to undo several steps, the restoration process is much easier to deal with and manage. In doing this, it is essential to bear in mind that some backup plans may be complex or even include rebuilding everything again from scratch. Being informed helps your team manager decide whether going ahead with the change is worth it or not.
5. Testing time
Testing is a necessary part of any change control process. Not all changes can indeed be tested immediately. For example, the introduction of new equipment would require a longer-term assessment.
However, some processes go through layers. For instance, change can be implemented on test systems, and after that, stage machines, before finally reaching production systems.
6. Set a change time gap
It can be hard to find the space to set aside a window of time in which to carry out the needed changes. While this may be true, one thing to help this is to assess and find a time that is less stressful and less disruptive for others to go ahead.
Admittedly, this will not always be an ideal time (think possible 1 a.m. system change implementation), but the overall results are of less consequence should things go wrong.
7. Delegation
It is vital to have an established taskforce with pre-assigned responsibilities to allow for a smoother change rollout. This process involves assembling staff, either from one or more departments, and allocating tasks such as results testing, or assisting with any technical errors that emerge.
8. Documentation
As with any task, it may seem daunting at first. However, after a few attempts at implementation, the change should become that much more straightforward. Documentation helps this process as it allows for continuous referrals to look back on and saves time in doing so. It is beneficial to make a standardized electronic form to update as elements occur.
With any change implemented, everything in that process needs documenting, including:
- The request laying out the need for change
- The reason behind the request, e.g. which parties are negatively impacted
- The plan, testing, and staff assigned
- A risk assessment conducted and conditional success for the team and customers
- Expected completion date to work towards as a team
- Value anticipated for all stakeholders affected
Two crucial documents not to neglect are:
- The change-log: This is a document listing all change specifications such as status updates, target dates, owner name, contact details, priority, and project number.
- The change request form: This document explains the details of the required change in a clear, easy-to-understand format before being passed on to the team. It includes details such as the change type, cost and time estimation, advantages of implementing proposed changes, how significant the change is, and the authorization information.
9. Analyze and review
Looking at something for too long can easily cloud one’s judgment of how complete a task is or isn’t. The benefit of working in teams is that you can call on various managers and colleagues to step in and assess your change process.
Peer review is a useful process as it ensures a magnified, multi-disciplinary look at the process. This is known as “CYA protection”. It enables individuals to spot areas of weakness and additional considerations not thought of, as well as additional suggestions to the plan.
This analysis is also necessary to get sign off on everything by a project manager, stakeholder, IT or Lead developer, to be able to pass on the message to all other departments that will be impacted. The submission for review can occur in two phases, the presentation of the proposed change, and the project team meeting to discuss the impacts.
10. Implementation of change
Once the change control has been signed off on, a date for implementation can be set and rolled out. With any implementation, however, comes assessment. All stakeholders are required to give feedback to assess their satisfaction with the adjustments.
Unsatisfied parties result in a project reassessment and review. Satisfied parties ensure that the change request is completed.
Note: It is crucial to bear in mind that not all employees are open to change. As much as the plan itself may appear foolproof, staff may hold up different parts of the process in their opposition to change. That is why change control management is so important.
Conclusion
Change control management is necessary to incorporate aspects such as logging work, scheduling breaks through monitored systems, and providing an incentive for additional hard work put in to facilitate the change. Controlling and managing required changes helps keep all aspects of the project in order and on track.
Share article