microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
164.08k stars 29.25k forks source link

Settings sync as a backup settings offering #140117

Closed isidorn closed 11 months ago

isidorn commented 2 years ago

In our UI we show settings sync as "Turn on Settings Sync" in various menus and settings UI. This is great and correct, however I believe that majority of users just want to backup their settings to get that warm fuzzy feeling of being safe. The whole wording of "Settings Sync" is not really best here - it is all about saving your data up in the cloud and you feeling secure. I love how Chrome just says "Sync is on".

I think we should improve this and I would love to hear your ideas on how. Here are some of mine that I believe will make this simpler for the users and more easily reachable:

  1. Turn On Settings Sync button in the Settings UI needs to be a checkbox (like word picture below). "Turn on Sync" should be the title.
  2. Fine tune the wording in the QuickPick dialog. "Please sign in to synchronise your data across devices" -> "Please sign in to sync your data across devices". All instances of "synchronise" should be changed with "sync"
  3. Use more green, or checkmarks as reassurance once the Sync is on
  4. Sell more prominently the idea of a backup - we currently only mention it in the welcome view.
  5. Small status bar item?

Idea for this by @chrisdias fyi @rzhao271 @misolori for settings UI fyi @Tyriar @lszomoru from the settings service side

Screenshot 2022-01-04 at 20 12 57

Screenshot 2022-01-04 at 20 01 18

Screenshot 2022-01-04 at 20 06 40

Tyriar commented 2 years ago

Think we already had this discussion back when the feature was new between "Sync" (little ambiguous), "Configuration Sync" (most correct), "Settings Sync" (most expected, if I recall right), and settings sync won out.

chrisdias commented 2 years ago

I think Settings Sync is a great service, I am not suggesting to rename it. What I was/am suggesting is that we expand the service and experience to support the notion of Backup of settings/extensions. Today if you only have one machine, it is effectively a backup service. But as soon as soon as you have multiple machines you have to manage them. I actually don't use SS because i have multiple machines and don't want things sync'd between them. But if i got a new Mac or a new Windows machine I would love to be able to just say "restore all my settings/extensions".

Tyriar commented 2 years ago

@chrisdias calling it backup is underselling what it is though. Also calling it "sync" doesn't really infer backup to me, it just means what it already does.

Turn On Settings Sync button in the Settings UI needs to be a checkbox (like word picture below). "Turn on Sync" should be the title.

We'd probably need an intermediate state meaning "turning on in progress", sounds like a good change though

Fine tune the wording in the QuickPick dialog. "Please sign in to synchronise your data across devices" -> "Please sign in to sync your data across devices". All instances of "synchronise" should be changed with "sync"

I think this just makes it a little less formal, either way 🤷

Use more green, or checkmarks as reassurance once the Sync is on

Not the theme's main accent color (typically focus)?

Sell more prominently the idea of a backup - we currently only mention it in the welcome view.

We do mention backups on the docs page but could mention this use case up the top, would that help? https://code.visualstudio.com/docs/editor/settings-sync

Small status bar item?

Feels like bloat? We discussed this as well early on I believe and landed on the activity bar badges for sync state.

miguelsolorio commented 2 years ago

With regards to using Settings Sync as a way to feel "confident" that your preferences are preserved, one common issue that has multiplied is using it on vscode.dev as I am constantly forgetting what "instance" of Settings Sync I want and end up with my sync data duplicated on each of these. I often go to vscode.dev and wonder why my theme/icon theme is different and it's because i'm on the wrong settings sync instance, so then I switch. Part of the problem is because we use insiders for the product AND the service (which is really confusing). Additionally, as a user I just want my stuff synced and don't care if it's on the insiders or stable service.

I believe this is a real problem that warrants a good UX solution and fits within the scope of this issue. I'd be happy to bring some of these to the design team to iterate on.

chrisdias commented 2 years ago

I think there's two things mixed together here: a) tweaking/improving the Settings Sync experience and b) adding the notion of [single] machine backup that may be easier to understand and more applicable to a broader set of users. I dont know if they can be combined, would love to have UX thinking here @misolori.

