Current Approach and Rationale
After initially considering a complete rewrite, discussions with key stakeholders highlighted the risks of this method, particularly the high level of unknowns and the potential for unexpected setbacks. The new, incremental approach aligns better with manageable progress and adaptability to changes, making it easier to maintain stability and gain faster feedback from smaller, iterative improvements.
Short-Term Plan (Current Focus)
- Incremental Refactoring by Ticket:
- File-by-File Refactoring: As new tickets are processed, files are refactored on a case-by-case basis to make code more readable and maintainable. This incremental approach reduces the immediate need for a full system rewrite and allows improvements to be made without overwhelming disruption.
- Refactoring Criteria:
- New Reports: Refactor any code required to generate new types of reports, prioritizing readability and organization.
- Significant Report Changes: For existing reports undergoing major modifications, refactor the code to improve clarity and structure.
- Initial Refactoring Success:
- Applications Refactored: Two applications have been refactored so far, with improved turnaround times on subsequent ones as the process becomes more streamlined.
Medium-Term Plan
- Gradual Introduction of a Modern Language:
- Language Selection and Integration: Begin integrating a modern language within the codebase, targeting sections most in need of readability and modularity improvements. This is still under consideration, with final decisions to follow.
- Hybrid Incremental Refactoring: Continue with the short-term approach but with an added goal of rewriting targeted files or modules in the new language, which will ease maintenance and align the codebase with more current technologies.
- Build Knowledge and Speed in Refactoring Process:
- Broader Application: Expand the file-by-file refactoring approach to more applications, solidifying practices and accelerating overall progress as familiarity with this process grows.
Long-Term Plan
- Foundation for a Scalable New Project:
- Transition to New Codebase: Once a significant portion of the code is rewritten in the modern language, establish a new project that builds on this refactored foundation.
- Expand CDS Scalability: This modernized base will allow more flexibility to streamline and scale the CDS platform, enabling easier feature additions and making it sustainable in the long term.
- Experimentation and New Ideas: With complexity reduced, begin exploring optimizations and innovative ideas to enhance CDS’s flow and data handling capacity, providing a robust foundation for future growth.
This incremental, adaptive modernization approach provides stability while allowing for ongoing improvement. By moving incrementally and introducing a modern language gradually, the team can manage risks effectively while keeping the codebase agile and ready for future scaling.
Comments
0 comments
Please sign in to leave a comment.