1
Technical Support / Why annual memberships are going away
« on: March 10, 2016, 06:50:03 am »
This is my personal opinion, not an official Cryptonomex statement on the matter.
Annual memberships are broken [1]. Annual memberships are unpopular [2]. They have been disabled in the GUI for approximately one month [3], and were never implemented in the CLI wallet in the first place.
The developers have already sunk more time into the annual membership feature -- indeed have sunk more time into discussing the potential ramifications of deprecating AM's -- than the feature has ever generated in value for the system. The code is broken, doesn't do what it's supposed to do, and isn't economically worth fixing (it's actually less complicated to disable the old version of the feature and re-write a new version of it from scratch).
Maybe the idea of pricing tiers and lesser memberships is sound. Maybe it can be made to work. That's a larger business / marketing concern, which is not really my area. My area is code. And from the standpoint of code, if this is an idea that will ever be made to work, then it will be made to work with different code than what we have. The existing design and code of this feature is simply too broken [4].
The medium-to-long-term decision about whether we'll retire or re-implement annual memberships is still unsettled. (Although my personal point of view is that, while marketing theory unequivocally says offering AM's should be beneficial, the data [2] equally unequivocally directly contradicts the theory, and experiment is the ultimate arbiter of truth for any real-world project. Which is why BitShares, and for that matter the whole blockchain industry, is a grand experiment -- although there are a lot of economic theories out there, you simply can't know for sure how real people will act with real money in real economic systems until they're built and deployed.) Anyway, whichever way the decision of whether to retire or re-implement annual memberships goes [5], the short-term first steps are the same on either route:
The existing annual membership code must be retired [6]. The existing annual members should be given some non-broken replacement for the broken functionality they received. By far the simplest, least expensive thing to do is simply give them a lifetime membership -- which is a non-broken thing we already have that is similar to (and actually strictly better than) what they were supposed to get. So we're planning to upgrade every existing annual member to a lifetime member shortly after the next release.
We've maintained radio silence on this, except for advising the committee that annual memberships should be disabled (by increasing the fee to 1 billion BTS). For the good and simple reason that we didn't want to encourage buying an AM upgrade as a backdoor route to a cheap LTM upgrade (which it would be, if it had been publicly known that AM's will receive a free LTM upgrade in the near future). Now that AM's are disabled, we're free to discuss what their future should be.
[1] https://github.com/cryptonomex/graphene/issues/539
[2] As of this writing, 31 annual membership upgrade operations and 5744 lifetime membership upgrade operations have taken place on the chain.
[3] https://github.com/cryptonomex/graphene-ui/issues/730
[4] Why this is much more broken than any other part of Graphene involves a bit of Graphene history, but basically what happened is that the requirements of the referral system gained a lot of complexity over time and co-evolved with the code during Graphene's mid-to-late development, leading to an implementation with a sub-optimal design. Annual memberships were added last, which meant they both had the most existing constraints/complexity to work with, and the most time pressure (the release date was already starting to loom large at the time they were added.) If there's a second time around for the annual membership feature, hopefully we'll have a much better idea of exactly what we want to build before we start writing code, not be developing an entire new blockchain implementation alongside it, and not be under the same kind of time pressure, which should lead to much better code.
[5] Because of how broken they are, leaving them unchanged is simply not a viable approach from a technical standpoint -- they don't get what they're supposed to get, and in some cases get nothing!
[6] It can't be totally removed because future releases still have to understand the way past releases handled annual memberships in order to sync from genesis to the current state of the chain.
Annual memberships are broken [1]. Annual memberships are unpopular [2]. They have been disabled in the GUI for approximately one month [3], and were never implemented in the CLI wallet in the first place.
The developers have already sunk more time into the annual membership feature -- indeed have sunk more time into discussing the potential ramifications of deprecating AM's -- than the feature has ever generated in value for the system. The code is broken, doesn't do what it's supposed to do, and isn't economically worth fixing (it's actually less complicated to disable the old version of the feature and re-write a new version of it from scratch).
Maybe the idea of pricing tiers and lesser memberships is sound. Maybe it can be made to work. That's a larger business / marketing concern, which is not really my area. My area is code. And from the standpoint of code, if this is an idea that will ever be made to work, then it will be made to work with different code than what we have. The existing design and code of this feature is simply too broken [4].
The medium-to-long-term decision about whether we'll retire or re-implement annual memberships is still unsettled. (Although my personal point of view is that, while marketing theory unequivocally says offering AM's should be beneficial, the data [2] equally unequivocally directly contradicts the theory, and experiment is the ultimate arbiter of truth for any real-world project. Which is why BitShares, and for that matter the whole blockchain industry, is a grand experiment -- although there are a lot of economic theories out there, you simply can't know for sure how real people will act with real money in real economic systems until they're built and deployed.) Anyway, whichever way the decision of whether to retire or re-implement annual memberships goes [5], the short-term first steps are the same on either route:
The existing annual membership code must be retired [6]. The existing annual members should be given some non-broken replacement for the broken functionality they received. By far the simplest, least expensive thing to do is simply give them a lifetime membership -- which is a non-broken thing we already have that is similar to (and actually strictly better than) what they were supposed to get. So we're planning to upgrade every existing annual member to a lifetime member shortly after the next release.
We've maintained radio silence on this, except for advising the committee that annual memberships should be disabled (by increasing the fee to 1 billion BTS). For the good and simple reason that we didn't want to encourage buying an AM upgrade as a backdoor route to a cheap LTM upgrade (which it would be, if it had been publicly known that AM's will receive a free LTM upgrade in the near future). Now that AM's are disabled, we're free to discuss what their future should be.
[1] https://github.com/cryptonomex/graphene/issues/539
[2] As of this writing, 31 annual membership upgrade operations and 5744 lifetime membership upgrade operations have taken place on the chain.
[3] https://github.com/cryptonomex/graphene-ui/issues/730
[4] Why this is much more broken than any other part of Graphene involves a bit of Graphene history, but basically what happened is that the requirements of the referral system gained a lot of complexity over time and co-evolved with the code during Graphene's mid-to-late development, leading to an implementation with a sub-optimal design. Annual memberships were added last, which meant they both had the most existing constraints/complexity to work with, and the most time pressure (the release date was already starting to loom large at the time they were added.) If there's a second time around for the annual membership feature, hopefully we'll have a much better idea of exactly what we want to build before we start writing code, not be developing an entire new blockchain implementation alongside it, and not be under the same kind of time pressure, which should lead to much better code.
[5] Because of how broken they are, leaving them unchanged is simply not a viable approach from a technical standpoint -- they don't get what they're supposed to get, and in some cases get nothing!
[6] It can't be totally removed because future releases still have to understand the way past releases handled annual memberships in order to sync from genesis to the current state of the chain.