Developing The Essential Project Through Community
It’s only been just over a month since we launched the Essential Project and we’re very pleased and excited in the response. One of the main hopes we had for the project when we launched was that the community of Essential users would become part of the development process for the project. Already we’ve had some some very interesting requests, through the forums, for things that we haven’t encountered before but can handle through small extensions to the Essential Meta Model and Essential Viewer reports.
Why Contribute?
As the Essential Project tools are open-source, anyone is free to make any extensions that they require. We are very keen that as many extensions as possible are put back into the Project and shared with the community – to help make sure that the Essential Project has the coverage that is required.
By contributing your extensions and enhancements back to the Project, it not only drives the Project forward but means that any extensions that you need will be brought into and managed by the Project as it moves forward.
How will this work?
Obviously, we will need some sense of order to how the contribution process works. The Essential Project Team provide governance of the Essential Meta Model and co-ordinate requests for enhancements, taking other similar requests into account before designing and delivering them. Likewise, contributions of completed components, e.g. a new analysis report or meta model extension, can be shared by contributors through the Essential Project website. When a meta model extension is received, the Team will produce the update pack to make it simple for other community members to introduce the extension to their Essential installation.
However, we are really keen that requests for additional capabilities (modelling, reporting or software extensions) are developed with the community to make sure that as many different perspectives on the same requirement are considered. To make this work, we would like to operate a process in the spirit of the approach taken for the Java Community Process and run this via the forums, in the Enhancements and Suggestions forum.
What is the process?
The main thrust of the process – called the Essential Community Process (or ECP) is about capturing requirements and reviewing the proposed solution with as wide a group as possible. Although in many cases (especially in the early stages of the Project) the Essential Project Team will be the ones developing the solution, the process does not assume this – it could be any member of the community.
The process can be iterative and will operate as follows:
- Request
- Discuss and gather further requirements from community
- Design proposed solution
- Circulate to the community for defined period of time
- Implement
- Test within the community
- Review tests and approve
- Release update
Responsive
Clearly there’s a balance to strike between taking a controlled approach and the time it takes to produce the answer to the request. However, I think that we should be able to run the process such that the time taken is proportionate to the scope and complexity of the requirement being met (in some cases, perhaps only days). The important thing is to open up the gathering of requirements, design and testing activities to the community while making sure that the results fit in with the overall Essential Meta Model, can be taken forward and are easily shared.
We’re already looking at how we should capture software (or any other) licensing models and instances of these models, and we’d like to know more about requirements for organisation policy and compliance. If you have any thoughts on any requirements that you have in these areas, please let us know by taking part in this forum.