As I was preparing to teach a design class, it occurred to me that we over emphasize the objective of an end user and neglect the role of other programs as consumers. The shift from Web 1.0 to 2.0, and the consequent emergence of the Web as a platform, means that we should look at design from additional perspectives.
In the era of Web 2.0 applications will be aggregated (portals), remixed (mashups) and discovered. Given this, how should you describe API needs and how do you tag applications or reports generated by applications? I hope to emphasize some of these concepts in my class.