3rd Party Libraries
To
get a project off the ground in a reasonable timeframe, you
often have to rely on software written by sources external to
your company. Proprietary 3rd party software and open source
implementations play a role in most large scale projects. There
is no point in re-inventing the wheel when you can save time
and money.
It is vital that
this software is wrapped in an appropriate abstraction layer.
None of its code should become part of your codebase. If they
should cross paths, wasted weeks/months and a perpetual headache
may ensue.
"But we can
easily code it into this component, and that system, why bother
with the abstraction layer?" What if the 3rd party developer
decides to change their pricing plan? What if they drop support?
What if they change their licensing for the next version?
Any of these scenarios would require a change of libraries,
either to another provider or a custom implementation.
With a proper level
of abstraction, changing utilities/libraries can be achieved
achievable in a relatively short timeframe (relative to cleansing
an infected codebase). Open source software may seem immune
to this type of problem, but you may one day discover a better
alternative and decide on a switch. Remembers kids, BSD and
Apache are your friend. |