The situation
- The nGenius Pulse UI was built entirely on AngularJS, and AngularJS was going end of life on June 30, 2021.
- Discovery notes counted over 200 pages to migrate, and few engineers were fluent in modern Angular.
- NETSCOUT had to decide whether to migrate in one release or in several, and it also wanted a dark mode.
What we found
- The UI relied on $scope and $rootScope contracts.
- Test coverage was lacking.
- The startup flow was unclear.
- State and cache handling were unclear.
What we did
Architecture assessment
We reviewed the AngularJS page framework and documented goals, findings and a proposed architecture.
Hybrid proof of concept
We built an Angular 9 and AngularJS hybrid proof of concept on the site overview page, with a proposed page framework and hybrid router code.
Incremental migration path
We recommended Angular Elements over ngUpgrade and an AngularJS to Angular bridge, so current development could continue during the migration.
State and test strategy
We recommended separate data services, caching, NgRx state management, and unit and end-to-end test coverage of at least 90%.
Build-out plan
We laid out a three-quarter plan in 3-week sprints covering TypeScript, the hybrid app, dark mode, NgRx state, tests and cross-training.
The result
- NETSCOUT received the nGenius Migration Plan in March 2020.
- NETSCOUT moved into a prototype phase on the site overview page.