Developer tool: Use Cases for portability (Agile)

If you are currently developing portable freeware or planning to do so, use this forum to discuss technical implementation, seek out like-minded developers for partnership, or solicit interested users for beta testing.
Post Reply
Message
Author
User avatar
webfork
Posts: 8236
Joined: Wed Apr 11, 2007 8:06 pm
Location: US, Texas
Contact:

Developer tool: Use Cases for portability (Agile)

#1 Post by webfork » Mon Mar 07, 2016 11:20 am

Introduction

For developers who visit this site, you might wonder exactly what enabling portability is going to bring to your project. Do users really care about this feature? Here are a few Use Cases that try to help make clear who cares and why.

Background

What is a Use Case? | What is Agile?

Use Case for portability
  • As someone who ...
    • Stores all their data on a cloud drive service (e.g. DropBox, Box.net, OneDrive, etc.)
    • Uses a USB drive to store all their data
    . . . I want to avoid re-entering my settings every time I move to a new computer. As such, saving settings to the local folder rather than AppData or the Registry is ideal. Additionally, since drive letters and specific folders can change, the program should generally avoid hard links (e.g. .\files rather than C:\User\USERNAME\Files\).

Additional Use Cases
  • As someone who ...
    • [Security] Stores all their data inside an encrypted volume for security purposes (this could be a TrueCrypt, VeraCrypt, Windows VHD, etc), I need settings to be saved to the local folder. I'd additionally like to avoid writing any program-related information outside of the application folder.
    • [Multi-machine] Synchronizes two computers across a network, having the settings saved locally would make this much easier. While there are ways to do this that include the AppData and Registry, it's much simpler to keep things in the application folder.
    • [Backup] Does not trust my computer and back it up frequently, I don't wish to chase down where ever the settings are being left. (As with the example above, there are ways to do this that include AppData and Registry but they generally are more complex.)
    • [Cross-platform] Uses Windows programs on Mac/Linux/Android/etc. via a tool like WINE/Crossover, settings saved to Registry are sometimes not well understood by WINE/Crossover and cause issues. As such, saving to the local folder is ideal.
    • [Software Testing / QA] Tests software, it's a lot easier to go through starting from a specific program state from backup. With standard software, I regularly have to uninstall, reboot, reinstall, and THEN test a program. If I make a mistake in the middle of the testing process, I'll have to do it all over again which is a huge waste of time.

      Self-contained portable programs don't have this issue. You can even have multiple versions of the same program on one computer so you can see where an issue appeared, which enables faster determination of where a given code change created an issue.
Use case for PortableApps
  • As someone who likes portable software (with features mentioned in above use cases) I also enjoy the ease of updating offered by the PortableApps format (PAF). That toolset allows me to set the extract folder to the destination and won't overwrite the contained files, since the PAF tool avoids overwriting the "settings" folder.
(Note that some users prefer not to use wrapper programs like portableApps. In this case, a clearly labeled separate settings file or folder can also function this way.)

---

Related: Hashing use cases
Last edited by webfork on Sat Jan 20, 2018 10:11 am, edited 1 time in total.

User avatar
webfork
Posts: 8236
Joined: Wed Apr 11, 2007 8:06 pm
Location: US, Texas
Contact:

Re: Developer tool: Use Cases for portability (Agile)

#2 Post by webfork » Sat Jun 10, 2017 5:12 pm

Update: came up with another use case that I've added to the above list (Testing)

Post Reply