For maintainability, I agree we definitely prefer to keep things as simple as possible (where it makes sense).
One of the scenarios where we need this feature is when we add new required fields to an existing request. At that time, all previous requests will normally be missing data in the new field. We will want that field filled in before moving to the next state (except "Cancel" maybe an exception). However, we still want to be able to add "Notes" or update other fields and save that information in the current state -- while we don't yet know the value that should be entered into the new required field.
The way it works now, I can't update anything in the request without filling in the new required field. So I have to guess at a value for the new field (which is likely wrong), just to be able to add a status Note or make an update to another field. I would rather have an empty field, than a wrong value at that point.
For maintainability, I agree we definitely prefer to keep things as simple as possible (where it makes sense).
One of the scenarios where we need this feature is when we add new required fields to an existing request. At that time, all previous requests will normally be missing data in the new field. We will want that field filled in before moving to the next state (except "Cancel" maybe an exception). However, we still want to be able to add "Notes" or update other fields and save that information in the current state -- while we don't yet know the value that should be entered into the new required field.
The way it works now, I can't update anything in the request without filling in the new required field. So I have to guess at a value for the new field (which is likely wrong), just to be able to add a status Note or make an update to another field. I would rather have an empty field, than a wrong value at that point.