Installing My Products On Windows Is A Horrible Experience...

Has anyone figured out the right combination of incantations, magic, or soul-selling that needs to happen to let products built by Xojo be installed onto windows machines without invoking the wrath of their anti-virus software?

Let me explain more detail:
The main product I write in Xojo is called AcuGraph (http://www.acugraph.com), which is used by Acupuncturists to improve their practice. This product consists of the software I write in Xojo, and a piece of hardware that is used to collect measurements from the patient’s body. This hardware (we’ll call it the probe) interfaces with their computer using a well-known Serial <-> USB converter chip from FTDI. This chip requires specific drivers, which we have correctly signed and registered with Microsoft to be listed in Windows Update.

The trouble we have been having for years with this product has always been related to getting it installed on windows computers in the first place. Either the user’s computer is so riddled with shovelware and 6 different anti-malware programs that SOMETHING blocks the installation, or else the driver fails to install either from Windows Update or from the auto-install we include on the disk with the software.

For nearly every installation issue we’ve found, the fix has always been the same: 1) Turn off all your anti-virus software temporarily, 2) Run windows update repeatedly until it does not find any more things to update, then 3) Try to install our product again. This works 90% of the time. The 10% of the time when it does not work is because the windows computer in question is just too riddled with registry errors, viruses, malware, etc that nothing runs right.

What have you done to improve installation success in the minefield that is Windows?

[quote=120326:@Kimball Larsen]Has anyone figured out the right combination of incantations, magic, or soul-selling that needs to happen to let products built by Xojo be installed onto windows machines without invoking the wrath of their anti-virus software?

Let me explain more detail:
The main product I write in Xojo is called AcuGraph (http://www.acugraph.com), which is used by Acupuncturists to improve their practice. This product consists of the software I write in Xojo, and a piece of hardware that is used to collect measurements from the patient’s body. This hardware (we’ll call it the probe) interfaces with their computer using a well-known Serial <-> USB converter chip from FTDI. This chip requires specific drivers, which we have correctly signed and registered with Microsoft to be listed in Windows Update.

The trouble we have been having for years with this product has always been related to getting it installed on windows computers in the first place. Either the user’s computer is so riddled with shovelware and 6 different anti-malware programs that SOMETHING blocks the installation, or else the driver fails to install either from Windows Update or from the auto-install we include on the disk with the software.

For nearly every installation issue we’ve found, the fix has always been the same: 1) Turn off all your anti-virus software temporarily, 2) Run windows update repeatedly until it does not find any more things to update, then 3) Try to install our product again. This works 90% of the time. The 10% of the time when it does not work is because the windows computer in question is just too riddled with registry errors, viruses, malware, etc that nothing runs right.

What have you done to improve installation success in the minefield that is Windows?[/quote]

I have been selling Windows software for some like 30 years, and apart from the antivirus hurdle, have never encountered such a high level of incompatibility. My current sotfware is signed with a Comodo certificate from ksoftware.net and package with CreateInstall I have been using for more than 10 years now. Could it be that you tap in areas of Windows particularly sensitive to updates and such ? Or is it your installer that is too paranoid ?

If the Windows installation is full of junk, however, you cannot do anything about it. Maybe your particular customer segment is prone to that ?

Our biggest issue is getting the drivers to install properly. Either Windows Update does not work, or they have such an aggressive firewall / antivirus setup that it prevents the drivers from installing. We’ve jumped through all the signing/certification hoops with the installer of both the software and the driver, but still have daily phone calls from customers who just can’t make the darn thing work.

It could very likely be our particular customer segment for this product is less technically savvy than your average computer user, and consequently has more problems in general.

[quote=120326:@Kimball Larsen]
What have you done to improve installation success in the minefield that is Windows?[/quote]
<in jest - OK WAYNE ?>
Upgraded them to OS X :stuck_out_tongue:
</in jest>

Seriously though welcome to the reality of Windows
Machines that don’t get updated - ever
Old or outdated anti virus / firewall
False positives from antivirus vendors
Crap ware

Thats often the reality of machines that are not under some “IT group” control so they do get updates etc
Places buy a machine, set it up, and forget it (literally) until its not working

There may be nothing more to do than what you have already done

Maybe get into selling them the machine preconfigured for YOUR software etc :stuck_out_tongue:

