A "Simple" Change to a Web App

A "Simple" Change to a Web App

Imagine a basic web app (SPA, REST API, Sql database) with a new-user registration form. The form collects a first and last name of a new user. It is decided that the middle name needs to be collected on the form as well.

What changes need to be made to accomodate this?

  • The SQL table needs to have “middle_name” column added. Requires a DDL script.
  • The Java layer needs to update a USER entity to include middleName field. Java Change.
  • The REST API - if using a DTO, needs the DTO updated. Java Change.
  • The repository code, if implemented manually, needs to be updated. (Entity mapping can alleviate some changes). Java Change.
  • The UI needs to add a field in the form to collect the middle name, and likely modify the model stored in the UI. JavaScript/Typescript change.

Also unit tests need to be updated, flyway or liquidbase scripts, redeployments have to be scheduled (if the deployment pipeline is working). Checkstyles and test coverage re-ran.

Add in user interface manual testing to see how the new form with the extra field renders on a laptop, desktop, mobile phone, mobile phone landscape, etc……

All this for one field being added.

Not only do simple changes require inordinate amount of changes throughout the application but the sequence of that change is important to - made out of order and various other errors can occur.

Is it any wonder why software is notoriously hard to build and buggy?