1. Field of the Invention
The present invention generally relates to collaborative data processing systems and, more particularly, to a method and system for collaborative development environments which allow members of a team which are physically separated to effectively work together.
2. Background Description
Collaboration is essential to every engineering domain. In the domain of software development, for example, software engineers on a project team must be able to effectively plan, share, clarify, negotiate, brainstorm, coordinate, build, and exchange information. Collaboration is even more important when the project team is physically distributed, which has become commonplace due to outsourcing, integration of third party software, increasing off-shore development, use of home offices, and strategic partnerships among companies, etc. The success of distributed teams working together effectively is imperative and is a distinguishing factor in the success or failure of many organizations.
Traditionally, most companies have engaged in people-to-people collaboration using technologies such as telephones, facsimile machines, electronic mail (e-mail), and in-person meetings. The last few years have seen the growth of collaboration technologies that leverage the power of the Internet. Such collaboration technologies, including instant messaging, electronic meetings (e-meetings), and team rooms, have been available primarily as standalone and general-purpose systems. There is no connection between the collaboration tools and development tools and environments. Developers have to manually switch between collaboration tools and development environments and are burdened to set up team rooms and meetings and to figure out the people with whom they need to interact.
It is therefore an object of the present invention to provide a Collaborative Development Environment (CDE) as a virtual space wherein all the stakeholders of a project—even if distributed by time or distance—may negotiate, brainstorm, discuss, share knowledge, and generally labor together to carry out some task, most often to create an executable deliverable and its supporting artifacts.
Through its emphasis on seamless integration of collaborative features into the environment, the CDE allows people to interact with each other without shifting applications or transitioning to a different user interface. Further, the CDE encourages solving problems as they arise rather than waiting until the problem grows. It has the potential to yield a more productive, more satisfying development practice.
The CDE may encompass a large variety of resources that range from role players and information items to tasks and development artifacts. The combination of all these resources may be too voluminous for a human to keep track of. Further, not all resources are relevant to a user's task at hand. There is a need to associate resources with the applicable business context and model the interrelationships between resources. This way, the user is exposed to the relevant resources only, and is able to navigate between related resources. This effectively reduces the demand for human attention.
According to the invention, there is provided a method to build CDEs, based on explicit modeling of contexts and “CollabSpaces”. A context refers to the interrelated aspects of a business solution, within which collaboration may occur. A CollabSpace encapsulates the collection of collaboration of all resources and displays only those resources relevant to the current context of the user's development environment based on the role the user plays in the business process. Specifically, a collaboration space contains one or more collaboration elements that have potentially different collaboration modalities in association with a business context; e.g., role players, discussion threads, e-meetings, annotated documents, etc. The collaboration modalities refers to distinct collaboration capabilities provided by a specific technology, such as an e-meeting, discussion threads, instant messaging chat transcripts, online presence awareness (“buddy” lists), annotations, team rooms, etc. It provides a common substrate for members of a project team that use distinct development environments, each instrumented with a viewer to the CollabSpace. Further, the viewer presents a personalized view to different team members that is adapted to the members' current tasks and needs.
The foregoing and other objects, aspects and advantages will be better understood from the following detailed description of a preferred embodiment of the invention with reference to the drawings, in which:
To create a Collaborative Development Environment, a virtual space where all stakeholders of a project can communicate both synchronously and asynchronously in a manner sensitive to the business context and user context, it is important to enable contextual collaboration within each team member's development environment.
Referring now to the drawings, and more particularly to
In a team environment, it is very common that each team member has an IDE setup in his or her own workstation and each workstation is connected to a network. To facilitate the collaborative capabilities within a development, it is necessary to integrate collaboration tools with development tools through people collaboration activities. This is accomplished by means of the collaboration manager (CollabManager) 14 and the context manager (ContextManager) 15, details of which are provided in co-pending application Ser. No. 10/______. In this case, a Collaboration Plugin can be added to each member's IDE to facilitate communication among the team. The Collaboration Plugin allows users to connect to a ContextManager and CollabManager that hooks to any backend collaboration servers to provide users with collaboration capabilities. The ContextManager 15 manages contexts. Contexts are mechanisms to scope resource relationships, including relationships between collaboration elements and business operational artifacts. Resources and their interrelationships are specified with respect to a particular context. ContextManager 15 allows contexts to be created and further allows resources and relationships to be added to and removed from a context and, using an ontology engine, it answers queries about contextual relationships. On the other hand, CollabManager 14 facilitates the connections between the applications or development environments to the collaboration spaces and collaboration modalities. A collaboration space is a container of collaboration artifacts, including roles, members, collaborative activities, ad hoc modalities, and collaboration content. It is a mechanism for integrating disparate collaboration capabilities. CollabManager 14 provides the function of lifecycle management for collaboration spaces and directs modality-specific operations to external collaboration servers. The CollabManager 14, in this example, is connected to a Collaboration Plugin on each team member's IDE (three members total in this illustrative example) and the backend collaboration servers that include an instant messaging server 16, a team room server 17, and an e-meeting server 18.
In a CDE, a user is exposed to resources that store in a CollabSpace that are related to his or her context in the user's development environment based on the user's role. This is accomplished by means of the collaboration manager (“CollabManager”) 14 and the context manager (“ContextManager”) 15 (details of which again are provided in application Ser. No. 10/______). The ContextManger 15 manages the relationship between resources while CollabManager 14 facilitates the connection between the application or development environments to the collaboration spaces and collaboration modalities. The latter include, in this example, an instant messaging server 16, a team room server 17 and an e-meeting server 18.
Whenever the user's context changes, the appropriate resources will be shown automatically if the user wishes. The filtering of the right resources is a time saving advantage for the user since the user does not need to manually keep track of who or what is related to his current context, in particular, people interaction and effectiveness of teamwork are improved.
The integration of collaborative features within a business or within development applications and processes could be easier if there is a rapid development and deployment framework. The contextual collaboration framework according to the invention provides an on-demand add-on to any development environment. This leverages the plugin technology so that collaborative features are loosely coupled into the development environments upon business needs. It is also adaptive enough to expose the appropriate set of business artifacts to the user based on his role in the business process while this is integrated.
In a team environment, a team of developers, project manager, architects, testers and others may work together. Each may have their own development environment on different machines. Sometimes, project managers may use a different application to handle his work or tasks than the developers. In order for the team to collaborate with each other efficiently without switching to a separate collaboration tool, the Collaboration Plugin integrates a set of user controls, a viewer and a monitor in the development environment to allow both synchronous and asynchronous people collaboration to take place within the user's development tool. The user is able to see who is online, what resources are related to the current project the user is working on, what discussion topics are there, what e-meetings are available and so forth.
User Controls 22 is a set of collaborative actions in a drop down menu format that the user could choose to perform within his or her development environment. Collaborative actions could be manage/open CollabSpace, associate with context or enable/disable context sensitivity for the collaboration Viewer 21. The collaboration Viewer 21 shows the appropriate content of the specific CollabSpace related to the current context of the user's development environment based on the role he or she plays in the business process. The context of the user's development environment could be a project, a subject or any logical grouping he chooses to use to categorize his work. Granularity of the context could differ from individual to individual. The association between the current context of the user's development environment and a specific CollabSpace is discussed below in the “Associate with Context” user control.
To demonstrate how collaboration capabilities are enabled within the development environment, the following scenario is used. Consider a project as a form of context. UserA is currently working on ProjectA in his development environment like he usually does. Collaboration has not been started yet. To initiate interaction with his team members who work on the same project, he could perform the following user controls:
The Monitor is a middleman behind the screen that listens to the actions of the user in his development environment and interfaces with CollabManager 14, ContextManager 15 and the Viewer 21 if the actions of the user are significant enough to change the current set of resources being CollabManager 14, ContextManager 15 and the Viewer 21 if the actions of the user are significant enough to change the current set of resources being displayed in the Viewer 21 if the user has enabled context sensitivity for the Viewer as mentioned above.
While the invention has been described in terms of a single preferred embodiment, those skilled in the art will recognize that the invention can be practiced with modification within the spirit and scope of the appended claims.
This invention is related to the invention disclosed in copending patent application Ser. No. 10/______ filed Sep. 15, 2003, by Nitin Nayak, Fenno F. Heath III, Jenny S. Li, Hui Lei, Mitchell A. Cohen, Rakesh Mohan, Josef Schiefer, Stephen V. Stibler, Chung Sheng Li, and Maroun Touma for “A Method and System for Providing a Common Collaboration Framework Accessible from Within Multiple Applications” (IBM Docket YOR920030243US1), and assigned to a common assignee herewith. The disclosure of application Ser. No. 10/______ is incorporated herein by reference.