Deployment Installer UX - rpapub/WatchfulAnvil GitHub Wiki

💡 What Is Installer UX?

It refers to the user’s experience when installing software, including:

  • Clarity of prompts and options
  • Trust signals (certs, icons, publisher info)
  • Progress feedback and error handling
  • Default behaviors (especially for permissions or system integration)
  • Seamlessness: minimize decisions unless needed

🔍 Key Principles of Good Installer UX

Principle Explanation
Minimal choices Ask only what’s necessary. Confusion = fear = cancel.
Explain clearly Use plain language. “Install for all users” vs. “Requires Admin rights.”
Sensible defaults Default to safe, working choices (like fallback paths).
React to environment Detect capabilities (e.g. admin rights) and adapt UI automatically.
Visibility of progress Show what’s happening, especially if work takes more than 2s.
Silent mode support Required for IT deployment & scripting.
Trust signals Signed executable, known publisher, no surprises.

🧭 Installer UX Design Checklist

1. Clarity of Purpose

  • Is it clear what this installer does — what is being installed, and why?
  • Does the UI reflect scope: who will be affected (just user? all users?) and what locations will be touched?

2. Effort Minimization

  • Are users only asked for input when necessary?
  • Are defaults sensible and likely to work for most users?
  • Can the user install without prior knowledge of internal folder structures?

3. Trust & Confidence

  • Is the installer signed and attributed to a recognizable publisher?
  • Is UAC elevation clearly explained, not just triggered blindly?
  • Does the UI show professionalism (icons, spacing, no typos)?

4. Robustness

  • Does the installer detect and adapt to existing installations?
  • Are missing dependencies or folders handled gracefully?
  • Can it run multiple times without causing inconsistent state?
  • Is system integrity maintained even after partial failure?
  • Are actions logged in a way useful for debugging?

5. Environment Awareness

  • Does the installer react to admin rights (or lack thereof)?
  • Is per-user vs per-machine behavior made explicit?
  • Does the UI adapt based on what is actually available (e.g. installed Studio versions)?

6. Transparency of Actions

  • Are the user’s choices shown before committing?
  • Is progress visible and meaningful during install?
  • Can the user review what happened after install (via log or summary)?

7. Uninstallation Flow

  • Is uninstallation offered and accessible?
  • Does it remove only what was installed — no collateral damage?
  • Are all install-time decisions reversible (e.g. file copy, registry)?
  • Is uninstallation silent-capable for scripting?
  • Can the user trust that uninstallation is complete?

8. Error Recovery

  • Are user-facing errors actionable (not just “something went wrong”)?
  • Can the user retry or skip non-critical steps?
  • Is partial install avoided or reversible?

9. Automation & Accessibility

  • Does the installer support /SILENT and /VERYSILENT modes?
  • Can it be run headless for IT scripts or CI/CD?
  • Is keyboard navigation fully supported?