sandy081 commented 2 years ago

Agreed with @chrisdias - if we want to offer this also as a back up feature we need to revisit the UX and introduce this separately or align with existing flow.

sandy081 commented 2 years ago

IMO I would not change the terminology much except for changing synchronize to sync if you think it is more catchy and understandable. We shall focus more on how it make it obvious for the user to log in to sync. For eg., chrome has no user avatar in this case

image

I am not sure if our current accounts menu is doing good enough job for this. May be we can add a badge on top of it showing settings are not synced and once sync is on turn the badge to enabled or green on something. This makes it obvious that settings are being synced to the cloud.

isidorn commented 2 years ago

Thanks a lot for the feedback. In my initial comment I was trying to dump ideas in no particular order. And I agree with the above: that these are two things, polishing the current experience and looking how to add the backup flow.

@sandy081 I agree that the account menu is not doing a good job. Apart from showing an avatar (there is a separate issue) we could show badges.

@misolori how about we assign this to February so we do some initial UX investigation together. What do you think?

vscodenpa commented 2 years ago

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.

If you wonder what we are up to, please see our roadmap and issue reporting guidelines.

Thanks for your understanding, and happy coding!

Tyriar commented 1 year ago

From @burkeholland in https://github.com/microsoft/vscode/issues/191012#issue-1862058515:

image

While adding a new option may help some click backup, it comes at the cost of additional clutter which fights directly against being lightweight. I really don't think we should be adding menu items that do the same thing with different names.

Mentioning "backup with settings sync" or something on the welcome experience would be a better option that would probably lead to more engagement as well.

burkeholland commented 1 year ago

The more I think on this, I don't think adding the menu option wouldn't help. I picked it as an easy solution, but in the gear menu, the option would still remain hidden. I'm postulating that awareness of the feature is the problem.

I think the browser comparison is good. The difference there is that people have multiple browsers across devices so the sync makes more sense there. They also put it up front as part of the install process and frequently badger you to turn it on if you haven't already. I find this annoying. However I find the sync service (as with VS Code) indispensable.

sandy081 commented 1 year ago

Here is the welcome page when VS Code is opened first time

image

image

There is definitely scope to showcase back up / syncing more prominently

sandy081 commented 1 year ago

image

As mentioned before, one idea would be to add a badge on top of Accounts icon showing sync is happening or not and once sync is on turn the badge to enabled or green on something.

burkeholland commented 1 year ago

Notes from our recent discussion on this....

image

image

Other notes

sandy081 commented 1 year ago

Doing following change to Settings Sync action

image image image
isidorn commented 1 year ago

Love this - thanks! Once this lands in stable I will run some Kusto queries to compare if this change had an impact on how often users and clicking on that button.

isidorn commented 1 year ago

@burkeholland, @sandy081 and me had a discussion, and here are next steps as we see them:

I am going ahead and assigning this to October since I felt like we want to keep the momentum going in the next milestone. Please chime in if I missed something. Thanks 🙏

fyi @hbons

Tyriar commented 1 year ago

We should show a "badge" on the Account item in the activity bar for users that have not yet signed in to settings sync. This could either be a custom "not-syncing" badge or just a "1". This badge needs to be tasteful and to go away after the user interacted with the Accounts menu.

While this of course would boost engagement, it's a bit user hostile and would annoy a set of people who don't want to use settings sync which is a perfectly valid scenario. Badges to me mean that something needs attention (eg. vscode update, ext update) or there's something is happening (modified files).

Isn't the goal of including it in the welcome flow to catch this set of users?

isidorn commented 1 year ago

Thanks for feedback. We will try out different approaches to see what nets the best results. Regarding the badge the idea is to do it tastefully. Thus it will easily go away. We will iterate and see how it goes.

isidorn commented 11 months ago

Closing in favour of https://github.com/microsoft/vscode-internalbacklog/issues/4604