Rant: .NET Component Vendors

C

Chien Lau

I had a situation occur today that's happened a number of times before
and I'd like to get your take on it:

Imagine... You're developing a WinForms app for a client that includes
the use charts. So you purchase a .NET charting component, design the app,
and deliver it to the customer. One year later, the customer comes back and
says, "There's a bug in your app. The application crashes when I do such and
such to the chart." I start debugging and realize that the error is
occurring in the charting component. I call the vendor who acknowledges that
yes in fact there is a well-known bug in the charting component. It's been
fixed -- but if I want the patch, I need to pay for the product again. This
seems outrageous to me, but I've had it happen to me with numerous component
vendors that provide charting, grid, docking windows, and FTP functionality.

On one hand, I see their point. In the year since I've released my app,
they've added lots of cool features to their component and they want to be
paid for their work... but on the other hand, I don't CARE about the new
features. All I want is to get this bug fixed, recompile, and re-deliver to
my customer. Why should I have to shell out another $600 for a completely
new version of their component?

Some .NET component vendors handle this by trying to get me to sign up
for a "subscription." Under the subscription, I'd get the latest version of
that vendors product(s) for as long as I keep paying for my subscription.
What's your opinion of this? Do you guys typically buy into these
subscriptions? A sales person at a popular component vendor today asked me,
"When you buy Visual Studio 6.0, do you expect to get Visual Studio.NET and
all future versions of VS for free?" My reply was, "no." I said that I don't
mind paying more money for VS 7.0 because I planned to make use of many of
it's great new features... but I wouldn't be too happy if MSFT charged me
again for the product or make me "subscribe" just to fix glaring bugs. When
Microsoft finds a glaring bug in Win2000, for example, they give me a free
patch -- they don't tell me "tough luck -- go pay for Win2003."

What's your opinion on "subscribing" to a software component (like a
grid, chart, smtp, etc.)? Is my frustration unjustified?
 
M

Michael C

That definitely sucks. They should have given you a patch for the old
version of the charting component. I tend to be a little behind the early
adopters in this sense - I've been burned enough times by faulty first run
software and components that I hardly ever buy a 1.0... As far as a
subscription - depends on a lot of factors; the main ones being how much
value will I get for my subscription $$$ and how often will I re-use this
particular component for other projects. If it's a single-shot deal and
you'll never have use for it again... well...

On the other hand, it's easy to get in the mindset of getting a project
done, running through some test cases and ship it. It's been my experience
that getting someone else to test your app before you deliver is a pretty
good idea. I recently created an app that worked fine for my limited test
cases, but I handed it off to someone else who ran some very strange tests
and in the process uncovered some well-hidden bugs.

Best of Luck,
Michael C.
 
F

Floyd Burger

They should either give you a free patch or a free upgrade. I'm using a
serial comms library and it had a few bugs in it (it was a 1.0 version),
once they released 1.1 they gave that away since it fixed some known bugs
(even though there was a pretty major architecture change) From what I
understand, once they release 2.0 (with CF support) that will be free also.
 
R

Relaxin

All I want is to get this bug fixed, recompile, and re-deliver to
my customer. Why should I have to shell out another $600 for a completely
new version of their component?


Borland's vendor "some-what" solved that problem by giving you the source
code with all components that you purchased.

So if a bug does come up and the vendor is not going to fix it, at least you
can try to fix it yourself.
 
G

Guest

There are several decompilers on the market do they have it obsfucated? If not decompile it and try to fix it yourself. Many of the early adopters did not obsfucate their stuff. In fact you could download the current stuff, decompile it and try to take their licensing information out of it :). Then you dont have to pay for squat.

I usually dont do this but when you are being jerked around sometimes you have to take matters into your own hands. :)

jason.
 
A

Alan Pretre

I'll be the dissenting voice here.

If you try to place a dollar value on the time you're saving by not having
to write this component yourself, I think anyone would agree $600 is still a
bargain. And if you are not even capable of writing these yourself with the
same quality then its even more valuable to you. If this is a reputable
vendor with high quality stuff then I think the $600 is a reasonable
investment to make you look good. Even if you could write these yourself,
what is your time worth to you? Finally don't be too hard on the vendor.
Your code has problems too. There is no software without problems. Perhaps
if you'd kept abreast of the changes sooner that a year you could've gotten
patches for free.

-- Alan
 
M

Michael C

Charging a customer for new features is one thing. Charging a customer for
a patch to fix an acknowledged bug in a software product is not good
business. The only problem the OP told us about is the one caused by the
buggy component he purchased, so where does "your code has problems too"
come from? Situations like this make you read the fine print twice before
spending your hard earned $$ on buggy components from vendors who won't make
good when their software is discovered to be faulty... today, next week, or
a year from now.

Thanks,
Michael C.
 
A

Alan Pretre

Michael C said:
Charging a customer for new features is one thing. Charging a customer for
a patch to fix an acknowledged bug in a software product is not good
business.

I disagree here. This happens all of the time. Call it maintenance plans
or maintenance contracts or one year of free upgrades or whatever. To think
that you can just purchase a component for x dollars and then get free bug
fixes forever in all cases is naive. Is that good business for the vendor?
Maybe, maybe not.
The only problem the OP told us about is the one caused by the
buggy component he purchased, so where does "your code has problems too"
come from?

