I make a significant part of my income from developing Facebook Apps.
Facebook's habit of changing their API, rewriting large chunks of the
API or simply just failing to provide a stable API/Platform for App
developers makes the environment a minefield for those such as myself.
I have developed Apps for clients on behalf of media agencies only to
find Facebook have changed something, making changes necessary to
simple restore developed functionality. Understandably, neither media
agency nor end client see why they should pay for the work necessary.
The result is that I'm now forced to add in a certain contingency to
every job just in case this should happen. Money aside, the extra
effort needed to "complete" a job or meet deadlines when one isn't
100% in control of the entire environment, is a potential major cause
of project stress, or even overrun - something not good for the
reputation.
An API provider should provide a a form of Service Level Agreement -
and not one that says they have none but one which commits them to
providing timely support and a stable environment. All changes to that
environment should be fully tested before being released and
developers should receive ample advanced warning of changes and be
able to benefit from a grace period after changes go live, during
which both "old" and "new" API features are supported. This eases
transitions and gives more time to react.
Facebook, for example, have no doubt benefited hugely from a large and
engaged developer community. To then not provide timely support to
those developers or to block API access to one of them without prior
communication is simply not acceptable.
More thoughts to come...
Robert