I'm working on a product that requires a large amount of interactions with different external data providers. These data providers uses a number of standards (primarily xml-based) which are all governed and agreed upon. Some of these standards aren't that great and can be open for interpretation.
Now, once in a while, some data source decides to differ just a little bit from these standards, which means that my application shows an error when the user tries to connect to them - however - a lot of competing products seems to be less concerned about correctness, and simply goes in to quirks-mode to get something working. From my customers' perspective, my product sucks since it can't do X but the competing product can, and when I try to contact the data source to have them fix their issues, I either don't receive an answer, I get to talk with some non-technical person who has no clue about what I'm talking about, or the time-to-deploy on the fix is simply really long.
The way I see it, I got 2 options:
- Stand firm and risk losing customers, or
- Do ad-hoc quirks and hacks for semi-compatible sources (which would then need to be supported)
I've been looking for historical precedence for how others have handled these problems (for example, the Firefox vs. IE battle, where some sites simply didn't work in FF because the site contained errors or non-standard constructs), but without much luck about finding anything of substance.
Regarding option #1 I think it's clear that if that is the route to go, I somehow have to make the user understand that the problem is on the side of the source, without getting too technical, which can get tricky.
Regarding option #2 I also have to consider the huge upkeep cost it's gonna be we I have 50+ differently hacked and quirked sources, not to mention the overhead in the of the weird bug-reports that are bounds to come. Also, by embracing quirks I would myself be part of the problem of everyone not following the standards.
Does anyone have any experience with a situation like this? What are the major things to consider here? Have I overlooked something?
[Update] After reading the comments here I've decided to give some more context. I'm working for a small team (3 devs, ~10 people total) managing a product in a large coorporation (1k+ employees). Our product is a spatial suite (think google maps) with a lot of domain-specific workflows build in. My main issues are with WFS/WMS servers using the OGC standards (http://www.opengeospatial.org/standards/wfs and http://www.opengeospatial.org/standards/wms respectively). These standards are a maze of optional parameters, open-for-abuse, and open-for-interpretation definitions specifically regarding default values (well, that's my opinion anyway). Now, if you look past the standards, in the world of spatial data you also have a lot of other issues like wrong projections, self-intersecting geometry, and oh so much more :)
As I stated, we are a rather small team, but since our corporate name is quite large, our customers expect us to handle everything in quite a professional manner - well, some customers anyway.