Omneity Project Objectives

The Omneity project started about ten years ago and was borne from frustration with the lack of integration between ALM tools. For the past ten years various ideas have been bouncing around in my head and now I have started to make those ideas public and accompanied with a tentative open source project to create a testbed implementation of those ideas.

So, what is Omneity?
Omneity is a knowledge management and expert system with a focus on system lifecycle management (with special focus on software configuration management). The project aims to create a testbed implementation of a knowledge management system that can be used to integrate information between ALM tool sets in such a way that they can be treated as a federated set of tool and viewed as a single entity. Omneity will also support automated discovery of information, inference reasoners, and other expert system tools. Furthermore, Omneity will provide a means of providing additional information and relating it to existing data sources.

What does all this mean?
Imagine being able to view your Subversion, GIT, Mercurial, ChangeMan, ClearCase, etc. repositories as one CM resource.

Imagine being able to relate items held in a Subversion repository with those held in ClearCase and presenting these to users as a single build project.

Imagine being able to view your whole enterprise, with all it's interconnected services, and then isolate all those that are potentially affected by the code change you are about to make, test, or deploy.

Imagine being able to move information from Subversion to GIT and tracing the items' provenance across repositories.

Imagine being able to ask questions like, 'If I change to version 1.6 of library X, what else will I need to change? And what else might I need to change in my system?' and having knowledge provided from about the Internet made available to answer the question.

Imagine being able to share information about dependencies, bugs, and 'quirks' with other users, without needing to tell anyone anything explicitly.

Imagine a system that can take the output of your builds and add dependency information directly into your CM database.

Imagine preparing a baseline and having a system tell you if it is internally consistent, warn you of potential issues, and show you partial change inclusions.

All of these imagined scenarios are among the features Omneity is aiming to provide. And it's possible. And you don't have to use any specific tool to record your CM data.

Too ambitious?
Based on the objectives you might consider Omneity too ambitious (witchcraft perhaps), but I believe all of these features are feasible albeit ambitious. Importantly, Omneity is about providing a test bed where these ideas can be explored in a flexible manner. A system of plugins that will allow users and developers to create new integrations and new feature specifically aimed at providing this sort of knowledge management.

In this early phase I'm not suggesting we attempt to make the system two way (updating external systems will be much trickier). This first phase is all about establishing a tool to read data from remote systems, analyse it, and present it to the user for them to slice, dice and add to (the additions being data recorded by the Omneity system, so we can update that as much as we like).

I anticipate a number of collatoral benefits from this work; like being able to see, in real-time, who is working on what within teams. More on these ideas as we progress.

What Omneity is not!
Omneity is not another version control tool. Nor is it a new CMDB tool. Although Omneity will certainly provide a framework for providing these functions they are not it's primary purpose. Rather, Omneity aims to leverage and integrate existing repositories and datasources to provide high-level knowledge management functionality.