This document seeks to propose a process by which updates to the RChain blockchain are defined, approved, prioritized and released.
See RCHIP issue #14 for more recent discussion.
The RChain feature backlog is captured in Jira at: http://rchain.atlassian.net at: https://rchain.atlassian.net/secure/RapidBoard.jspa?projectKey=RIP&rapidView=19&view=planning.nodetail
The RChain Improvement Proposals are captured in Confluence at: RChain Improvement Proposals
Role | Description |
---|---|
Feature Requestor | This is someone or a group of someones who have an idea for an improvement to the RChain platform. |
Editorial Committee | This is a committee of RChain members charged with the following for each RCHIP submitted by a Feature Requestor:
If the RCHIP isn't ready, the Editorial Committee will send it back to the Feature Requestor for revision, with specific instructions. Once the RCHIP is ready for the consideration for the next step the Editorial Committee will continue to support the RCHIP through the process. |
Development Team PM | Supports the process in various roles, primarily as a liaison between others involved in the RCHIP process and the Development Team. |
Development Team | This is the team of developers supporting the development and maintenance of the platform. |
Approval Committee | This is a committee of RChain members charged approving RCHIPs for analysis and estimation, and then making a recommendation to the board of directors based on prioritization criteria and goals of the RChain Cooperative. Recommend that this committee be comprised of individuals covering all aspects of the RChain Ecosystem, such as members, dApp Developers, Validators and Core developers. Recommend that the approval committee be no more than 7 individuals & be an odd number. |
RChain Cooperative Board | The legal board of the RChain Cooperative |
Membership | Members of the RChain Cooperative |
Strategic Partners | Individuals affiliated with with RChain's holding companies or members of partnering organizations |
Stakeholders | Members of the public interested in the use and functionality of the RChain platform. |
A feature request should be proposed in written format. For small features, a Jira Story issue is suitable.
If a feature cannot be implemented within a single component (Interpreter, Consensus, Node), then an Epic is required. An Epic should contain a link to a document that describes the feature with enough specificity that an Engineering plan can be drafted and estimation can take place.
RACI | Party |
---|---|
Responsible | Feature Requestor |
Accountable | Editorial Committee |
Consulted | Development Team PM Strategic Partners Stakeholders |
Informed | Membership |
Proposed features should be vetted for completeness appropriateness and value before being analyzed. Analysis is a costly process, and should not be applied to all proposed features without some kind of prior vetting.
RACI | Party |
---|---|
Responsible | Development Team PM |
Accountable | Approval Committee |
Consulted | Core Development Team Strategic Partners Feature Requestor |
Informed | Membership |
Once a feature has been specified and approved for analysis, the engineering team performs an analysis and proposes an implementation. This analysis will include the following:
This part of the process will likely involve a good deal of back and forth between the requestor and the development team, until agreement on the details of the feature is reached. Additionally, the feature may be re-scoped or re-sized as a result of these discussions.
RACI | Party |
---|---|
Responsible | Development Team |
Accountable | Development Team PM |
Consulted | Feature Requestor Approval Committee |
Informed | Membership |
Once estimated, the feature should be approved for implementation. If the feature presents as a hard fork, then approval from the validator pool is needed, to prevent a fork of the platform when the update is applied.
RACI | Party |
---|---|
Responsible | Approval Committee |
Accountable | RChain Cooperative Board |
Consulted | Membership Development Team PM Feature Requestor Strategic Partners |
Informed | Membership |
Once the above items have taken place, the feature will be slated into a release vehicle and the tickets will be assigned to a sprint. The prioritization of the feature will depend on its priority relative to other items on the backlog. Prioritization of work is a challenge. Recommendation is that all RCHIPs be categorized into 1 of these categories, and given a relative weight in terms of value.
Category | Description | Examples |
---|---|---|
Growth | Increase in Platform Adoption |
|
Reduce Risk | Reduce Risk for the CoOperative or the platform |
|
Tech Debt |
|
|
The Board of Directors should define the goals / theme for the platform. The goals for the platform should be set annually. Doing this more frequently isn't productive. Examples of such goals are:
Recommend that no more than 2 goals be set (1 for platform, 1 for CoOperative) for any given period. Any more than that, creates confusion. Recommend that the goal be annual. Any shorter than that, results in the same effect as having too many goals.
Using this theme, a prioritization committee can use the https://articles.uie.com/kj_technique/#close technique to prioritize the RCHIPs and communicate the priorities to the Development Team PM.
RACI | Party |
---|---|
Responsible | Approval Committee |
Accountable | RChain Cooperative Board |
Consulted | Development Team PM Strategic Partners Feature Requestor |
Informed | Membership Stakeholders |
The feature is implemented & Tested by Development
The feature is deployed to the public test net for acceptance testing. Stakeholders have the opportunity to examine the patch on their own systems.
The acceptance testing process must also include release readiness criteria.
RACI | Party |
---|---|
Responsible | Development Team |
Accountable | Development Team PM |
Consulted | Feature Requestor Approval Committee RChain Cooperative Board |
Informed | Membership Strategic Partners Stakeholders |
The feature (release package) is deployed to the public network.
RACI | Party |
---|---|
Responsible | Development Team |
Accountable | Development Team PM |
Consulted | Feature Requestor Approval Committee RChain Cooperative Board |
Informed | Stakeholders Membership |