So what is the difference? How does the AUTOMATED-REWRITE approach deliver higher code quality?!

Thursday, 09 March 2017 15:25
Higher then what? What is low-quality code?
The vast experience we have with code migration and modernization has shown code quality to be the most challenging issue when discussing code migration automation. Most of the traditional auto–migrators we know off do not produce good enough code and in most cases require much manual work to fix and make the migrated code production-ready. This is the common perception of auto migrators which has been justly earned.
The fundamental shortfall of most of the auto-migrators is in the customizability and maintainability of the code they generate. Here are the main 3 challenges we experienced with such code:  

ScreenHunter 262 Mar. 12 12.59
  • Helper libraries are generic functions which emulate the legacy language or framework in the new environment, to make the old business code operate with little change (basically, translation only) after the migration.  These libraries would not be included in a new application written in the new environment and are possibly the most acute shortfall of auto-migrator-produced code.  They introduce proprietary code to the migrated solution and make maintaining and extending it an unnecessarily complex task.
  • Impossible or too hard to customize – auto-migrators usually operate as black box, command line driven processes.  All enterprise scale applications need to adhere to specific UI standards and coding styles, and additionally interface with middleware, data silos and directory services.  These requirements and others make customization imperative and if the auto-migrator-generated code cannot adhere to them it will not be fit for production without extensive additional work.
  • And last but not least, auto-migrator tools will usually only perform part of the migration automatically.  As described above this is partly a result of poor and limited customization capabilities.  Additionally, because security features cannot be added as part of the simplistic auto-migration, penetration testing on the migrated application will likely point to multiple weaknesses that will need to be addressed manually across the board.  These and other issues that need to be addressed manually, outside of the auto-migrator process, may prove to be some of the most complex tasks in the modernization project. 

So, how is high-quality code defined?

If the above is the definition and the reality of auto-migrator generated low-quality code, what do we mean when we expound higher code quality? 

The answer is simple but far reaching.  We mean the code quality that you would get if you were to rewrite the code from scratch with the best coders and according to highest coding standards.  No "foreign" code.  No helper library code.  No closed propriety DLLs.  Customized to the needs of the customer, including an upgraded user interface which is fully adjusted to the target form factor (or is responsive to changing form factors).  High-quality code is well structured code.  Easy to read and understand.  Short and efficient with understandable remarks.  Standard and native to the environment it targets.  No additional "generic-purpose" code, only the very code that the application uses.  No dead code.  Code that adheres to the strictest best-practices of the vendor who produced the framework and platform being used.  Architected according to common best-practices.  High performing code.  Code that was machine written accurately using one standard code-pattern process.

Sounds like utopia?  Here is the patented methodology that produces such high-quality code.
We read and understand the legacy code HOLISTICLY

ScreenHunter 256 Mar. 09 17.37
Source: GizmoxTS slide show

Based on unique algorithms for semantic code understanding, the legacy application is read and holistically represented internally.  Unlike with the traditional ‘line by line’ processors of yesterday, the holistic approach allows re-architecting to a new platform or framework, while preserving the semantics (business rules, data relationships and flow, UI element functionality).

One important benefit of holistically understanding the legacy application is that it removes the need to reverse engineer the legacy application’s business functionality, thus considerably reducing the cost, duration and especially the risk of the modernization effort.

The semantically explicit internal representation of the legacy application serves as the basis for the machine-driven process to automatically perform a large proportion of the re-architecting.  Through a process of virtual continuous compilation, the software guides the user, in most cases a software architect, through completing, refining and modifying the migrated application.

We are the only vendor in the world including a complete, flexible IDE (Integrated Development Environment) in the Automated-Rewrite solution 
ScreenHunter 257 Mar. 09 17.38
Source: GizmoxTS slide show 

The IDE is similar to the Visual Studio IDE, but is powered by the semantic understanding and continuous compilation engines.  Virtual continuous compilation allows the user to be guided in refactoring, mapping, or wider ranging re-architecting they still need to perform, through suggestions and comments.  Even more remarkably, it shows the results of those changes directly to the user, without the need to complete the migration, including error messages and warnings that further guide the user on the path to a well written and architected, optimized and modernized application.

An important task performed in the IDE is adding standard or custom security, identification and authorization to the modernized application, so that these extremely important parts of a modern application are not added as an afterthought to the product.

Here are some samples of the tools in the IDE (can we include screenshots and short caption description?)   

We are the only vendor that offers PRODUCTION READY tool-based deliveries, without any post-migration customer effort required  
ScreenHunter 258 Mar. 09 17.50Source: GizmoxTS slide show

The application re-assembly and QA are integral parts of the GizmoxTS tool-based process.  We start with the source code of the legacy application and we deliver the ready-to-deploy code of a modern, secure and tested application on your chosen platform.  The end-to-end process has a very low requirement for client personnel during most phases and does not include a post migration modification phase – we deliver to production.

Here is a description of the complete process
ScreenHunter 259 Mar. 09 17.53Source: GizmoxTS slide show 

Let us prove what we promise!

Yes, we know.  Being in the software business you have heard all manner of over-promising from vendors.  Most of them prove to be disappointing, so why "buy" our promises?

Do not "buy" them!  Ask us for a POC that proves our solution for your specific challenges. Judge the code-quality we will deliver, in all its aspects.  Evaluate other alternatives.  Ask your service provider to POC too.  Compare and decide.  Our track record shows that when we are able to present a POC and demonstrate our promises coming to life, the customer will choose the high quality choice – the Automated-Rewrite by GizmoxTS