Page:Aaron Swartz s A Programmable Web An Unfinished Work.pdf/41

'''4. BUILDING FOR CHOICE: ALLOWING IMPORT AND EXPORT 29'''

And, of course, it goes both ways: a great way to attract users is to provide import functionality yourself. By supporting import from other products, whether they have ofﬁcial export features or not, you make it easy for users to slide into your own version. Even if your competitors don’t have an ofﬁcial export function, you can still help users out (and offend your competitors) by scraping data out of their system—writing custom tools to pull stuff out of their user interface and into your database.

The end result is the kind of frictionless world savvy users can only dream of—smoothly gliding from one app to another, taking advantage of new features without having to give up your old data. And if the company making it gets bought and the developers who wrote all the new features quit and start a competitor, you can pull your data right back out again and zip over to the new app.

Which means more choice—and isn’t that ultimately best for everyone?