Deploying a new system? Want new features? Expect immaturity.

If you're a Bellhead, accustomed to the stability, processes, and
reliability you get from old-line telephony companies like Nortel,
Lucent, and Siemens, and you want to deploy VoIP and get neat-new-whiz-
bang features, then you shouldn't expect to get the same stability and
reliability.

There's an intrinsic trade-off in complex systems: if you want new
features, then you get new bugs, and new problems — and I don't just
mean software problems. You get vendors (software developers) who
don't use the staid processes to give reliable, predictable results.

The VoIP software-development shops in Montreal and elsewhere will
tire of the anger from customers. They'll grow weary from the strain
of adding new features, then fighting off complaints from all the
things that broke. They'll implement processes to ensure their
software is reliable. Nothing will be released to customers without
extensive testing; customers will have confidence that it works well
when they install it.

The internal processes will become heavy to make these strong
guarantees. The internal costs to add new features will shoot up as
the organization carries the weight of more project management to
track all of the testing.

The cost of new features will be real; instead of providing new
features as part of standard support, the software shop might start to
charge extra for new features. In the old days, adding Caller-ID-with-
Name to your Lucent 5ESS might cost you a million dollars; in the
future, adding some unforeseen feature might add similar cost to your
VoIP platform. Maybe that's the feature to deliver your home address
to the pizza-delivery guy when you order a pizza; or the feature that
automatically transcribes your call to text. The software shop just
won't be able to afford to make the change for "free".

The alternative for you Bellheads — is to give up on the guarantees.
Don't expect anything of your software vendor. Hire your own
programmers, do all your own tests, and maybe even fix some of your
own problems. This is essentially the approach of service providers
that use Asterisk.

Is it better to accept your own risk, or to pay your software vendor
to accept the risk for you?