Order for dealing with FE tech debt
Status | Decided |
---|---|
Decision leader | @Oladimeji Onalaja (Unlicensed) |
Contributors | @Panos Paralakis (Unlicensed) @Tuomas Alahäivälä (Unlicensed) |
Date | Sep 30, 2019 |
Outcome | Bring all apps up to Angular v8 (variously from v1.2, v1.5, v5, v6, and v7). Remove jHipster dependencies. Move to standardised file structure. Tidy up SCSS folder. Tidy up Protractor and Cucumber tests. NGRX Observable. |
Background
There's a lot of tech debt across TIS. In FE this is the case too.
Over time, some FE devs have tried to address the tech debt, with varying degrees of success and completion.
The result is an FE beast with duplicated elements in places, that need converging into one agreed solution, and multiple areas where the codebase needs bringing up the date (e.g. Angular 5 Apps containing non-Angular 5 code, and other Apps that aren't yet Angular 5 that need re-writing with Angular 5)
Relevant data
Things that need addressing are:
Different versions of Angular in use
Removal of dependency on jHipster scaffolding
Aligning the filing structure to match best practice for Angular 5
Tidy up the SCSS folder and code
Where to apply global and local styles
Tidying up of a plethora of tests and test approaches
NGRX - observable
Options considered
| Option 1: | Option 2: | Option 3: | Option 4: |
---|---|---|---|---|
Bringing all elements in TIS up to the same, current version of Angular | V5 | V6 | V7 | V8 |
Pros and cons | Admins UI is v5 and the biggest element of TIS. Getting everything to v5 would mean we could then upgrade all of TIS to later versions of Angular more easily v5 is already 2 full versions behind the current stable version of Angular (v7). Admins UI contains lots of non-Angular v5 code within it that will need to be converted to Angular v5 first | More modern version of Angular opens up new features and addresses issues from v5 Admins UI is now Angular v6, but bringing Reval up to v6 is a large task | More modern version of Angular opens up new features and addresses issues from v6 No element is using Angular v7 yet, so bringing all of TIS up to v7 is a huge task | More modern version of Angular opens up new features and addresses issues from v7 No element is using Angular v8 yet, so bringing all of TIS up to v8 is a huge task |
Estimated cost | MEDIUM | LARGE | LARGE | LARGE |
Status | In progress - Admins UI done, Reval to do | in progress - Admins UI done, Reval to do | to do | to do |
Action items
Outcome
Bring all apps up to Angular v8 (variously from v1.2, v1.5, v5, v6, and v7). Remove jHipster dependencies. Move to standardised file structure. Tidy up SCSS folder. Tidy up Protractor and Cucumber tests. NGRX Observable.
Slack: https://hee-nhs-tis.slack.com/
Jira issues: https://hee-tis.atlassian.net/issues/?filter=14213