SupportTheChange

PublicReengineering Wiki

Context You are reengineering a system. The project will affect the User Interface (UI) and/or functionality. The end result will affect the users' working practices. User acceptance is important for the success of the project.

Change is necessary, but the users will be affected. If the users do not support the change the project will suffer during execution and deployment. The users can offer valuable input to the project, but tapping their expertise is difficult, time consuming and may involve having to satisfy too many additional requirements.

Problem How can change be managed during reengineering?
Solution Involve the users to gain their acceptance and contributions. Ensure you understand the legacy and the domain. Make it clear what the project will deliver, for instance no new functionality; just a change in architecture. Adopt a phased migration strategy. Second users to the development team and interview others. Produce prototypes and let users provide feedback. Train users away from their normal working environment. Minimise changes to the system's external views wherever possible. Test the system extensively at the end of each phase and before deployment.
Consequences People are often reluctant to change. The effect of change will manifest itself in people finding endless ways to rubbish the new and applaud the old, reverting to old ways, committing sabotage and even having to take time off through a stress related illness. Resistance will happen so it is best to be prepared.

You will gain more credibility with users if you understand the domain and the legacy system. However it may take time to obtain this status and it will be easy to loose if subsequent problems arise.

Making it clear to users what to expect serves two purposes. It lessens the shock of change by making them aware that change will happen. By being explicit about the scope of the change, they will also be less inclined to insist on new features which could affect the main objectives of the project.

The phased approach introduces change gradually which should lessen the impact on users.

If users are involved and consulted, they gain a sense of ownership and empowerment. They will also be less inclined to offer good advice after things have gone wrong. However, it is unlikely that all users can be directly involved in the project and those that are not may feel disenfranchised - unless they feel their seconded colleagues are their representatives.

Prototypes can show users what is possible and what has changed well before they are faced with having to adapt during their normal work.

When faced with a new system users may feel intimidated. By providing training they can become familiar with the new situation away from their normal working environment and pressures.

Changing UIs or printouts may be unavoidable, but if the changes can be minimised the users will provide greater acceptance of the new system. 

When the users are disrupted by errors in the new implementation, they will be less inclined to trust the system, even when the errors are fixed. By comprehensive testing, the risks of them encountering problems are reduced. Also, since an incremental migration strategy is being adopted, bugs are easier to find and quicker to fix in each small new release.

Whilst coercion may be useful in some circumstances, for example offering rewards in return for supporting the project, it may be less appropriate here. Firstly, rewarding users for silence and compliance will not encourage positive support for the project, whereas rewarding developers for enthusiasm and action will. Users are less well placed to take action and artificially heightened enthusiasm may overload the project's requirements. Secondly, it may be more expensive to reward users than developers since there will probably be more users. Finally, for some, rewards will not affect the perceived stress that change will create.

Related Patterns For the phased migration consider MigrateIncrementally . When dealing with UIs consider LowEffortUserInterfaceReengineering and to gain system and domain understanding consider ReverseForwards.
Known Uses TilleySmith96, PlaisantEtAl97 and DuncanLele96 have all taken account of users' natural resistance to change.


Related pages: ReengineeringPatterns

This page last edited on 5 January 2000
 
 
  • Search for: