I was using WinSCP the other day for transferring files, when I came across this.. umm.. I'll call it a set of options, but it was more like an interview.

Oh boy. I just want to move a file. Now I have to read nine options to determine what I want to do!

The problem is, for the kind of thing WinSCP does, each of these options is sometimes very relevant. Clearly, yes no and cancel are always relevant. When you're moving log files, append is very useful. The option to rename is a common one, particularly when copying output files. When moving code or config or graphic files, newer only is very useful. No to all and yes to all are good for when you're doing a bunch of files at once.

Lord knows they could have added "append all" too. To top it all off, in case you're confused, there's a help button! (The help button doesn't really help either... but that's another story...)

So being that each of these buttons is a good thing at times, how can this problem of overloading be avoided while still giving people the flexibility they need to get high productivity out of your tool?

Edit: here's what the help button does, actually:

-
I feel like the help button could be bigger in this dialog... –  Virtuosi Media Mar 6 '13 at 22:08
@VirtuosiMedia It actually doesn't do anything, so it's not that helpful. It brings up a box that says "No help is available. Would you like to search the WinSCP documentation on the web?" –  corsiKa Mar 6 '13 at 22:11
+1 for showing me the funniest thing I've seen all day. –  obelia Mar 6 '13 at 23:45
A) How is "No" different from "Cancel"? B) I'd prefer that dialog to replace the "Overwrite?" question with a "What do you want to do?", and then replace "Yes" with "Overwrite" and get rid of "No" altogether. –  Ben Hocking Mar 7 '13 at 0:56
@corsiKa Thanks. I definitely agree with the "Skip" suggestions below as a replacement for "No", then. As has been said on this site before "Yes" and "No" are often not good button names. –  Ben Hocking Mar 7 '13 at 1:03

While Charles's Answer shows some great UIs, I wanted to add the UX that Directory Opus uses for the same action, which I find very good as well. Simple on the surface with advanced options tucked away after a click.

.

Clicking on the Dropdowns results in these options:

As you can see it also provides shortcuts for the advanced operations making it easy for power users as well.

-
+1 for the preview of the files in this dialog. The FZ one only shows a standard file icon. I also rather like the way the number of buttons are cleaned up, and the way you can inline rename the destination file. –  André Mar 7 '13 at 8:52
Yes there are a great many things that are tweaked so well in Directory Opus. I've always that it should be the standard. But serving the masses is different from serving the power users. Thus I always think that UX should have multiple levels, based on capability of the user. –  Vijay Mar 7 '13 at 9:11
That's not fair - it guilts you into not overwriting that adorable kitty... :-( –  corsiKa Mar 7 '13 at 16:35
Kidding aside, I really like this idea. I mean, obviously I'm not writing a file copying program any time soon. Clearly there's dozens out there. (And for all I know, some guy at WinSCP will read this thread and go oh snap that is kind bad...) But very often, my users request things and it ends up being "Add a button. Add a link. Add this. Add that." Then in the next release "This screen is too cluttered." And I'm kind of at a loss for how to really organize it. The philosophy here is is the same as the others, but the execution is simply stellar and a cut above. –  corsiKa Mar 7 '13 at 16:38
This motivates me to give Directory Opus a(nother?) try. Explorer and Total Commander is just not doing it for me anymore... –  Supr Mar 8 '13 at 8:45

When a user is about to take an action that may not be easily reversible, it is imperative that the interface give them enough information to:

• Make the correct decision on what they want to do.
• Make it very clear how to make that happen.

In Windows 7 the "Copy File" dialog gives you plenty of information to help you compare the two files using meta data and clear steps for how to make it happen:

Because this is an FTP program there are more options than whether to overwrite or not.

It would be better if the interface made it easier for the user to know what the effect of their decision would have.

FileZilla does a much better job of asking the user for the same information as the question's example:

The dialog might benefit if it grouped related actions so that it is more clear to the user what their options are broadly and then specifically what their refinement options are based on their need:

-
In this case, it seems to me the system should verify if the files are equal. They certainly appear to be, as the file sizes and time stamps match. If the files are equal, the system should just ignore that file. –  André Mar 7 '13 at 8:45
So if I pick "Newer Only", will it overwrite or will it append...? –  Michael Kjörling Mar 7 '13 at 10:03
@MichaelKjörling I don't think Filezilla does appends. –  Yamikuronue Mar 7 '13 at 13:13
@Yamikuronue I was referring to the final BMML mockup in the answer ("Remote File Already Exists"), not FileZilla. –  Michael Kjörling Mar 7 '13 at 13:26
@MichaelKjörling You make an excellent point. There is some optimizing that would be necessary WRT the Balsamiq mockup in terms of language and button order if one were to pursue this option. In this case the behavior would be Overwrite, Overwrite if Newer Only, Append. –  Charles Wesley Mar 7 '13 at 16:32

That is one of the best examples of an interface designed by engineers for engineers :)

I would suggest the following improvements:

1. Some of the options should be moved to an advanced section, which is selectable for people that know that they want advanced features.
2. Related options could be grouped together to make it easier to scan.
3. The buttons should not be "yes" or "No", but should rather have text that explains what they will do.
4. If the help is specific to the advanced options, I would remove the button and simply show inline help for what the advanced functions do.
5. De-emphasise alternate versions of options such as (currently) "Yes to all".

A rough mockup would be something like this:

-
+1 great mockup –  Charles Wesley Mar 6 '13 at 23:09
Nice mockup. However, I think the Keep newer option is not specific enough. At the point of presenting this dialog, the system already knows which file is newer, as your mockup clearly shows. It could work in a Keep all newer variation though... –  André Mar 7 '13 at 8:43
You should add a check box for Always do this. Also you should have a Skip all instead of cancel: From experience, Users almost always don't read the dialog and click either yes or cancel. It makes them read and understand it before they click, but in certain situations, you want to keep it as simple as possible. –  Annonomus Penguin Mar 9 '13 at 18:02

I'm author of WinSCP and I've found this "question" really inspiring. Thanks. This is my (kind of) "answer".

• Inspired by @Vijay's answer (and Directory Opus), I have merged similar buttons into one with drop down menu. So now there are only 4 buttons, Yes (with Newer Only and Yes to All in menu), No (with Append, New Name and No to All in menu), Cancel and Help. Also I've introduced key+click shortcuts for the advanced options.
• Help button now really opens relevant help page:
http://winscp.net/eng/docs/ui_overwrite
• Reworded the prompt text to have real question on the very first line, so it is obvious what Yes / No do.
• EDIT: We have made further improvements, particularly highlighted the main sentence (question) of the prompt. See updated screenshot.

There are some suggestions that I've decided not to adopt:

• Renaming Yes / No buttons: I believe that after rewording the prompt and hiding the advanced options, it's now obvious, what the buttons do. Moreover renaming them would be inconsistent with other WinSCP prompts and in general with other Windows application, that stick with standard button labels. Also many users are used to the existing Y/N keyboard accelerators.
• Removing Cancel or moving it to advanced options: I believe there should be Cancel button on all prompts. I'm aware that there's already the X button on window caption, but it is not really clear what that does. Explicit Cancel is more straightforward. Also Cancel is not special version of Yes nor No. It cancels whole batch transfer, not only the file in question.
• Making important buttons larger: While I see that this is common practise in web design, desktop applications should stick with their platform standards. On Windows, the buttons have single size.

Thanks for all the suggestions!

-
That's great! I do use winscp a lot too. Thanks for the update! –  Vijay Apr 23 '13 at 10:18
When my boss asks me for a list of accomplishments, I'm going to tell him I was on the WinSCP Overwrite Screen Redsign Committee (WOSRC, for short). Thanks for your awesome tool, and thanks even more for happening upon this and doing something about it! Trots over to the update page... –  corsiKa Apr 23 '13 at 14:14
@corsiKa I wish you get promoted for that :) Btw, the change is not released yet. –  Martin Prikryl Apr 23 '13 at 14:32
WinSCP 5.2.1 beta with the improved overwrite confirmation prompt was released yesterday. More details here: winscp.net/eng/docs/ui_overwrite –  Martin Prikryl May 9 '13 at 10:46
To me, those "Yes", "No", etc. buttons are rather annoying and a sign of a "lazy developer". You could get rid of all the text in the beginning of your message box if you simply give the buttons verbs as names, e.g. "Overwrite", "Skip", "Append", etc. And get rid of that "Help" button, too. –  Uwe Keim Oct 16 '13 at 9:08

I think FileZilla does a good job of this. And they give you options to never ask again when overwriting - either in the current queue of transfers ('apply to current queue only'), or for the entire FTP session (just 'always use this action' selected).

If they were to add any more options though, I reckon a drop down list would be in order for the 'action' radio boxes.

Another great part about FileZilla is that the queue isn't blocked while this prompt is showing, so if you go away and come back to this, any files that don't have overwriting issues will have continued to transfer. I really dislike coming back to my Windows machine to discover that the 25GB of files I was transferring got blocked by a file around the 1GB mark...

-
+1 for FZ I wouldn't use any other FTP client (not that I need to much) –  Charles Wesley Mar 6 '13 at 23:09
Yeah it's solid! The only issue I ever have is that I use a pen tablet to control my mouse cursor most of the time, and for whatever reason, within FileZilla it becomes extremely sensitive and unpredictable. I've accidently moved folders into folders and broken a website before :-/ Luckily I can switch the tablet to touch mode which fixes the issue. –  Chris Paynter Mar 6 '13 at 23:26
@ChrisPaynter Now here's another UX problem :) –  Alvin Wong Mar 7 '13 at 1:18
I know, I'm assuming it's too much of an edge case to consider flagging with them :) –  Chris Paynter Mar 7 '13 at 1:19
If FZ offers doesn't block the queue while asking this question, then what does the cancel button do exactly? And what does 'resume' mean as an action? I am not a fan of this dialog. It presents all the options as if they are equal, but they are not. –  André Mar 7 '13 at 8:49

One big issue here is a lack of hierarchy, all of the buttons are given equal weight on one wide line, which ends up being overpowering at first glance. The user wastes mental energy scanning all available actions because he/she assumes that all choices are equally important.

I believe this dialog box should be customized, with obviously the 2 big buttons (which I'm assuming are the most popular ones) - being Yes and No. Then below that there could be "Other options" that has a smaller list of remaining actions, with a description if necessary (which would negate the need for a prominent help button). And as others are saying a checkbox for "Apply to All" like Windows does could also alleviate the visual clutter.

With that approach, you have 2 major actions and 4 minor ones (with a checkbox and a help link), which is much easier on the user.

-
There's already one checkbox (one that's actually pretty dangerous, but...). Is adding a second checkbox a good idea? That doesn't get around the fact that this dialog is more of an interview. –  corsiKa Mar 6 '13 at 22:34
I would go with a second checkbox in this case. And to your point, I don't think there is a a way around this interview since as you mentioned, all of these choices are useful in one way or another. It's just a matter of decreasing the prominence of lesser used actions. Otherwise you would have to forego functionality for simplicity –  Jason Tavarez Mar 6 '13 at 22:56

Two ideas that come to mind immediately are:

1. Have a drop down with the list of actions and an "Ok" button that executes it. In this particular case I would rework the text ("Remote file already exists. What action would you like to take?" and replace "Yes"/"No" with their respective actions such as "Overwrite"/"Copy".
2. See what buttons can be consolidated out. ex: Help can be an icon in the top right corner, check box to "Apply all" instead of the "Yes/No to all" button, etc.

Edited for clarity.

-

There are some existing constraints in terms of the functions that need to be made available, and the type of interaction for the file transfer dialog window. The only way I can see to addressing this issue is to deal with some of the options before you start the file transfer process. So what you might have is a set of options that asks the user what they want to do when there a conflict (Overwrite, Rename, Don't transfer), and then once the transfer is complete then you can do a batch rename or append process afterwards.

Given the choice I would redesign the process, but I guess it comes down to how much effort it takes versus how much return for the effort.

-

That's 9 buttons.

Now that's a very poorly designed dialog box.
The problem here is that all those actions are displayed at the same level, when they have various levels of relevance.
e.g: You don't want to provide a "New name" if you don't wanna overwrite anyway.

For starters: No and Cancel are basically the same thing.
And if cancel is to stop the current copying, you have the red cross for that already.
Remove the cancel button. (-1 button)

So now what may be done when a file already exists?

You offer (YES/NO)
And add a checkbox "Apply to all". (-2 buttons)

If NO was selected, you rename the file being moved with ([INSERT NUMBER HERE]) as is the default behavior. That's basically what "New name" does. (-1 button)

If YES was selected, offer actions that may be performed:

1. Overwrite
2. Append

We don't need the Help button anymore. It's a Yes/No question. (-1 button)

-
"New name" implies that you don't want to overwrite. "No" and "Cancel" are not the same if multiple files are involved. –  Jon of All Trades Mar 8 '13 at 14:10

I feel that some of the buttons can be combined by simply adding a "if all apply" checkbox. I would also NOT put in a help button if there isn't anything there. It seems rather pointless to direct the user to something that doesn't exist.

-
But 'Apply to All' doesn't necessarily work as a checkbox very well, because you'll need to check and uncheck the option rather than just clicking on the button, and the interaction might become confusing or easy for the user to make a mistake (since the interface is already confusing enough). –  Michael Lai Mar 6 '13 at 22:49
Also, these checkboxes are rather dangerous looking to users. Apply to all now, or also in the future? How will I turn that back off then? –  André Mar 7 '13 at 8:54

I know this window, and also never remember what to click, so I need to go through all the options :) Anyway, WinSCP is a great tool, so I close my eye for this one. What can be done in this situation:

• First of all, the buttons use different forms: there is yes/no (to understand which you should read all the text above the button), there are verbal ones, plus two buttons refer to additional conditions

• Help button should not be there, I mean - it should be present, but in a different form, maybe question mark icon or a link (even though I hate links in such windows). And of course it must show some help related to the window, not what is shown there now. While options are self-explanatory, there are many users who will need additional help, which does not appear here

• Third thing is proper grouping of the buttons.

• Last but not least - I think the "Never ask me again" option is very dangerous, as the overwrite action always should be confirmed by the user.

I would do it like this:

Group 1: [Overwrite] [Do not overwrite] [] Only if if newer [] Apply to all.

Group 2: [Append] [Rename] (does anyone append, btw?)

Plus a non-intrusive help button, presented and located in a corner for example.

-

The problem is not even in the huge amount of possibilities. It is with the fact that they are fundamentally different.

I will try to break them down by creating a scenario of several questions that make sense, rather than one that doesn't.

Currently we have:

  File already exists. Overwrite?
"Yes" "No" "Cancel" "Append" "Newer Only" "No to all" "Yes to all"


The Yes and No options are obviously valid but there are ones that are not for example the "Cancel" option is part of a separate question:

  Do you want to stop the operation?
"Yes" "No"


The next option is Append. This clearly should stay because it is a new alternative (different from "Yes" and "No"). However the question should be revised because of it:

  File already exists. What do you want to do?
"Overwrite" "Keep Old File" "Append the two Files" "Newer Only" "No to all" "Yes to all" "Help"


I will skip the "Newer Only" option for now and I will proceed to the No/Yes to all options. I think they should also be excluded because they ask a different question. Which is:

  Do you want to do the same for all files?
"Yes" "No"


Now lets get to the Newer Only. This option should be removed from the initial question (the user can see for himself which file is newer). However it is absolutely valid for the question:

  Do you want to do the same for all files?


So options the options that come from it are now three:

  "Yes" "No" "Only if my version is newer"


The last button we have is Help which is not really part of the procedure. It should be there on all popups but not on the same level as the option buttons.

The end result is:

  File already exists. Do you want to stop the operation?
"Yes" "No"

What do you want to do then?
"Overwrite" "Keep Old File" "Append the two Files"

Do you want to do the same for all files?
"Yes" "No" "Only if my version is newer"


It is far from usable. We can fix that by removing the first question (because we have undo, right?). Putting the third question in a combo that remembers the last option the user chose and sets it as default etc. but that is another story

-