Many organizations are beginning to use ‘mashups’ to create enterprise applications. Mashups allow organizations to rapidly implement new functionality via the use of web technologies, content from multiple data sources, reusable user interface components, and loosely coupled services.
Many consumer and social sites have used mashups for some time. However, enterprises are just beginning to reap the benefits afforded by mashups. Mashups create an extremely agile and dynamic design and implementation environment within the enterprise realm, thereby allowing IT and advanced users with some technical skills to develop powerful and useful applications and services. Generally, three categories of items can be mashed together:
- Presentation (user interface artifacts)
- Process (application functionality)
Mashups are generally created ad hoc. However, an enterprise mashup must heed a more restrictive set of considerations such as privacy, authentication, governance, compliance, standards, security, and other business-related issues that public domain mashups are often free to ignore. In addition, enterprise mashups often restrict access to certain types of intellectual property and/or protected information. This is similar to the issues that organizations that use SOA face when exposing service APIs to the web community.
Architecturally, there are two styles of mashups: Web-based and server-based. Whereas Web-based mashups typically use the user’s Web browser to combine and reformat information, server-based mashups analyze and reformat the data on a remote server and transmit the data to the user’s browser in its final form, usually as a Web service.
Data mashups are also starting to be used for business intelligence. Certain vendors have proven capabilities that allow users to create applications using a combination of disparate data sources on the fly without relying on a middle step such as ETL and data warehousing. For end-users or business analysts that look at the related dashboards or drill through reports, this behind the scenes mashup is invisible. They simply enjoy the benefit of greater access to data, and enhanced ability to gain insight from it. Combining data from different tables in a way that wasn’t previously anticipated has provided significant benefits to businesses.
While combining disparate data sources is a common application for a data mashup, note that even in a single data source environment a mashup can be made by combining multiple views.
When a mashup is used for presentation, the developer is often constrained by an environment that has evolved in a hodge-podge way from processing simple text and graphics pages to one that is beginning to offer many features found in a complex desktop application. This messy evolution has suffered because of the mismatch between the free-natured needs of the web environment and the restricted nature of the few primary browsers. Standards and best practices are emerging that may over time offer sanity to this mess.
Development of enterprise mashups cannot be supported by the classical software development lifecycle (requirements, design, build, and test). Similar to agile, enterprise mashups focus on actual working software and not on a comprehensive specifications or documentation. To successfully develop Enterprise Mashups in short periods of time, it is necessary to support a continuous development cycle using a technique such as ‘Kanban.’ Enterprise mashups are generally produced more rapidly than agile iterations and require frequent input from users. Developers build within hours or even minutes “quick and dirty” enterprise applications, often with components that are not under their control. Even though many users accustomed to enterprise mashups are more tolerant of bugs and poor performance, enterprise mashups require a stable mashup environment to be effective.
Good requirements are needed to guide development of enterprise mashups, but the requirements process must not be a bottleneck or hindrance. The list below provides five recommendations of how to define requirements for enterprise mashups.
- Carefully define the vision, scope and business objectives for the initiatives. Clear business objectives should not be an afterthought for a mashup.
- Gain an understanding of the business process that the mashup will support.
- Carefully elicit and document user needs.
- Define functional requirements. Generally, mashup requirements should be classified as presentation, process, and data. Gathering functional requirements this way will make the requirements easier to apply for enterprise mashups.
- If possible, create wireframes or use other visualization techniques to document the requirements. Given the environment, prototype mashups may even be used to visualize the requirements.
- Define supplemental requirements for performance, privacy, authentication, governance, compliance, and other needed issues.
- Release requirements to development on a continuous basis using Kanban techniques.
The Enfocus Requirements SuiteTM may be used effectively to document and track mashup requirements.