Rewrite or Transpiler - How to move away from a proprietary SAAS solution

We are using a Software as a Service platform that allows to create custom code which integrates in the platform an all its features (dialogues for common objects like Account, Customer, Adress, and so on) and a GUI Desginer to create dialogues and Reports. The plattform uses a proprietary strongly typed, object-oriented programming language and a proprietary database. We are facing multiple issues the current implementation has bugs the specification (requirements, expected behaviour) may be incomplete and is distributed over around 2500 jira issues the implementation (the code written) may already deviate from the requirement (incomplete implementation, misunderstanding) or just buggy the external team is new and took over the code from the previous external team the platform has restrictions regarding mass data handling (creating 15 million rows (15 000 000) during an import proves to be challenging budget for the external team size is tight internal employees (apprentices) are available but are inexperienced internal organisational politics are playing a role as well Is this a duplicate? I do not think so Considertaions before rewriting a software component from scratch is about rewriting parts of the software: "This is not a BIG rewrite because we are not going to switch languages or frameworks" This question is more about how to deal with legacy code and extend it. What process to get away from a 10+ years old frontend is more about cleaning up and gradually standardize. But we would need to rewrite a part of the GUI because the framework for the frontend seems to be partly dependend on the SAAS platform or proprietary. Migrating from legacy database schema, rewrite legacy or sync to new is only partly applicable - should we keep the old database schema or create a new one and migrate the data later after the rewrite is done. Transpiler or rewrite? My very basic understanding of ANTRL is that with the help of a grammar file code can be translated / transpiled from one language to another But this does not solve that the translated code calls classes and methods for the proprietary framework that do not exist in the new target framework (maybe Asp.Net) There is a possibliy inactive open source library that may convert some calls to the proprietary library to and outdated Asp.Net version If we go the transpiler route we have to tackle inexperienced with ANTLR and the lexer. parser, codegenerating process rewriting the transpiled code to use the most recent classes of Asp.Net 8 creating test cases for the transpiled code to verify that it does behave as expected Deal with the design decions made (object names, object relations, which object / class takes care of what) Live with the database schema where some decisions could be based on the restriction the proprietary database has If we rewrite from scratch (that one should never do and without losing sanity) we could start creating test first create a new database schema take care of data migration after the new system can take over (big bang switch) What are your thoughts and experiences?

Feb 3, 2025 - 05:06
 0
Rewrite or Transpiler - How to move away from a proprietary SAAS solution

We are using a Software as a Service platform that allows to create custom code which integrates in the platform an all its features (dialogues for common objects like Account, Customer, Adress, and so on) and a GUI Desginer to create dialogues and Reports. The plattform uses a proprietary strongly typed, object-oriented programming language and a proprietary database.

We are facing multiple issues

  • the current implementation has bugs
  • the specification (requirements, expected behaviour) may be incomplete and is distributed over around 2500 jira issues
  • the implementation (the code written) may already deviate from the requirement (incomplete implementation, misunderstanding) or just buggy
  • the external team is new and took over the code from the previous external team
  • the platform has restrictions regarding mass data handling (creating 15 million rows (15 000 000) during an import proves to be challenging
  • budget for the external team size is tight
  • internal employees (apprentices) are available but are inexperienced
  • internal organisational politics are playing a role as well

Is this a duplicate?

I do not think so

Transpiler or rewrite?

  • My very basic understanding of ANTRL is that with the help of a grammar file code can be translated / transpiled from one language to another
  • But this does not solve that the translated code calls classes and methods for the proprietary framework that do not exist in the new target framework (maybe Asp.Net)
  • There is a possibliy inactive open source library that may convert some calls to the proprietary library to and outdated Asp.Net version

If we go the transpiler route we have to tackle

  • inexperienced with ANTLR and the lexer. parser, codegenerating process
  • rewriting the transpiled code to use the most recent classes of Asp.Net 8
  • creating test cases for the transpiled code to verify that it does behave as expected
  • Deal with the design decions made (object names, object relations, which object / class takes care of what)
  • Live with the database schema where some decisions could be based on the restriction the proprietary database has

If we rewrite from scratch (that one should never do and without losing sanity)

  • we could start creating test first
  • create a new database schema
  • take care of data migration after the new system can take over (big bang switch)

What are your thoughts and experiences?