The initial project was developed using the newest technologies and had visionary architecture similar to Spring. This solid foundation enabled the introduction of numerous features without requiring significant investments in migrating or updating existing technologies. However, migration became a top priority in order to have security, performance, compatibility to newer systems, continuous support and smooth user experience.
Any big project needs constant refactoring. Refactoring is an essential part of maintaining the health and long-term viability of a software project. By improving maintainability, scalability, performance, technical debt, and code quality, refactoring can help ensure that a project remains adaptable, efficient, and sustainable over time.
Another thing that keeps software projects alive is testing. Automatic testing offers faster feedback, continuous integration, increased accuracy and speed up the testing process and efficiency of software development.
We did some research and/or the migration itself for:
- Migration from Java 8 to Java 11
- Migration from Log4j1 to Log4j2
- Research and analyze database caching and database performance improvements .
- We created an integration testing framework and multiple tests that run every night.
- We built some APIs, a light license feature and refactored various parts of the code.
- Now we are introducing Spring Boot and additional tools around this ecosystem.
- Most importantly we built our relationship with the client, we help, trust, learn, grow together and we are happy to be part of this project.