Browse Prior Art Database

A collaborative and proactive architectural model to share, improve and leverage community development skills, experiences and knowledges. Disclosure Number: IPCOM000115876D
Original Publication Date: 2005-Mar-30
Included in the Prior Art Database: 2005-Mar-30
Document File: 4 page(s) / 87K

Publishing Venue



Huge software development companies experience incredible difficulties in sharing wide-spread knowledge and experiences among software coders. It's quite impossible for coders to know if someone else in the company has made similar works or solved same problems before. Moreover, coders often reimplement what has been already written just because they enjoy doing it or because they cannot easily access to previous impementations. This scenario leads in developing duplications and continuously solving already stated problems despite of the quality and time to market related to the development process. Today all those difficulties are not managed by a cooperative process but usually by the individuals who push questions to company technical mail groups, post help requests to newsgroups or search related topics on the web. In few words, the developers? experiences are not efficiently shared and not proactively recycled.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 54% of the total text.

Page 1 of 4

A collaborative and proactive architectural model to share, improve and leverage community development skills, experiences and knowledges.

An architecture is disclosed that aims to leverage all the repositories containing programming development information inside and outside the company (the web or third parts) and filters and proposes it to single developers by detecting on-the-fly their work-context.

     From the user's side, an agent will interface the developer with the knowledge servers either because the developer requires specific help or because the agent automatically detects on what the developer is spending his/her time. In the former case the agent will query the knowledge servers basing on specific developer's requests. In the latter case the agent will automatic detect the developer's context by analyzing the source code and then proposing related topics.

     From the server's side, a pool of applications will index specific knowledge repositories. Inside the company boundaries they could be source code control systems, employees databases, FAQ/documents/projects repositories and so on. Outside the company they could be web sites, newsgroups and so on. The servers will also learn the typology of the requests and contexts detected by the user's agents in order to optimize and improve the content of the information retrieved.

     The developer will be therefore automatically helped by the presentation of already developed works checking all the needed information about them: authors, history, improvements, comments, bugs and so on. Thus, the developer can easily find who in the company has worked on similar topics, leverage other implementations, contact people with specific skills and so on.

The proposed solution is based on a client/server architecture where:

1. The client acts as a user agent on the developer's workstation by proactively detecting work-contexts and proposing related topics
2. The server-side applications have the responsibility of indexing the knowledge repositories and providing the best-related information requested by the agents. The servers also cooperate in refining their knowledge selection by evaluating the typology of requests over the time.

The Fig. 1 describes a possible architecture, which could implement the proposed solution.


Page 2 of 4

Work by example Quick problem determination by external experiences Quick help resource finding Employees' collaboration

Examples, Employees, Source code, History,


Source code

Contextual knowledge selection


Context analysis

User agent

Design patterns


Standard libraries


User agent

Knowledge requests

Knowledge server

Request typology history

Enterprise knowledge

External knowledge

Source code control systems