It sounded to me like he was being too harsh on the vendor. My point was
that everyone's code has problems, his included. If he found value from
this vendor's product, and it seems he did, then it is not unreasonable to
reimburse the vendor for their effort. The vendor has expenses too and a
staff to pay. If he values their products and would like them to be in
business down the road it's in his best interest to support them. Compared
to say, soft drinks, the potential market size of a software component is
orders of magnitude smaller. When you figure that the market penetration
for the vendor's product is probably just a fraction of this already small
potential market, it is not surprising that the vendor needs the revenue.
Situations like this make you read the fine print twice before
spending your hard earned $$ on buggy components from vendors who won't make
good when their software is discovered to be faulty... today, next week, or
a year from now.

I don't disagree with this at all. Good research is always prudent before
plunking your cash down. Since the OP says it took his customer a year to
find this bug it doesn't sound to me like this vendor's product is "buggy".
If you are a pro developer, then $600 for, I'm guessing, unlimited
distribution of their component is not unreasonable. It all comes down to
what is it worth to you?

-- Alan
 
B

Bob Grommes

Another option is to purchase the source code version of a component (if
there is one). If you expect the feature set of the current version will
serve you well for several years, then it may be cheaper to endure the extra
cost up front and maintain it yourself. Sometimes the source is not that
much more.

Another way to look at it is that if you pay $600 for a component and this
saves you several thousand bucks developing the same functionality yourself,
then what's another $600 to fix a bug that took the customer a year to
notice? You are still ahead of the game.

All of these are rationalizations of course -- the vendor should not charge
full price for a version upgrade and they should be willing to cut a deal in
a case like yours in the name of customer satisfaction. But, many companies
don't understand customer satisfaction.

--Bob

JMW said:
There are several decompilers on the market do they have it obsfucated? If
not decompile it and try to fix it yourself. Many of the early adopters did
not obsfucate their stuff. In fact you could download the current stuff,
decompile it and try to take their licensing information out of it :). Then
you dont have to pay for squat.
I usually dont do this but when you are being jerked around sometimes you
have to take matters into your own hands. :)
 
G

Guest

Entirely your problem. If you don't either (a) use a charting component you
know well enough to trust, or (b) write your own, then you're entirely to
blame for not testing it. After all, the component vendor probably let you
download a free trial version for you to be able to test it under all
possible scenarios, otherwise they probably wouldn't have got their business
off the ground if they didn't.

Why not become a component author yourself, then you can show them how it's
done?
 
T

ToddT

i'm sympathetic to your cause and i believe that the vendor should
provide a patch for free. however, if the bug wasn't noticed until a
year after you deployed your app, i wouldn't describe it as a "glaring
bug"...

which vendor is it so i can avoid them?
 
C

Chien Lau

i'm sympathetic to your cause and i believe that the vendor should
provide a patch for free. however, if the bug wasn't noticed until a
year after you deployed your app, i wouldn't describe it as a "glaring
bug"...

which vendor is it so i can avoid them?

You're right, I misspoke. I shouldn't have used the word "glaring."

I don't want to mention the specific vendor in this negative thread
because they *did* eventually agree with me and provided me with a free
upgrade.

Here's an example to illustrate. I purchased a charting component to
display a profit/loss graph on a UserControl. I tested the UserControl
thoroughly. Everything worked fine. It turns out, however, that the charting
component is more sophisticated that it initially appears. For example, the
user can right click the chart and will be presented with literally dozens
of properties that can be set to change various aspects of the chart (3d
rendering, line colors, etc.). Very cool, actually. It turns out that a
particular combination of properties causes an unhandled exception in the
component. Because of the way the component uses threads, there's no way for
me to catch the exception. The bug wasn't discovered by any users (or the
vendor) for well after a year of the component's release.

So, what is one to do? I could:

a) Follow Patty's brilliant suggestion and just design a new charting
component myself. NOT.
b) Berate myself for not catching this bug on my own -- despite the fact
that even the VENDOR wasn't able to catch it after careful testing. Nope.

or

c) Ask the vendor to give me a free patch.

I chose (c). Just to be clear. I'm not ragging on the vendor having a
bug in their code. All code has bugs. I'm not even complaining that they
took so long to fix it -- after all, it did take a while to come to light.
My only complaint is that they initially wouldn't give me the patch without
demanding that I "resubscribe." Eventually, they saw things my way. I've
been using components for many years and I'm now beginning to realize that
vendors can be categorized into two categories: those that believe the
"customer is always right", providing free patches for paying customers, and
those who don't. I've continued to buy more components from the former
category and I've stopped doing business with the latter -- and for what
it's worth, I can think of at least three from the latter category which are
either now defunct or heading in that direction... which tells me that a lot
of customers out there are like me, they vote with their feet so to speak.

One bit of advice that I've found helpful when dealing with a new
component vendor: Visit their support newsgroups. If you see a bunch of
angry customers complaining about having to pay for bug fixes, that's a red
flag. Had I followed this advice years ago, I could have saved myself a lot
of hassle + money.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top