[quote=120348:@Norman Palardy]<in jest - OK WAYNE ?>
Upgraded them to OS X :stuck_out_tongue:
</in jest>
[/quote]
Believe it or not, we’ve done this to more than a few of our customers over the years…

[quote=120348:@Norman Palardy]
Maybe get into selling them the machine preconfigured for YOUR software etc :P[/quote]
We have been seriously considering doing exactly this - we are currently putting together a bundle that includes a pre-configured low-cost windows tablet.

[quote=120348:@Norman Palardy]<in jest - OK WAYNE ?>
Upgraded them to OS X :stuck_out_tongue:
</in jest>

Maybe get into selling them the machine preconfigured for YOUR software etc :P[/quote]

Why not "upgrade" them to a low-cost Apple Tablet or Mac Book?? bwa ha ha ha. sorry, couldn't resist.

Huh. With all the clients and different apps we’ve had over the years we’ve never had this kind of installation issue. The only difference I see is that you’re installing FTDI drivers.

Don’t get me doing on USB To Serial converters, though - those have been a PITA. Even had an issue with Mac OS X Mavericks a month or so ago with a cheap Prolific converter.

Is it not possible to ship the drivers with the software? I haven’t had this issue and we use the FTDI chip in several USB to Serial Converters without issue. The computers are running semantic endpoint protection and have NEVER had it balk at anything developed in Xojo…

I’ve used these in the past and they’ve worked flawlessly with XOJO. Their hardware makes use of the FTDI chipset.

EasySync

If we ship the stock FTDI drivers, there are fewer issues - but we have our own custom Vendor ID and Product ID (VID & PID) that requires we take the stock FTDI drivers, modify them to be used only for our VID & PID, and then re-submit them to Microsoft for Windows WHQL / Logo certification and distribution via Windows Update. Recent versions of windows are very picky about what drivers can be installed manually, and unless things are packaged exactly right the OS will not let them install at all.

We’ve had to go with a custom driver because in our specific market space there are a number of other devices that are used by these doctors that also use the same or similar FTDI chip, and the stock driver was being used for multiple devices. This means that if our device was plugged into the computer and the user started one of the other programs that used a different device, it may decide to try to talk to our device instead of the other one, because the other software just grabbed the first FTDI device it found. Imagine a user has 2 printers installed, and when they try to print to a xerox, the computer tried to use the driver for the HP.

So, we distribute a correctly signed and certified driver via Windows Update, so that as soon as the user plugs in our device (in theory) the driver is found and installed automatically. It works about half the time. The other half the time, we have to pay for support staff to answer the phone and walk the user through updating their computer, removing the 8 anti-malware / shovelware apps they have installed, cleaning up their busted registry, and then trying the install again (when it usually then works).

TL;DR: We have to distribute a custom driver, and recent versions of Windows (64bit 8.1) are VERY finicky about installing drivers from sources outside of Windows Update.

Kimball,

Hmmm… This is interesting because I’ve used multiple FTDI converters on the same PC and when plugged in they use the standard driver BUT automatically establish different SERAIL COM port (i.e. COM1, COM2). Once I establish a connection to one of the COMs I am off and running. I also have unplugged them and plugged them back in and Windows seems to remember so there has got to be some underlying serialization or ID going on to establish this once.

Do you control the protocol of the device you are connected to? If so and If multiple devices are present, couldn’t you just poll the COM port for a specific message and expect a specified value back? Such as and unlock or ID key. If there is no response or the response is something other than expected then just poll the next COM port until you locate your device? This way you can use the standard driver. I also think you might get an serial open error trying to use a port that is already in use, which would be an indication it’s being utilized by another application.

One practice I have always done on serial comm with USB using serial converters is make sure my embedded device waits for a specific byte sequence then sends a specific byte sequence back. This ensures the software is talking to the correct device and the device is talking to the correct software. It also means the software or the device will reject any garbage from someone else’s software or hardware.

[quote=120531:@Joseph Evert]

Hmmm… This is interesting because I’ve used multiple FTDI converters on the same PC and when plugged in they use the standard driver BUT automatically establish different SERAIL COM port (i.e. COM1, COM2). Once I establish a connection to one of the COMs I am off and running. I also have unplugged them and plugged them back in and Windows seems to remember so there has got to be some underlying serialization or ID going on to establish this once. [/quote]

