One of our global clients use a financial software package to capture costs for services provided to their clients. Initial testing of an update to their collaboration software identified that an upgrade to the financial package was required to avoid conflicts between the two software products. CCM were engaged to work with internal staff and the 3rd party vendors to define and manage a project to develop and implement a new version of the financial software. The new solution would need to be compatible with both existing and emerging collaboration software.
CCM and the project team achieved the key success factor of the project – to upgrade a critical business application to resolve incompatibilities with other systems without impact to the business.
The following areas were particularly important to the success of the delivery:
1. Identify clear drivers for the work
It may be that vendor support is due to run out, an upgrade is required to resolve outstanding performance or functional issues, or there is a requirement to use new functionality. Identifying the driver will help to define the parameters of the project, setting clear objectives and benefits of the project and avoiding ‘scope-creep’.
2. Assess the size and complexity of the work involved
The technical, testing and management effort can vary significantly between a simple patch upgrade, a functional re-write and an architectural change of the product. Making this assessment early means that the timescale and level of resourcing required can be determined accurately and senior management expections can be set appropriately.
3. Understanding what is important to users and support teams in a software package is critical
It may be necessary to perform a full requirements analysis exercise to determine whether the software will meet the needs of the business or it may be more appropriate to perform a gap analysis between two versions of the software. This assessment aids the project team in determining the level of user change expected, helping to define the development, testing, training and user communication requirements.
4. Testing. Scoping the testing
Software can be deceptive. With only two user input screens, it could be suggested that a limited amount of testing would be required, however it is important to consider all input scenarios. Complications such as locale of user and language specific data entry, feeds to and from other systems, batch updates, synchronisation and operational requirements such as availability, reliability and performance should be considered. Except in very simple systems, it is unlikely that software can be fully tested and, therefore, a risk-based testing approach should be taken to include test coverage for the most likely user scenarios – as well as the most user impacting scenarios.
5. Resourcing the Test Phase
It is also important to use appropriate resources for testing. In this example we involved a specialist system testing team, piloting with end users, finance team and the operational team. In addition, testing of interfaces to other applications and services should not be forgotten.
6. User Communication
Key stakeholder groups and their needs should be identified so that their expectations can be managed. This is particularly important with software where functionality is removed, or new workarounds are required.
7. 3rd Party vendors
When dealing with 3rd party vendors it is important to build up a good working relationship. Building on clear, concise and relevant commercial documentation, using standard processes for development, testing, configuration, change and release management avoids many of the pitfalls of development projects and leads to a successful final delivery of the project. Keeping open regular communication channels ensures delivery schedules and quality expectations can be met.
Find out more
For more information on how to upgrade business critical financial software please email us.
This blog was originally posted on 6th October 2014 and was updated on 8th August 2016.