Experience on Mashup Development with End User Programming Environment

1. INTRODUCTION Mashups are Web applications that combine data or functionality from other Web sources into a new and integrated service (Wikipedia 2009a, Yu et al. 2008, Zang and Rosson 2008). They are expected to be developed quickly using open data sources or Application Programming Interfaces (API) (Zang and Rosson 2008). Their rapid initial successes, especially in using Google Map API, quickly fueled phenomenal development and adoption. Mashup "has become one of the hottest buzzwords in the Web application development area" (Yu et al. 2008). For example, the website programmable Web (2009), which tracks mashups and related open APIs, recorded 4,254 mashups and 1,425 APIs. It also reported an increase of three mashups every day on the average. The importance of mashups is not only in its ubiquity. It is also a focal point of three interlinked major trends in information systems: Web 2.0, situational software applications, and end user programming. Since coined in 2004, Web 2.0 (O'Reilly 2005) has already become a household term. The pervasiveness of representative Web 2.0 applications, such as Facebook. Flickr, Twitter, Google Docs, and YouTube, ensures that the term has become a fundamental lexicon for the modern society. Besides being used universally, Web 2.0 also deeply influences nearly every facet of our lives: culture, education, business, technology, etc (Kim et al. 2009). In particular, the importance of Web 2.0 cannot be underestimated in IS education. The Journal of Information Systems Education recently devoted a special issue with twelve papers on the effective uses of different Web 2,0 technologies, including blog, wiki, podcast, social network and virtual world, in IS education (Harris & Rea 2009). However, the impact of Web 2.0 is even deeper than the proper integration of Web 2.0 technologies into IS learning and teaching. Equally importantly, Web 2,0 profoundly affects core components of the subject knowledge of IS education: how software are conceived, planned, specified, designed, developed, updated, and used. Web 2.0 techniques, architectures, tools, standards, software development methodologies, design patterns, and project management approaches should be studied and assimilated into IS curriculum to complement the existing set of methodologies. From this perspective, mashups are exemplary as an embodiment of Web 2.0 ideals (O'Reilly 2005, Kim et al. 2009). Mashups are highly popular and they frequently use Web 2.0 technologies such as AJAX, XML, RSS, JSON, Open APIs, and Web data sources (Kim et al. 2009). Their application areas are diverse and closely associated with key Web 2.0 application domains such as social networks. Their development methodologies are representative of Web 2.0: rapid development and modification, crowd sourcing, extensive use of open standards and APIs, etc. Thus, mashups are excellent pedagogical vehicles for Web 2.0. The second closely related trend is the proliferation of situational applications (SA), which loosely refer to applications built for addressing a particular situation, problem, or challenge (Cherbakov et al. 2007). Wikipedia (2009b) defines them to be '"good enough' software created for a narrow group of users with a unique set of needs." The application may be used specifically for a given task of a small social group (Shirky 2004), an enterprise business problem (Cherbakov et al. 2007), or any targeted situations. SAs are very useful because of their custom-made nature for particular situations. However, with limited user size, functionality, scope, and life-span, SAs can only be cost effective if their development cost is low enough. Until recently, this cost and benefit consideration did not favor SAs. Developing SA was just very expensive. The cost effectiveness balance had recently changed to largely favor SAs as their development cost was substantially lowered. Cherbakov (2007) listed eight contributing factors to the rapid rise of the popularity of Web-based SAs. …