Lessons learned migrating complex software
summary
A yearlong incremental migration moves Songkick from Angular 1 to React using the strangler pattern and ngReact to render React inside Angular templates, shipping the first migrated listing date in a day. Unit tests move from Karma to Jest, acceptance tests run with Protractor and Selenium, and the queue is rebuilt over two to three weeks. Prioritization uses churn and bug frequency, a repo markdown knowledge base captures gotchas, daily small deploys minimize risk, and long‑running bugs in payments and queues get fixed.
AI-written summary · about
chapters (15)
- 0:00Intro
- 0:35Migrating complex software @Jack_Franklin
- 6:41We shipped migrated code the day after starting this migration.
- 10:30Unit tests are coupled to the implementation code.
- 10:47Acceptance tests Automated tests that are entirely decoupled to the application code.
- 13:20Pick work based on bugs and churn rate, not code quality
- 17:29A migrated codebase is not a perfect code base
- 22:05Migrations are a good excuse to upgrade your tools.
- 22:40The most important people to convince are not in your tech team.
- 23:12And they don't care about frameworks
- 24:29Fix bugs that cause pain for other departments
- 27:15Takeaways
- 27:39Cross business communication is so important.
- 27:49Prioritise based on pain points in your current application
- 28:01Have metrics to track progress internally and externally
related talks
32mThe How, What and Why of Migrating to ReactJS
28mLessons in Managing Technical Debt
21mMigrating critical apps to React
32mMigrating from Angular to React
26mHow to rewrite enterprise application into React ...
40mHow I learned to love React
27mMigrating Safely to React
57mBuilding Scalable, Maintainable Apps Using TypeScript and React
