Cloud Computing is by no means a fledgling industry. Its roots go back as far as 2006, some argue a bit further. Regardless, as an industry that is more than a decade old, it is not new. While cloud computing is in its infancy, especially in the ERP space, that is less a statement about its age or the number of vendors with enterprise solutions, and more about its maturity and the number of challenges it presents. Truth be told, cloud computing is like a hormonal teenager that thinks it is ready to take on the world and make its own decisions without any parental guidance/supervision. This immaturity has spurred Premier to develop solutions that enable organizations to be successful while the Cloud solutions grow up.
One of my Senior Engineers, who is also one of the longest standing employees in the company, made a very interesting observation:
“Regarding the relative immaturity of cloud technology, and the multitude of very different methods of importing/exporting data, it reminds me of the heyday of mainframes. One reason that Applaud was written to support so many DB and Import file types, and so many data field formats, is the wide variation across various mainframes (and mini-computers) which evolved semi-haphazardly over so many decades”
Most providers of cloud-based services offer a robust feature set for their respective industries. That isn’t the real problem when it comes to maturity. The real problem comes from a data migration perspective and the requirement that adopters migrate their existing data into this new cloud-based solution.
Premier has been fortunate enough to be trusted by many clients looking to migrate their legacy data into several cloud-based solutions. While I can’t speak to most of the more intimate aspects of those projects, I can speak from a more unique position. In each of these projects it falls upon my team to develop custom solutions to many of the more challenging roadblocks. Through these experiences we have first-hand knowledge of and develop solutions that address the fractured and clunky means of uploading and validating data within them.
So, what are some of the challenges?
Possibly the most important challenge is importing/uploading legacy data into the fresh new instance of any cloud-based solution.
Looking at 5 different cloud-based solutions, chances are they all have different ways of importing/uploading data. One might be through web services. Another may provide an Excel template-based import. Or the vendor may require you to stage your data in files and allow them to load your data. Whatever their method, the lack of a standard across platforms, or even within a platform, presents the challenge of additional development to load the legacy data. Given the web-based nature of most of these import/upload interfaces, there are typically concerns over performance and internal limitations because cutover times need to be fast, and it's not acceptable for web-based interfaces to time-out while the data is being processed.
Take Oracle ERP Cloud applications as an example. They have multiple modules that represent various business operations. Some use Excel templates for importing. Some use a method called ADF (Application Development Framework). Others require the use of various web services, many of which are used in a record-by-record fashion or with some batch limitation. Another example is Workday, which has a method that takes an Excel spreadsheet and converts it into XML before it is ready for import.
This inconsistency within and across Cloud applications increase the difficulty for clients and represent one aspect of the immaturity of the solutions.
Given some of the complex rules necessary to transform the legacy source data into the expected format of the target system, robust data validation/verification tools are necessary for data migrations to be successful.
Blindly uploading the data without verifying it is foolhardy. Unfortunately, many of the solutions don’t have user-friendly ways of querying the data. This makes it difficult to develop validation reports that can be automated and plugged into the conversions so that problems can be caught early and dealt with. One example is how Oracle recommends to query/validate data within its applications.
BI Publisher is Oracle’s recommended tool to query the data within Oracle ERP Cloud and is a powerful for one-off reporting. This tool is very powerful and quite useful for one-off reporting. In order to leverage this tool, for automating validation, my team developed a scriptable interface for BI Publisher. This enables us to execute targeted queries that isolate portions of the total dataset. With this interface, validation can be done in a more efficient manner and can be more easily integrated into a conversion process that reports inconsistencies in the target data.
Bugs are the bane of every project and enterprises today tend to release solutions that are much less stable than they should be. This is generally due to some internal cost/benefit calculation that suggests polishing it off is more costly than rolling it out and working through the bugs as they come in. The problem with this model is that the service areas become inundated with requests and the developers find themselves buried in a mountain of backlog.
Cloud-based providers are no different. We have seen many projects that result in a backlog of bug reports and delays due to either:
- Faulty programming
- Poorly planned integration
- A general lack of knowledge/documentation of how a solution “actually works” as opposed to how it is “believed to work”
- Templates that don’t match the processes they belong to
Every project will encounter bugs, the question is merely how much padding needs to be added to the timeline to account for those delays. Experience with each solution is the only way to guide that decision.
Cryptic Error Reporting
Along with the bug/stability challenges listed above are the unclear/short/non-descriptive/cryptic error messages that frequently accompany the bugs and crashes.
Good programming results in clear, user friendly error messages that help the user understand what went wrong, what to do in order to rectify the problem, or provide some direction as to where to find the help needed to correct any issues. Unfortunately, the model that has been standardized by the tech industry titans is not one of clear, descriptive, and informative error messages.
Today, cloud-based solutions continue to follow that model. Generic error messages like “An internal error occurred” or “A parsing error occurred” or “An error occurred contact your system administrator” can be seen throughout cloud-based solutions. Generic error messages like this leave no real course of action other than submitting a ticket into the queue, waiting, or moving onto something else. The tools that my team have built and Premier’s institutional knowledge deciphers many of these types of errors. However, these genericized messages illustrate the level of maturity of some of the cloud solutions.
Bottomline, it is important to plan on being flexible with timelines and order of operations so that when these problems occur, the project isn’t crippled or faced with long delays.
There is no doubt that cloud solutions are powerful and will continue to be where the market heads. As various industries expand into this arena, it is important to keep the above challenges in mind. Until the maturity of these solutions catch-up with the demands of the industries implementing them, one must be prepared to pivot when necessary and/or shift resources towards finding creative ways to work as roadblocks arise.