In this series of three blog posts we’re investigating a few
technical challenges for social CRM solutions. In
part one we looked at the problem of
finding people on social networks. In this second part we
discuss hiding various kinds of issues with social network
APIs.
Last week TweetDeck had to
rush out a minor update because of a Facebook
integration problem. It appeared that Facebook had
implemented some changes in their public API, apparently without
bothering to communicate this to anyone. The result was that
TweetDeck users were confronted with authorization pop-ups every
time they restarted the application.
It seems that changes in social networks APIs
are more common than videos of
funny kittens. All too often there are new APIs, new features,
changed method calls, authorization updates, switches in protocols,
etc. For example: at sociotoco.com we not only
noticed the unannounced change in Facebook’s API. We also know that
Foursquare is switching from XML to JSON, and that Twitter is
completely abandoning basic authentication in favor of OAuth.
As a provider of social CRM-enabled systems, how can you
deal with so many changes?
Here are some ideas from our own experience:
Limit dependencies to central servers
The Facebook API change was a problem because TweetDeck has
implemented the connection in their client application. This is an
architectural decision with far-reaching consequences. When any of
the network APIs change, TweetDeck has to release a new version to
all its users and ask everyone to update their local installations.
Such changes are much less of a problem for competitors like
HootSuite. They have server-based applications and they can easily
fix their application and push the update to their servers in a
matter of hours.
Monitor all announcements
Social networks have plenty of blogs, Twitter streams, developer
forums, newsletters, and other sources with information about their
API’s, and any upcoming updates. But the question is: who is going
to read them all? In your software development team you must
formalize the process of being up-to-date. It is important that you
know when new API features are added and, even more crucial, when
old features will stop working…
Monitor all code dependencies
Any agile software development team will create unit and
integration tests to make sure that existing code keeps working as
expected. This is particularly important when part of that code
depends on other people’s code. After all, it’s usually other
people who screw up, isn’t it? 🙂 Their breaking changes, that
they didn’t inform you about, need to be caught immediately before
they wreck your application.
Limit the number of social networks
Finally, you have to think hard about your business. Do you need
connections to Facebook and MySpace? To YouTube
and Vimeo? To Twitter and Google Buzz? For every
social network added to your system, you are adding lots of
maintenance. You will need to know whether the business value of
having these connections is going to pay for the costs of their
maintenance.
It is clear that the social networking space is a very dynamical
environment. With the right measures one can make sure that bad
programming (and bad communication) on the side of social networks
is unable to make a mess of your social CRM offering.
At sociotoco.com we’re trying to solve these
problems for everyone who is unable to do this themselves. But, as
everybody else, we keep learning…
back to part 1:
Finding Social Profiles