Are you keeping up with your continuous updates?

Welcome to the world of continuous updates introduced by cloud business applications. It has the promise of avoiding costly disruptive upgrades that take place every 5 to 7 years in the on-premise world. The more functions the business application touches - such as an ERP system, the more nervous the companies get with the notion of frequent refreshes to their systems.  In the end, every update has the potential to cause a business disruption. So, what is the best strategy to keep up with these updates?

First, we need to set the expectations at the beginning. It is impossible to find all the corner cases. We cannot chase ourselves down to a rabbit hole trying to be perfect. What matters is the basic business continuity. For example, we should be able to take an order, fulfill it, ship it, invoice it, etc. Those matter much more than posting a fixed asset depreciation journal once a month. Thus, you need to set your criteria clearly upfront.

Next is the functional testing of the update. Most companies make the mistake of testing standard functions such as creating a sales order, receiving a purchase order, etc. That is the job of the software vendor. You do not have the time and money to test generic software functions. You should rather focus on what is unique to you - your customizations or extensions. Thus, you need to create test scenarios to validate those tailored functions.

The most fragile parts of the solution tend to be the integrations since they are very specific to the customers' unique system footprints. They need the most testing. Luckily, it is only your part of the interface that is changing and not the external system part. The way you handle the testing changes with the direction of the data flow. For inbound messages, you can prepare a snapshot of sample data upfront and push it through the system and check the results. For outbound messages, you need to export your data in file formats such as XML and use file comparison tools to watch out for the discrepancies between the desired versus actual outcomes. 

In order to keep up with the frequent updates, you also need to automate both functional and integration testing. This will require you to have a separate software environment with testing automation tools. Most cloud solutions offer their own set of tools to help their customers and partners. You can then build a set of functional scripts to test your customizations using such tools. You can prepare inbound data snapshots and the desired outbound files for your integration testing. Regardless of how fancy the automation tools are, you still need a human being to watch over this process. The ultimate mission is to make this testing process as repeatable and fast as possible.

If you are interested to learn more, please connect with me on LinkedIn, follow me on Twitter, or watch me on YouTube.

My name is Cem and this has been another gem.

Previous
Previous

Agile versus waterfall. Well, how about agifall?

Next
Next

How to handle executive turnover during your project