Beta Features/New Feature Popup Guider

Overview
Beta Features would trigger a Popup Guider when a new feature is released (as an alternative to the more complex Echo notifications).

From a user's viewpoint, I want to know when a beta feature is about to be released, so I can try it out and learn more before it launches. From the foundation's viewpoint, we want to increase visibility and get additional feedback, so product teams can improve features before they are released, as well as let users know when a feature has been released.
 * Goals

This feature is also described in this Mingle ticket: Popup Guider for Beta Features (card #447).

Here are the popup notices we propose to implement first:
 * 1) New Feature Available: Shown to all logged-in users when a new feature is available for testing.
 * 2) New Feature Release: This feature has now been released to everyone.

To make this work, this task will also be needed:
 * Beta Features Update: We want to add anchor links and section highlights to the BetaFeatures extension (card #432)

Notes:
 * This popup solution seems more practical than the Echo notification proposal, because it doesn't require integration with a more complex code base, and doesn't start a big community discussion about who can use Echo send announcements like these (which could require a long time to resolve).
 * James Forrester is helping coordinate BetaFeatures with the design team, and should be contacted before implementing any of the proposed solutions.

Acceptance Criteria

 * Show a rocket icon next to 'Beta' to all logged-in users, when a feature is about to launch:


 * Show this popup guider when users hover over the icon/link (see full mockup below):

'Media Viewer will be released soon. Try this feature in beta and share your feedback! '


 * The guider appear below the 'Beta' label in your personal menu (pointing to it).
 * Check to see if the user has already enabled the feature (in BetaFeatures)
 * If they have already enabled it, link to the feature page (e.g. 'About Media Viewer')
 * If they have not yet enabled it, link to that feature section in Beta Features preferences
 * Once the user has clicked on any of these links, the guider will no longer show up on hover, only when you click the rocket icon (to avoid annoying power users)
 * Each beta feature can have a start, launch and/or end date, which can be set globally or per-wiki as a config
 * Only show the rocket and the guider if any beta feature has a date set in the future
 * Between the launch and end date, show a different message to say the feature has now been released (see below)
 * (optional) If more visibility is needed, show the guider once, the first time a page loads after the start date; after that, it would only be shown on hover or click on the rocket icon.

New Feature Available
As a user, I want to know if a new feature is ready for testing, so I can try it out before it is released.


 * Message
 * Show this popup guider when users hover over the icon/link (see mockup below):

'Media Viewer will be released soon. Try this feature in beta and share your feedback! '


 * Link to either the preferences page or the feature page, as described in the acceptance criteria above.

New Feature Release
As a user, I want to know if know if a new feature has been released, so I am not surprised by this new change and can learn more about it.


 * Message
 * Between the launch and end date, show a different message to say the feature has now been released:

'Media Viewer has been released. Try this new feature and share your feedback! '


 * Link to the feature page

BetaFeatures Extension Update
More changes may be needed, once we have a final design. For more information, see this BetaFeatures extension (card #432).
 * Add anchor links to BetaFeatures preferences page
 * Show yellow highlights to indicate which BetaFeature is selected
 * Upgrade framework for supporting notifications, as needed
 * Upgrade maintenance script for sending notifications, as needed

Technical implementation
The multimedia team estimated the development work for the BetaFeatures Popup Guide, as specified above and on Mingle card #447)

We concluded that the feature would require at least 10 points of development, as broken it down into these 5 separate tasks:

1. Improve Tipsy - 2 points We would like to use Tipsy for this project, but needs to make improvements to that code, to position the popup correctly when buttons are too close to the edge of the screen. This will require us to wait while the code is reviewed upstream.

2. Show rocket icon when there’s a new feature - 3 points This would not show the popup, but would include scheduling the display based on the feature’s start and end dates.

3. Show popup - 2 points Display the tooltip notice on hover only, linking to the appropriate page (BetaFeatures or feature page).

4. Per-user display - 3 points Store per-user info in a cookie, so we don’t show the popup on hover after they have clicked on it — and/or show the popup the first time the user loads a page after the start date, but only once.

5. BetaFeatures Extension Improvements - points TBD We want to add anchor links and section highlights to the BetaFeatures extension (card #432)

With the multimedia team's current workload, we would have to spread this work over several weeks and do not see a realistic path to getting this feature developed in time for our current release schedule. As a result, we are not planning to develop this feature at this time, though we encourage other teams to consider building it, based on Pau’s great design. The multimedia team may reconsider this task if needed for other products like Upload Wizard — or if it becomes necessary for Media Viewer down the line.

We would like to thank everyone for their great contributions to this investigation, and are glad that we came up with a good design solution that can be implemented when needed.

Mockup
Mockup for proposed Popup Guider to inform users when a new Beta Feature is available for testing or has been released.