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?

page 1

page 2

page 3

page 4

  • 2
    I don't understand why correctness and a good user experience are mutually exclusive. It's a poor experience to have a system misunderstand you. Commented Jun 13, 2018 at 0:20
  • you are right. A good design is a good balanced point about these two. But in our cases, it seems we didn't get that point.
    – stone1988
    Commented Jun 13, 2018 at 1:42
  • I think there's a very mistaken idea of what a good "user experience" is. Good user experience is not "User is our God". Good user experience is an interface that clearly informs the user what their actions will result in and that makes incorrect or damaging actions difficult or impossible to perform.
    – user53141
    Commented Jun 14, 2018 at 17:38

2 Answers 2


for the language name: How about mixing the two in away where you have the design B use autocomplete field to get the predefined language in your database. This will help in better user experience where the user need to enter first one or two letters and make the choice for the language instead of user defined text and it will limit the user selection to what you define in your database since Most languages of the world is pretty much known information.

for the file name: I would go again with design B because you can nationalize the file name with an language extension in code behind before saving since you know the selected language.

  • Since the choice of languages is inherently limited to what you support, why let the user type at all? A drop down list is both friendlier for the user (they see clearly what options they have) and completely prevents the user from choosing something not supported.
    – user53141
    Commented Jun 14, 2018 at 17:35
  • For file name, there is no definition what a file name should be. We cannot predefine these file names. So we cannot dynamically translate the file name from one language to another automatically in our code. For example, a file name can be "don't move, please" or "please don't move" or "no movement" or "...".
    – stone1988
    Commented Jun 16, 2018 at 12:12
  • My above file name examples are not correct. They may be the contents of the voice file. The file name can be "noMoveVoice", "noMoveInstruction", "ProtocolOne", "HeadProtocolInstruction", "...".
    – stone1988
    Commented Jun 16, 2018 at 12:51

This is for a medical device.

If the user sets it up wrong, Bad Things may happen to the patient.

Setting up the user to cause Bad Things to happen to a patient is a Really Bad Thing.

You want the instructions to be CORRECT, so that, if the user follows the instructions, Bad Things can't happen to the patient.

You DO NOT CARE how nice the User Experience is if the price is allowing Bad Things to happen to a patient, even potentially.

  • However, good user experience is crucial to avoid user errors. I don't see the dilemma between correctness and good UX.
    – amon
    Commented Jun 13, 2018 at 13:23
  • The whole point of "good UX" is to guide the user to do things correctly. A "good UX" makes it very hard for "Bad Things" to happen. Users are notorious for not following instructions. A good UX, that guides users to do the right thing will result in fewer "Bad Things" than correct instructions and a bad UX.
    – user53141
    Commented Jun 14, 2018 at 17:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.