[Hyperledger Project TSC] HLP Exit Criteria work




In the event formatting is lost in email, please email me for a Word version if you would like to have it.



Disclaimer:  This paper is meant for discussion within the Exit Criteria Group on a use, do not use or partial use basis.  The letters A-D and numbers 1-4 can be further defined and expanded or contracted as deemed appropriate by the group. This simplified idea is not meant to impugn any work thus far completed.     


A challenge of HLP life cycle graduation criteria from incubation to mature (stable) to deprecated is assigning symmetric or common standards in codebase development across applications written to serve diverse sectors and functions.  This paper is a simplified attempt to utilize a Use Case vs. Function matrix to arrive at a more asymmetric requirement rating for application specific exit/graduation criteria.


 No one knows or will know an application better than its maintainers.  That said, the TSC must have a scheme of metrics by which it reviews projects submitted for incubation and graduation to mature phase and beyond. 


 Application initial maintainers can assign an alphanumeric designator to use case and performance information based on their initial intended use case function of the application and the level of performance complexity required of a “stable” codebase for that particular application deployment.  Applications under such a scheme would progress from 0.5-developer preview to 1.0-production deployment (and subsequent releases beyond 1.0) until innovation/disruption has ceased.


 A number from 1 to 4 is assigned reflecting the level of required reliability/complexity of code for graduation from a cycle stage.  The number 1 would represent the highest degree of required reliability as it pertains to any of the following as an example:


o    Initial stated scope and intent of maintainers (projects may naturally change direction as they develop)


o    Level of regulation scrutinizing real world deployment of the application


o    Scalability and speed requirement


o    Ability to access and troubleshoot (ex: IoT manufacture, transport, troubleshoot remotely, etc.)


o    Specified least number of critical errors per ‘x’ lines of code (Business Logic maybe 5 lines per 1,000 result in critical error?)


o    What level of security is required?


o    Will the application function handle personal identifiable or corporate confidential information?


The initial maintainer assigned number designation of 1 to 4 is then coupled with a letter from A to D.      




Complexity/Reliability ratings range from "complex and reliable" (1) to "stable" (4) as shown in the table below




Thoroughly tested and deemed production deployable in a setting requiring accuracy, speed, scalability, regulatory scrutiny, information protection



For WG discuss



For WG discuss



The codebase is considered stable for broad application that requires little complexity




The scale of A-D indicates the initial maintainer assigned use case such as supply chain, health records, counterfeit drugs, IoT, Music Publishing, etc.  see; https://github.com/hyperledger/hyperledger/wiki/Use-Cases     The highest degree of expected performance of an application is entered as a "1".  The lowest rating of "4" means that the expected application performance is considered adequate for the function for which it is used or deployed.   



Function pulls highly sensitive information

Requires thorough testing to be deemed production deployable in a settingrequiring two or more of the following: accuracy, speed, scalability, regulatory scrutiny, sensitive personal or corporate information or sensitive product shipping location and tracking.



For WG discuss



For WG discuss



The application is considered adequate for specific or broad use functions that contain no sensitive information and security concerns are few.  



Application rating scheme examples:


1A            an application written to function in healthcare records where a database of patient information, insurance claims, etc. is pulled from external sources.


4D        an application written to function in supply chain where non-sensitive items are entered and tracked from warehouse to final destination.  To further explain the supply chain example; tracking a shipment of plywood from East Texas to Florida should require far less complexity and function than shipping blood from Europe to Africa or Zika drugs to South America.