Yup, this is good if you are using the COM Ports…but we are using the .dll driver on windows, as the performance (speed of data over the wire) is MUCH faster via the windows .dll. Of course, this was the case about 6 years ago when I first wrote this application in what was then called RealBasic…perhaps improvements have been made to the serial communication features of Xojo to warrant a second look, and perhaps reverting back to using the COM driver instead. We have always used the COM driver on the mac with no issues.

@Joseph Evert - thanks for the insights, by the way… it’s good to make me rethink every assumption I’ve been making for several years that has sort of painted me into a corner. I really do wonder if moving back to the com port driver would be a better move.

as Norman and others already said: Welcome to the Windows World!

My thoughts on this:

Out-of-the-box solutions with windows PC would not be solve the basic problem even when they have been locked down before. Same users would say “hey we have another PC to play with” and/or this PC would still need your additional support for updates and patches cause nobody would feel responsible for it on customers side. Not talking for the administrative overhead in buying and pre-configuring, shipping the box before…

Try to promote an online ticket system for users issues as obligatory for your support. 50% of issues will be sorted out when somebody is ought to write down his problem before.

Make use of remote controlling software like Teamviewer, Pc Visit etc. if not used already.

But last and best advice: Let your customer simply pay for this additional support.
Make revenue in selling support contracts, this is how the PC industry could ever become so big.

I second this. Cuts down the hours spent on support tremendously.

[quote=120549:@Tomas Jakobs]as Norman and others already said: Welcome to the Windows World!

My thoughts on this:

Out-of-the-box solutions with windows PC would not be solve the basic problem even when they have been locked down before. Same users would say “hey we have another PC to play with” and/or this PC would still need your additional support for updates and patches cause nobody would feel responsible for it on customers side. Not talking for the administrative overhead in buying and pre-configuring, shipping the box before…

Try to promote an online ticket system for users issues as obligatory for your support. 50% of issues will be sorted out when somebody is ought to write down his problem before.

Make use of remote controlling software like Teamviewer, Pc Visit etc. if not used already.

But last and best advice: Let your customer simply pay for this additional support.
Make revenue in selling support contracts, this is how the PC industry could ever become so big.[/quote]

These are great thoughts. I’m not certain an out-of-the-box solution is a great one, for the reasons you cite. As to your other points, our company takes pride in having a real human answer the phone no matter who is calling, and when you need technical support with our products, you can be talking directly to highly - qualified people that can actually help you in under 20 seconds. This is really the result of our specific market, which has a high level of resistance to filling out tickets / reports for technical matters, and is full of large egos that need to be stroked. Further, we are so confident in the apps we build that we provide free lifetime support for the products… or rather, that is what we have been selling and marketing and providing up until now. We have been toying with the idea of charging for support for quite some time, and have a plan that effectively does this starting with the next major revision of our flagship product. I should emphasize that we really don’t have all that high of a load of technical support. We have one full time employee that splits his time as the marketing director and first-line technical support. He probably is able to spend 60-70% of his time on marketing. Rarely (like 1-2 calls per week) will a call have to be escalated to me. We’d just like to cut down his support time so that he can spend more like 80-90% of his time on marketing.

As for remote control software, I can’t say enough good about SimpleHelp (http://simple-help.com) - fantastic features and a great price. We use it every day.

Then you are sitting in a growing company, congrats :wink:

Of course the question how to support strongly depends on your customer base and who is calling. The higher the Egos, the more individual and exclusive your support has to be. It’s a matter of ressources and time you or your teammate have.

But 60-70% of support time sounds quite normal to me. I’ll share with you my numbers.
Btw. this is another reason for a ticketsystem even when used internally without harming your customer base :wink:

Since 2011:

Number of Tickets: 3197
ø working time per Ticket: 39 Min
ø time to close a ticket: 8 days
Efficiency: 34,57 %

Total Time (paid and not paid time): 124.420 Min (2.073 h)
Paid time : 43.007 Min (716 h)

Not 60-70%, 30-40% support time…

Is there any publicly available ticketing solution you would recommend?

Nope… all Open Source Ticketsystems were too complicated and oversized for me (and for my customers) and do not match my workflow. So I developed one for myself 5 years ago in ASP.

I would like to rewrite this in Xojo, maybe creating an own product but you know, it’s the time… it’s always the time…
Here are some screenshots… of course in german… but you get picture I guess…

https://www.facebook.com/media/set/?set=a.266384670093086.67959.212638605467693&type=3