Software development team members want to do a great job on their projects, no matter the role they play on the project team. Software development best practices can help them increase their productivity and the quality of their work. But there is a lot of information available out there about best practices. On one hand that can be a good thing, but on the other hand it can make it difficult for team members to contextualize and consolidate the pieces of information they need.
This article provides an overview of mashups -- a type of situational application for the Web 2.0 era -- and explores the use of IBM® Mashup Center environment to facilitate project team members to consolidate and access process information that is relevant to their roles on the project team. That information may be presented in structured format, such as practices content found in IBM Rational® Method Composer; or less structured formats, such as articles, tutorials, forum entries, etc., found on the Web.
In many organizations, individuals and groups need to access enterprise data to make business decisions, as well as automate their business functions in order to be productive. But these business professionals can't necessarily wait for their IT departments to carry out long projects to develop the applications they need to access corporate data and automate their job functions. This reality propels individuals and groups to rapidly create short-lived applications -- called situational applications -- in order to satisfy their immediate needs. 1
Similar situations occur with software development project teams. Those teams want to do a great job and develop high quality software, while finishing projects on schedule and on budget. One way to achieve these objectives is to have teams selecting and making use of well-known software development best practices in their projects. However, in most cases, project team members do not have the required skills or time to author, configure, and publish their own process -- what they want is to leverage existing process descriptions. For that matter, they can use software development best practices captured in formalized process descriptions such as those created in-house by a process engineering group, or those available via open-source projects, such as Eclipse Process Framework (EPF) 2, or commercial tools, such as Rational Method Composer 3.
In addition to formal process descriptions, team members want to harvest knowledge and experience captured by their peers within their organization and in the software industry, in any available format, such as from published books and online resources (articles, forums, blogs, tutorials, etc.).
The good news for project practitioners is that they can find a vast amount of process information available from many sources and in various formats. Conversely, trying to find relevant process information from disparate sources and formats makes it hard for individuals to remember where to retrieve that information from. Combining and putting that information in the context of their project needs is an additional challenge. Moreover, there is a perception that formal process descriptions can sometimes be daunting and complex to navigate, so project team members need to be able to select only the portions of the process description and supporting material that apply to their specific role in the project team. Another potential issue is that software development teams do not have the time to assemble advanced project portals where they can consolidate and visualize that kind of information. Getting engaged in such an effort would distract team members from conducting their own project activities.
The IBM Mashup Center 4 is a powerful tool that allows team members to rapidly create situational applications that make important assets available for project practitioners to use in their day-to-day activities on a software development project.
A mashup is a Web application that combines data from different sources into a single application 5. That data, which was not initially conceived to coexist with other data, when combined in a mashup page allows users to have insights and make decisions based on the resulting combined data. There are different ways that a third party can provide access to the data to be mashed up; for example, via public interfaces, application programming interfaces (APIs), Web services, and mechanisms such as feeds (following RSS 6 or ATOM 7 standards for Web content syndication).
Project team members can create mashups that consume data from disparate sources using content syndication technologies such as RSS or ATOM feeds. These feeds (generated by data sources like formal process descriptions, or informal sources from the Web) allow project practitioners to sign up for only those sources that are of interest and applicable to their project needs or their role in the project.
For example, a project lead might be interested in adopting a development practice such as iterative development in her project, and for that she would subscribe to forums, technical libraries, and blogs that provide feeds, and then search for specific entries and articles that provide the information about iterative development techniques. Besides the less structured content available on the Internet, this project lead may also sign up for feeds that return structured process descriptions created using leading tools such as EPF Composer (see below) or Rational Method Composer.
In many IT organizations, process engineers create process documentation -- process workflows, artifacts, templates, guidance, and so on -- for project practitioners to follow in their daily project activities, and to generate the deliverables that management and stakeholders expect to see. Process engineers apply standard meta-model definitions such as the Software Process Engineering Meta-model (SPEM) 8 when developing process models and descriptions. IT vendors and open-source initiatives provide tools to support creation of process documentation following the SPEM standard.
One example is the open-source project EPF, which provides a tool named EPF Composer 9 used for authoring, configuring, and publishing process documentation. The EPF project also provides exemplary processes captured in EPF Composer, such as EPF Practices, Open Unified Process (OpenUP), Scrum, eXtreme Programming (XP), and others. A tool that is commercially available is Rational Method Composer, which is built on top of EPF Composer and adds advanced capabilities for enterprise authoring, configuring, and publishing of process documentation.
Process content published with EPF Composer or Rational Method Composer can be deployed to the EPF Wiki 10, which is an environment that allows process users to browse through and collaborate on the published process content, by adding comments, changing existing content, adding new pages, and so on.
Once those feeds are available from the EPF Wiki and sources from the Web, their content can be consumed in a mashup environment such as IBM Mashup Center, where process information from these various sources of interest can be combined and visualized. Mashup Center provides browser-based tools to create consumables such as feeds and widgets from various sources of data, and to store those consumables in a catalog for later use in the creation of mashups.
Below I introduce typical personas and usage scenarios for what is called "process mashups." You can utilize Mashup Center for the creation of the mashups in those scenarios, and consume process descriptions generated by EPF Composer and Rational Method Composer published to the EPF Wiki, as well as other sources from the Web.
Note: In this article, I illustrate the consumption of such feeds in IBM Mashup Center for the creation of mashups. However, feeds can be consumed by any feed reader or environment and tool that provide ability to read feeds, such as IBM Rational Team Concert dashboards 11, IBM Lotus® Notes® 12, and so on.
Sample uses of process mashups
Let's illustrate practical ways of creating and using process mashups. Here, I introduce two personas that play typical roles in a software development project, such as project lead and developer. Let's look at what these professionals would like to accomplish in their daily project activities.
Jill is a project lead who is adopting new software development practices in order to improve the way she manages her projects. She aims to increase the chances that her projects are completed with quality, on time and on budget. She also wants to provide her team with access to the latest information available in the Web about software development best practices. Jill wants to have easy access to the practices adoption status on her project, so she can help the team identify gaps and improve the way they work.
Tim is a software developer on the project led by Jill. He wants to create high-quality software and thus is eager to follow software development best practices. Tim also wants to learn what his peers in the organization and in the software industry are discussing about techniques and tools. That information can come from discussion forums, communities of practice, and other available sources. He needs access to tech chats, articles, tutorials, and other available help to get him up to speed and do a great job.
Based on these project-related and professional objectives that Jill and Tim want to achieve, next I describe their actual project and role needs in more details and how the use of mashups can quickly provide the process information they need to do a better job.
Usage Scenario 1: My Practices
Tim, as a software developer, wants to write good software, so for that he needs to have guidance available to make the use of process as easy and effective as possible in his daily job. He wants to see a list of practices being adopted on the project, and all relevant documentation for each practice. He also wants to be aware of what peers and communities are discussing about related topics, by accessing Web pages tagged by peers, discussion forums where peers participate, and relevant articles and tutorials created by the software community around those topics.
This usage scenario can be implemented in IBM Mashup Center as follows. Tim signs up for feeds from different sources such as:
-
A list of practices and practices details coming from the EPF Wiki. In this case, Tim can either point to his company deployment of the EPF Wiki, which would most certainly contain the customized set of practices followed by projects on Tim's organization; or he can point to the open-source deployment of the EPF Wiki in the EPF Project itself, which contains out-of-the-box practices for anyone to follow. The feed results are shown in widgets A and B in Figure 1 below.
-
Entries from resources available in the Web. The first resource is the Rational Forum on IBM developerWorks® 13 showing discussion topics related to the practices being adopted by Tim. The second resource is from a tagging application that shows pages tagged by peers in his organization, thus leveraging the social networking aspect of sharing information. The third resource is the IBM Technical Library on developerWorks 14, which allows Tim to retrieve articles and other collateral related to the practices he is adopting. These feed results are respectively shown in widgets C, D, and E in Figure 1.
By bringing all these sources into one page, now Tim does not have to access them from different windows in his Internet browser -- everything is on the same page. Moreover, the presentation of information is dynamic: as Tim selects different practices listed in widget A, for example the iterative development practice, he can instantly see everything related to that particular practice in the other widgets, such as the practice details from EPF Wiki, forum discussions about iterative development, pages tagged by his peers, and articles that explain iterative development techniques in detail. As Tim clicks through the feed results, the link in widget E opens to show detailed text for Tim to read.
Since Tim is working on a project led by Jill, he decides to publish this page and share it with Jill, who can also follow the same guidelines and techniques found by Tim around iterative development best practices.
Figure 1. Mashup page for Usage Scenario 1: My Practices
Click to enlarge
Usage Scenario 2: Practices Adoption
Jill, as project lead, not only wants to follow practices, such as iterative development and others, but also she wants to make sure her team is making the most out of the guidance provided by these practices. She wants to involve the team in openly discussing and assessing themselves against targets that help them measure how well they are adopting each practice in their jobs. If, after seeing the results of the team self-assessment, Jill realizes the team needs to correct its course of action, they'll need access to guidance, templates, examples and such, so they can learn the best way to move forward.
This usage scenario can be implemented in IBM Mashup Center as follows. Jill signs up for feeds from different sources such as:
-
A list of practices and practice details coming from EPF Wiki. The feed results are shown in widgets A, B, and C in Figure 2.
-
A list of questions detailing targets to be achieved in each practice. Questions should help team members assess whether they are following and taking advantage of the benefits brought by adopting each practice. The team can find such questions in the IBM Measured Capability Improvement Framework (MCIF) 15. The list of questions is stored in a spreadsheet, which can be used as input to Mashup Center to create a feed that is then displayed in widget D in Figure 2.
-
A graph or table that shows the consolidated data provided by the team self-assessment (reflecting the responses to each MCIF Self Assessment question). For example, in a spreadsheet Jim collects each team member's reply about how they think they are following a particular practice; giving a number 1 when they are not following that aspect of the practice so well, and giving a number 5 when they have already mastered that particular aspect. The consolidated data from the team members' votes can then be displayed in a graph bar widget such as widget E in Figure 2.
Figure 2. Mashup page for Usage Scenario: Practices Adoption
Click to enlarge
With the practices adoption dashboard in front of them, Jill and the team can see an honest picture of what areas they are doing well, and what areas they need to improve. While the results of the self-assessment are based on the subjective analysis of each team member, having that information available helps promote discussion and a reality check of the team's process maturity. Besides, with the practices description available in the same page, the team can quickly find process support for the areas they need to improve.
In the above example, the team is not doing so well in performing retrospectives at the end of iterations, as represented by the low value showed by the second-to-last bar in the graph. The team can then access the practice detail widget (widget B) that shows an entry for guidance on retrospectives, and finally see the textual description in widget C that explains retrospectives in more details.
We live in an era when information is exponentially growing and being made available, and one cannot keep oneself up-to-date with all existing information, even by isolating it to a specific area of interest, such as technology, science, politics, etc. The advent of the Internet further facilitates spreading information to potential consumers who wouldn't have access to that information otherwise.
In this article, I explored process content feeds and mashups as viable mechanisms to provide business value to software development project practitioners who need access to descriptions and supporting materials on how to adopt software development best practices. These professionals can take advantage of mashup environments and tools in order to quickly create situational applications that put together the sources of information that are relevant and contextual for their project needs, thus -- in an agile and low-cost way -- have easy access to contextualized process guidance to help and guide them in performing their daily work.
- Cherbakov, L., Bravery, A., Goodman, B. D., & Baggett, J. "Changing the Corporate IT Development Model: Tapping the Power of Grassroots Computing." IBM Systems Journal, Volume 46, Number 4, September 25, 2007. See http://www.research.ibm.com/journal/sj/464/cherbakov.html
- See the Eclipse Process Framework Web site: http://www.eclipse.org/epf
- See the IBM Rational Method Composer main page on ibm.com:
http://www-01.ibm.com/software/awdtools/rmc/index.html
- See the IBM Lotus Mashups main page on ibm.com:
http://www-01.ibm.com/software/lotus/products/mashups/
- See the Wikipedia definition of Mashup at:
http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)
- See the Wikipedia definition of RSS feeds at:
http://en.wikipedia.org/wiki/RSS_(file_format)
- See the Wikipedia definition of Atom feeds at:
http://en.wikipedia.org/wiki/Atom_(standard)
- Haumer, P. et al. Software Process Engineering Meta-model. (July 8, 2007).
Object Management Group. SPEM version 2.0 specification.
Retrieved from http://www.omg.org/technology/documents/formal/spem.htm
- Haumer, P. Eclipse Process Framework Composer. (April 2, 2007).
Retrieved from the Eclipse Process Framework Web site:
http://www.eclipse.org/epf/general/EPFComposerOverviewPart1.pdf and http://www.eclipse.org/epf/general/EPFComposerOverviewPart2.pdf
- Open source deployment of the EPF Wiki: http://epf.eclipse.org/
- IBM Rational Team Concert page on ibm.com:
http://www-01.ibm.com/software/awdtools/rtc/index.html
- IBM Lotus Notes main page on ibm.com
http://www-01.ibm.com/software/lotus/products/notes/
- IBM developerWorks forum: http://www.ibm.com/developerworks/forums/index.html
- IBM developerWorks Technical Library:
http://www.ibm.com/developerworks/views/rational/libraryview.jsp
- IBM Measured Capability Improvement Framework page on ibm.com:
http://www-01.ibm.com/software/rational/mcif/
Learn
-
Learn about other applications in the IBM Rational Software Delivery Platform, including collaboration tools for parallel development and geographically dispersed teams, plus specialized software for architecture management, asset management, change and release management, integrated requirements management, process and portfolio management, and quality management.
-
Visit the Rational software area on developerWorks for technical resources and best practices for Rational Software Delivery Platform products.
-
Explore Rational computer-based, Web-based, and instructor-led online courses. Hone your skills and learn more about Rational tools with these courses, which range from introductory to advanced. The courses on this catalog are available for purchase through computer-based training or Web-based training. Additionally, some "Getting Started" courses are available free of charge.
-
Subscribe to the Rational Edge newsletter for articles on the concepts behind effective software development.
-
Subscribe to the IBM developerWorks newsletter, a weekly update on the best of developerWorks tutorials, articles, downloads, community activities, webcasts and events.
-
Browse the technology bookstore for books on these and other technical topics.
Get products and technologies
-
Download trial versions of IBM Rational software.
- Download these IBM product evaluation versions and get your hands on application development tools and middleware products from DB2®, Lotus®, Tivoli®, and WebSphere®.
Discuss
- Participate in the discussion forum.
- Check out
developerWorks blogs and get involved in the developerWorks community.

Ricardo Balduino is a Senior Software Engineer at IBM and a member of the Eclipse Process Framework (EPF) project. His fifteen years of experience in the software industry includes developing software applications for industrial processes automation and financial services, as well as delivering training and consulting services to help organizations adopt formal and agile software development practices. He holds a B.S. degree in Computers Science from Sao Paulo State University, Brazil, and a M.S. degree in Software Engineering from San Jose State University, California. Ricardo can be reached at balduino@us.ibm.com.
Comments (Undergoing maintenance)





