Skip to content

Version 1.0 Strategy

Clint Rutkas edited this page Mar 30, 2020 · 13 revisions

PowerToys v1 strategy

  • What is it: Defining what work items need to happen for v1.0. From here we can determine our workback schedule.
  • Authors: Clint Rutkas
  • Spec Status: Draft

1. Overview

1.1. Elevator Pitch / Narrative

A PowerToy is a utility that helps an end user to do a task faster. Batch renaming files, rotating / resizing an image quickly tweaking a monitor display setting, being able to mount an ISO, robustly copying a file from one place to another. These are all examples of items that are / have been a PowerToy. Most PowerToys from 95 and XP were graduated into the Shell!

1.2. Customers

PowerToys exist for two reasons. Users want to squeeze more efficiency out of the Windows 10 shell and customize it to their individual workflows. We can be more targeted for scenarios to help do rapid iterations. Think about the countless small utilities that Microsoft engineers have written to make themselves more productive.

1.3. Existing Solutions or Expectations

There are a bunch of one-off applications in the Windows ecosystem. Each new PowerToy would look at the landscape and see how we can best address users’ needs and what would be the best experience. There are also items in different states of support. Since PowerToys is Open Source, community can help update and contribute back to them.

1.4. Goals/Non-Goals

Goals:

  • Quickly iterate and test new functionality that blocks Power users such as developers from adopting Windows
  • Have functionality be designed in a way where the code could migrate back into Windows
  • PowerToys uses public APIs only.

Non-goals:

  • Create a custom shell for Windows
  • Full transition to new UX

2. Definition of Success

Expected Impact: Business, Customer, and Technology Outcomes, Experiments ...

No. Outcome Measure
1 Users population grows. End user install
2 PowerToys is deemed bug free Bugs opened against v1 PowerToys
3 PowerToys is stable Crashes
4 Users enjoy PowerToys Users continue to use PowerToys 2 & 10 days after

3. Requirements

3.1. Goals for v1

DevOps

P0 (must)

  • Define how the PowerToys project operates: feature/bug requests are triaged, work is built/tested, releases are deployed, community communication
  • Begin maintaining a public product roadmap (#932)
  • Users are always on the latest (#413)
  • Transparency report on telemetry
  • Workflow for how items are reviewed, processed
  • Workflow for how we build and ship (this doc + #932)

P1 (want)

  • All shipping utilities have automated unit tests (tests tag)

Enable everyone to use PowerToys

PO (must)

  • In MS Store / MSIX Installer (#413)
  • Telemetry must be able to be disabled (#964)
  • All strings are localized for shipping utilities (#199)
  • Support all processor types (#602, #490)
  • All shipping utilities are accessible

Raise product quality

PO (must)

  • Current shipping utilities are stable
  • Current shipping utilities are straight forward and easy to use
  • Settings no longer uses WebView (#243)
  • Not running in elevated by default (#413, #942)
  • Shortcut Guide UX is driven off a JSON file
  • Shortcut Guide UX is rendered with controls to make it accessible with Narrator
  • FancyZones Editor has a clearer model for working with layouts with multiple monitors
  • FancyZones layouts are relative, not absolute so they can be used on different monitors with different resolutions
  • FancyZones remembers app locations (Dock / undock scenario / Virtual Desktop)
  • All utilities have gone through a security review

P1 (want)

  • PT is aware of when elevated states occur and then alerts user that itself needs to be activated
  • Attribution given to authors in app (#862)
  • Start of migration to new UX via WinUI 3
    • Full transition will happen over the v1.x timeframe but not v1.0

P2 (nice to have)

  • Shortcut Guide is UX can be configured by end user
  • Unified UX Style
  • FancyZones remembers app locations (Virtual Desktop)
    • Virtual Desktop DLL is a requirement
  • Shippable Virtual Desktop DLL

3.2. What is shipping in v1

Current utilities shipping

  • Shortcut Guide
  • FancyZones
  • PowerRename

New utilities for v1

  • Image Resizer (#53)
  • Quick Launcher (#44)
  • Keyboard Remapper (#6)
  • Markdown preview pane for Explorer (#914)
  • SVG preview pane for Explorer (#963)
  • Alt-Tab launcher (#861)

4.0. Timelines for v1.0

  • 0.16 (March)
    • SVG/Markdown panes, image resizer,
    • Additional quality tests
  • 0.17 (April)
    • Auto-updating
  • 0.18 (May)
    • Launcher init release
    • Keyboard remapper init release
    • settings v2 initial release
  • 0.19 (June)
    • Stability / bug fixes / quality push
  • 0.20 (July)
    • FZ Editor v2 init release
    • OOBE ships
  • 0.21 (August)
    • Shortcut guide init release
  • 1.0 (September)
    • Stability / quality / fit and finish

5.0. Utilities suggested for beyond v1

  • Virtual Desktop++ v1.0
  • Maximize to new virtual desktop
  • Animated Gif recorder (#143)
  • PowerMenu (#641)
    • End Task in taskbar context menu (#322)
    • Always on top in taskbar context menu (#13)
    • File hash (#57)
  • End Task with mouse
  • Find my cursor (#131)