We are discussing the system configuration module design in our Java medical device software. The system has a voice instruction function used to guide patient during the examination. Different patient may speaking different language or dialect. So we need to set up (add/delete and add/delete again) what kind of language or dialect are available on the system for patient to use. And later a language or dialect will be assigned to a patient and it will be saved in the database with other patient information. This info will be useful when patient come back again.
For different examination protocol, the instruction will be different. So different instruction will be recorded by using different voice languages or dialects and then be saved into different voice files for later use (can also add/delete/add/delete). We need to give a name to these voice files. This voice file name will be associated with the examination protocol but not tightly.
In the meantime, our system supports internationalization in case different doctors from different countries will use it. But we only support 2 or 3 different languages according to the location of the device. We can call it system languages here, Which is used by doctors (users) and it is not the same as the voice languages or dialect I mentioned above, which is used for the patients (customers).
There are two plans on about how to create the language or dialect name and how to create the voice file name, design A and design B, presented from different engineers. I have created a document to show their contents and differences.
Obviously there are differences: one emphasis on the correctness (saved data will be valid later, support internationalization better) of the software, and one put focus on user experience (user is our God). what is your opinions about this. In our case, which plan you will go for, A or B? Why? is there a way to combine them to get a better solution?