I realise that the word "best" in my title is very subjective, but I couldn't think of a better word. I guess a combination of user friendly, easy to use and robust (ie minimises the chances of mistakes) would be what I mean.
We are developing an application that will handle user accounts. These can be of varying types, most commonly donors, UK charities and overseas charities. We are importing data from a legacy application that did not have an account type, but rather relied on the user filling in (or not filling in) the data relevant to the account.
Predictably, a lot of the data is messy and incomplete. Our import code makes a good stab at guessing the account type, but will inevitably get it wrong. We want the account details window to allow them to change the account type, but given that they will probably only ever change it once (or in most cases, never), we want to avoid them changing it by mistake.
The two options we thought of are...
Have a regular dropdown for the account type, and if they change this, pop up a message box asking them to confirm that they really want to do this.
Making the account type read-only (whether a disabled dropdown or plain text is up for debate), and having a button next to it to unlock it. Clicking that button would change the account type display to a regular dropdown which they could change.
We can see advantages and disadvantages of both approaches...
My understanding is that message boxes are a horrible way to communicate with users. On the other hand, this approach minimises the amount of extra UI needed, and only appears in the uncommon scenario where they change the type.
Not sure how intuitive it is to require them to click a button to unlock the account type dropdown, when we don't have that for any other data on the window. We wouldn't want to make the unlock button too big or prominent, as it's unlikely to be used after the initial migration, so would be best kept as quiet as possible.
Anyone able to comment on these two approaches, or offer a better suggestion (with the caveats of whatever "better" means, as I commented above)?