| Some of my rules for a big legacy code base: - don't plan or do a full rewrite - it'll almost never work - learn and use tools to automate the build system and quality assurance (jenkins, sonarqube, docker, git, etc.) - take the time to improve your skills and the skills of your team (coding dojos, experiments) - write automated tests (unit, integration, acceptance) for existing code where ever possible - write at least unit tests and integration tests for new code - do refactoring and first focus on cross cutting concerns (APIs, translations, caching, logging, database, etc.) - migrate things to well tested isolated APIs (e.g. use REST / Graphql APIs with new endpoints in the frontend and try not to use untested code for these APIs) - don't be too backwards compatible (move fast and break things) Hope it helps ;) |