Dear Software Developers,
If you design, develop, or market software applications for use on Windows operating systems, please read the following:
- Microsoft publishes documents and whitepapers commonly referred to as “best practices“. Please read them. If you can’t read, as one of your kids to read them to you. If you don’t have kids, stop by any public bus stop and ask a bystander to read them to you. If it helps, you can also eat cookies and drink chocolate milk while you hug and squeeze your stuffed toy.
- If you include the following assumptions in your design and packaging, you will absolutely NOT go wrong with your customers:
- Your installer provides silent installation capabilities.
- Users will not be local administrators and not have rights to install their own software.
- Your installer allows for specifying custom options during silent installations.
- UAC will not be disabled. Ever.
- In addition to the above, the following would also be very nice, but not a show-stopper…
- Software will should be installed per-machine, not per-user. Nothing should be dumped into HKCU or %userprofile% during an installation.
- Your software installer will take care of pre-requisites or clearly indicate when they are missing before proceeding.
- Your software will NOT depend on a specific version of MS Office in order to read/write to data files (esp. database files).
- Your software will NOT depend on a specific web browser and/or version on the client.
- Your software will NOT try to shove third-party crap in under the hood (sponsored browsers, add-ins, adware, etc.)
- Your devices will not require local Administrator rights in order to reconnect each time once the initial setup has been completed.
- Your software should support deployment as virtualized packages (App-V, ThinApp, etc.)
- Your software should NOT force a change to the display resolution on clients.
- Your “support” links and phone numbers should have actual humans available to respond to inquiries.
- Please do not advertise your product(s) as “free” when they are actually trial editions.
- Do not force your own “updater” services to install and run in the background. Make them optional.
If you abide by these rather basic guidelines, not only will your customers love you more, but it will also spare you from my efforts to have you tasered in the crotch and dunked head-first into a giant pool of manure.
Love, kisses and hugs.