During engagements with our clients I am often asked what is our definition of automation.
Understanding the options that are available on the market today to help with a SAS code conversion can be challenging. We often hear and use the terms brute force, manual, automated and as a service. To help one understand these terms I felt it was time I documented our approach and specifically the terms we use here at Wise With Data. The intention is to allow you an opportunity to hear it from us directly, given we are a transparent organization it only makes sense for us to share.
Manual or Brute Force
I’m going to start with the terms “brute force” and “manual migration”. In our definition, this is simply the under taking of re-writing SAS code into the new language. (ie. SAS to Python, SAS to PySpark, SAS to Databricks, SAS to AWS EMR, SAS to GCP DataProc). In the simplest form a single developer translates SAS code, converting it into the Python language. In reality, this is typically a pair of programmers, one with expertise in the SAS language and the other with expertise in Python. As the term indicates this is a manual, time consuming effort best suited for smaller SAS implementations.
Conversion software, provides the ability to automatically convert code, reducing the need for manual re-coding. Not all automation is created equal, just like Google translate does an okay job at translating my native tongue of English to other languages, it often confuses context, and on occasion I’ve called someone a donkey in their language… But that’s a story for another time. These types of software will often suggest high conversion rates, but they will not guarantee the generated code will work.
Conversion software can assist you in converting code, however one should be prepared as it often requires a lot of manual intervention to resolve challenges with context, and as such a high conversion rate cannot be guaranteed or expected. Often these automated conversion software solutions are developed by folks who have no SAS experience, and given SAS’ incredible complexities and idiosyncrasies, the conversion isn’t much better than a simple language translator.
We call these software products “Pay-and-Pray” tools. They demand you to pay upfront for a tool, and ask that you pray that the tool will work effectively for your SAS code, with no guarantee. They should at least guarantee what products (Base, STAT, ETS, ACCESS, GRID, etc.) and language elements (statements, macro, functions and CR’s, formats/informats and procedures & options) are covered, but most importantly state what things are not covered. This will at least ensure you are informed as to the tools capabilities, and the considerable manual work you will likely still face. Without SAS experts involved in the development of tools and without a deep understanding of the SAS language, they often simply say yes not knowing what they don’t know.
So where do you look for assistance when the auto generated code doesn’t work? You manually troubleshoot and convert this code, taking you back to the above option. Conversion software is often sold to and used by third parties such as consultants, solution integrators, and resellers to help reduce the manual efforts required in larger conversions. These folks often have some level of SAS expertise and will manually attempt to resolve the failures.
Our clients and integrator partners have shared with us that the output code generated by these tools is messy and bloated, and uses inefficient, outdated and deprecated techniques. They experience 100’s of extra lines of code created that do nothing, loops introduced into their code, or simply lose translation. They tell us they achieve a 50% conversion rate, and of that only 30% of the code actually usable. Sadly, this experience typically results in folks not believing in automation.
Automated Conversion-as-a-Service by WiseWithData
How do we differentiate ourselves in the automation space? Our decades of SAS expertise has enabled us to provide a much more accurate automated code conversion solution, converting more than 1,500 lines of SAS code per second (ask for a demo to see for yourself). Remember, I mentioned the complexities of SAS code? There are many ways to accomplish the same task within SAS, understanding this, as we do, means we can guarantee our converted code will work, and provide a SLA as part of our delivery model. Simply, you don’t pay until we deliver.
As such, we are more than an automated code conversion software solution, we provide a full end to end service designed to complete your migration faster and at a lower cost. Our solution ensure your original formatting and comments are fully retained, and any code modernization we make to ensure accurately functioning code is also fully documented. Our clients tell us this reduces their user adoption and learning curve. It simple to follow their original code, and understand the modifications reuired to transition to Python.
To summarize the WWD approach, we provide a simple 3-step process which can be delivered on your premise, from our cloud offering or within your cloud.
1. SearchParty – Run on your premise, by you collects and inventories your SAS environment. We provide a detailed report, and recommended migration approach that fits your needs. Prioritize the SAS processes to be migrated, and understand stale processes – why pay to convert unused processes?
2. Sprocket – Automated SAS code conversion solution operated by SAS experts and producing consistent code, retaining all formatting and comments, adding in comments as code is modernized.
3. Validator – Run on your premise, by your team or designated third parties to validate the SAS process output are identical. Developed to speed up the QA and UAT process.
There you have it, simple fast and accurate.