"Dependence on a product and insurance go hand-in-hand. If you
rely on an excellent piece of software, no matter how excellent it
is, something might someday go wrong. When that happens, who better
to call than a small company where support engineers will have
access to the actual developers? Of course, you also have a service
level agreement (SLA) with that company, guaranteeing a certain
"More often than we like to admit, we are stuck with a crappy
product. It is the only option, it would cost too much to replace,
or we cannot admit to choosing poorly. Whatever the reason, we need
help just making the crappy product behave as advertised, so
support is required.
"Conversely, a good product may also elicit a need to purchase
support, but for very different reasons. Aside from insurance or an
SLA, we may feel a certain obligation to support the developers.
First, they wrote a wonderful piece of software that we depend on
and that saves us untold amounts of time. Second, we need to ensure
that the project will continue. Finally, we may wish to "sponsor"
certain features, rather than code them ourselves."