I need the opinion of an average Joe or Jane computer user to help me
figure out how I should implement a piece of software. If any other
researchers would also like to share their opinions, please feel free
to post a comment. The more opinions, the better!
Since I'm hoping that someone who *isn't* a computer expert or
software engineer will answer this question, I'm going to try to be
thorough in explaining my dilemma.
**IF YOU FEEL LIKE SKIPPING ALL THIS BACKGROUND INFORMATION, THE
ACTUAL QUESTION IS AT THE BOTTOM.**
In short, I'm writing an uninstaller program... a program that removes
files from your computer when you don't want an application any more.
(Because of size limitations and some other special requirements, I
can't use InstallShield.) I'm being very, very thorough in cleaning up
the application I'm removing, to the point that I even delete the
uninstaller itself after everything else has been safely removed. Many
places that rate software, such as Tucows, consider complete and
thorough cleanup an important criteria when reviewing an application.
Moreover, I personally hate applications that leave all kinds of junk
on my computer after I've supposedly removed them. When I uninstall an
application, I--like most users, I believe--expect absolutely
everything to be **gone**.
The trick is, I can't delete the uninstaller when it's running.
Windows knows this, so they provide a function that allows me to
request that the file be deleted next time the computer is rebooted.
When I do this, by default Windows displays a very generic dialog that
reads:
"System Settings Change. You must restart your computer before the new
settings will take effect. Do you want to restart your computer now?
[Yes] [No]"
If the user clicks yes, the computer is rebooted immediately. If the
user clicks no, nothing happens and the files will be deleted next
time the user reboots... whenever that might be. If you've been
running Windows for a while, you've probably seen this dialog at least
a few times.
On a purely technical level, this works great. But I'm not sure that
this is an ideal solution from the user perspective. In particular,
I'm making two assumptions:
1) People hate to reboot their computer, even if it is for a good
reason.
2) The text that Windows provides is too generic and scary to the
average user.
I can suppress the dialog so that it does not display, but I'm not
sure that's a good idea. Adding a third assumption:
3) If I schedule the file for deletion on reboot, but I do not tell
the user to restart their computer, the user won't understand that the
file is going to go away. If they see the file, they will be concerned
that the application did not uninstall completely. They might start
deleting files manually--even unrelated ones--with unknown results.
I know it sounds crazy that someone might do that, but I've got a
sinking feeling that it's not as unlikely as it sounds. My father
in-law is big on deleting random files and has trashed his computer
several times this way.
Some of the large commercial installers (I'm not going to name names)
avoid this problem by not even attempting to remove their uninstaller
program. They just hide it in the Windows directory where the user
won't see it. So, if you've ever wondered why your Windows folder
bloats out like a fat cow even after you've uninstalled all your apps,
well, now you know at least one of the reasons. In theory, the
argument for this practice is that you will inevitably install another
app that uses the same uninstaller... and while to some degree this is
true, to another degree it's a lame answer.
The final option I have available to me is to suppress the Windows
prompt, and try to replace it with my own with less intimidating text.
Perhaps something to the effect:
"ApplicationName has been safely removed from your computer. Some
additional files that are no longer needed will be removed next time
you restart your computer. Would you like to restart your computer
now? [Yes] [No]"
My thought was that such a dialog would be less intimidating, and help
the user understand that the files are going to go away when they
restart... and help them further understand that while they need to
restart eventually, it is safe not to do so right away if they are
really opposed to it. However, since as the developer I'm naturally
biased, I know I can't even begin to guess what people will think.
Furthermore, in the end this option is still requesting a reboot,
which I assume most people think is yucky.
********** SO, THE QUESTION IS: **********
Which option below makes you--the average computer user--FEEL MOST
COMFORTABLE when uninstalling an application?
OPTION #1) The uninstaller schedules itself to be deleted on reboot,
and prompts for an optional reboot with the _standard_ prompt:
"You must restart your computer before the new settings will take
effect. Do you want to restart your computer now? [Yes] [No]"
OPTION #2) The uninstaller schedules itself to be deleted on reboot,
and prompts for an optional reboot with the _non-standard_ prompt:
"ApplicationName has been safely removed from your computer. Some
additional files that are no longer needed will be removed next time
you restart your computer. Would you like to restart your computer
now? [Yes] [No]"
OPTION #3) The uninstaller schedules itself to be deleted on reboot,
but does not prompt for reboot. The uninstaller deletes itself on
reboot without warning you, whenever the next reboot occurs. Files
remain in the Program Files folder until this occurs. No indication is
given that these files will go away until it actually happens.
OPTION #4) The uninstaller does not delete itself. No reboot is
required. However, some unneeded files will remain on your hard disk.
Thanks for your feedback!! (Incidentally, if anyone knows a better
solution entirely, feel free to yell!)
-Spot |