Imagine you have two versions of the same web application. Lets call them v1 and v2. The use of the two versions is the same. V1 is an older version which is extremely flexible and customizable but also slow and much harder to use. V2 is a newer version, new code-base but with a somewhat limited set of features although with much improved usability and performance (its faster). Some users will need both versions since not all features are available in both. Some features in V1 is not available in V2 and vice versa. Important: The two versions can not share content created due to different code base.

The vision would be to only have one version (V3) with the most important features from both versions but with the new UI.

What steps can be taken to reach this goal without confusing users? Should the two versions be kept separate in the UI as two completely different apps which they can use simultaneously until V3 can be released, should there be a switch which takes them from V1 to V2 but limits them so that they can never use both at the same time? Any other ideas?

  • Are the V1 and V2 have different file formats, as you pointed content is not shareable between versions? Commented Aug 26, 2013 at 18:49
  • Should have clarified. This would be a web application and the reason the two versions could not share content is due to being built on two different code bases. Commented Aug 26, 2013 at 19:00

2 Answers 2


You need to create V3, that can handle user created content from both V1 and V2. Until all content and users are ported, you should keep users from switching in between the two apps without notice.

If you create content in V1, you cannot access it in the upgraded V2? Missing content you have created could - in the eyes of a user - be experienced as a loss of work. User input is holy, and can never be lost. I do not know how the cross-version content unavailability looks like, when a user switches between the app versions, but beware, even letting it look like user input has been lost, is a failure.

Regarding the separation of features: Many users happily upgrade to a new version, but going the other direction, not so much. To a lot of users, a change of version is enough cognitive load to carry, while trying to do your work. Topping that with letting users go back and forth between the two versions (simultaneous access, as you mention), is something I would not expose my users to. Imagine the user trying to find her missing feature, and perhaps trying to use two features of two incompatible versions, onto the same content, which turns out as a dead-end. Let one user have one version, unless they ask for both.

To help users approach the separation of features and content, you can use user accounts.

Here is my suggested procedure:

  • Make it clear that V1 and V2 are different domains, for example naming it "feature limited beta", along with properly informing about its drawbacks.
  • Do not let users alternate between V1 and V2 with the same user account.
  • Users explicitly choosing to use "the other" app, where content they have created cannot be accessed, may create another user account for that.
  • Integrate content from V1 and V2 into V3, and port users from both V1 and V2 into V3 when done.
  • Thanks. Everything you say makes total sense and I agree with it 100% however the problem exists due to the fact that we would have users on both versions.Most users will be on either 1 or 2 but some have requested to be on both. The goal would be to move towards V3 and port everyone to that version when ready while supporting users on V1 and V2 in the best way possible. Commented Aug 28, 2013 at 16:19

As the V1 and V2 completely different apps, as you pointed, and created content cannot be shared between them, it should be clear to users which app version is currently running to avoid confusion.

Also as usability of the V2 is improved, it's probably touches UI. So although some learning is required, the overall performance of V2 is higher. So there is no sense to "downgrade" new app to older one. One exception is hotkeys. Advanced users could still use old hotkeys and if it is possible support those.

I think V2 could be "trendy" beta. This is a good starting point to transparent migration to V3 continuously adding more functionality and getting feedback from users. Involving users is not only requirement of UCD process, but it could allow your users to migrate to V3 gently, without big bang as it (probably) was with V1 and V2.

Dropping some functionality is business solution, but there could be users who are stick with V1. Also there could be some conservative users. So it would be polite to let them switch to older version, leaving decision for them. But deffinitely some promotion and new version advertising could shift them to the newer app.

  • Thanks for your comment. Could you elaborate a little bit more on the hot keys. Not sure I understand where it fits in this picture. This application would not make use of hot keys, but if it would, what we they be used for? Commented Aug 28, 2013 at 16:13
  • @tblessander – many applications, including web apps, use hotkeys to increase productivity especially for advanced users. Hotkeys are imprinted at the unconscious muscle memory level. So users stick with these. Supporting them in the new version makes migration more easy. But as your app doesn't use hotkeys this advice is not relevant. Commented Aug 28, 2013 at 20:23

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.