I have a specification which explicitly mentions 4 (sic!) interrelated modal windows for a fairly simple use case. This seems to be a result of the old-school way of thinking, i.e. "let's define the requirements as how exactly things should work" instead of "let's define the problem definition in broader terms". In other words, classical "HOW" vs "WHAT" problem.
Here are the requirements and my thoughts. Please review, provide feedback, make own recommendations.
Create New Batch – Opens a pop up box that allows users to, key in Batch ID and Batch Description, select pay period end date from a drop down ..., and select distribution department from a drop down ...
Batch ID, Pay Period End Date, and Distribution department are required ..., users can select “Create” or “Cancel”
- If user creates a batch with the same ID as another batch in that pay period and distribution department, display the message “This Batch ID already exists for this pay period, please enter a different value”
- If user creates the new batch another popup will display asking “Do you want to open the new batch now”. Selecting “Yes” will populate the search parameters with the batch values and open the batch, selecting “No” closes out the popups and allows the user to remain on the same screen
- If the user selects “Yes” and there are unsaved transactions, display the prompt “Do you want to save changes before opening this batch?” and have a Yes, No, and Cancel button
I think, a better UX will have a single modal window instead of multiple.
There will be a modal window for entering the basic batch information. This stays as it is described in "Create New Batch" section.
"This Batch ID already exists" window is removed. There can be a validation error notification next to the "Create" button which is displayed on a failed attempt to create a Batch.
"Do you want to save changes" window is removed. This can be achieved by disabling the mechanisms of Batch creation for as long as there are some changes on the page which we don't want to lose. In other words, I am willing to make the user save their precious input before they try to create a new Batch.
"Do you want to open the new batch now" window is removed. There will be an extra button "Open Created Batch" next to "Create" and "Cancel". The button is only displayed/enabled after a successful batch creation.
So that will reduce the number of modals from 4 to one, and the complex flow will be replaced with a liner (simpler one). That will make things easier for me, because complex systems are hard to build and maintain. I don't want, however, to simplify the system too much, meaning at the cost of the "optimal"/"ideal" UX.
Is my way of thinking the way to go in this situation?
Should I simplify the UX by preventing certain scenarios in the first place instead of reacting to their consequences?
Is it a bad thing that the workflow is less flexible (more linear) in this case?
P.S. I am a full stack developer who does not have a degree in design or strong design/UX principles fundamentals. Therefore, most of my views and decisions are driven by the system simplicity.
P.P.S. I tried to search for similar questions but wasn't too good in it. @Moderators, please let me know if any parts of my question violate the rules and I will update or even remove it.