I’ve created this topic to address a question raised by Skylar.
This is something I’ve pondered a lot, and discussed at length with several community members, most notably @Souptacular, who has advocated strongly for “giving the development teams more autonomy from the leadership areas of both orgs”.
I’ve long believed that Zcash would best be served by a “Zcash Core” team of developers who maintain and improve the protocol and core software (i.e. the node and key libraries), while taking input from the Zcash community.
FWIW, that model has heavily influenced how ZF operates - a board that solicits the community’s input on things like board appointments, feature priorities, and strategic direction on questions like ASIC resistance, with an ED appointed by - and answerable to - the board who runs the organisation on a day-to-day basis.
But to address @skyl’s question directly, how could we dispense with the ZF board and me, and create an independent “Zcash Core” team?
A key question is how would they get paid?
If each individual developer is a Dev Fund recipient, what happens if they decide they want to quit? The funds would keep getting paid until there was a network upgrade.
If a “middleman” entity is the Dev Fund recipient, and then pays the developers (which is effectively what we have at the moment with ECC, ZF and ZCG), that entity can exercise a great deal of power over the developers by dint of the fact that they can withhold payment if the developers don’t do what they want - i.e. the antithesis of independence!
The current corporate structures provide administrative and operational support (e.g. payroll, legal support, health insurance, etc.). They also mitigate the impact of ZEC’s volatility by paying the developers a steady salary (denominated in fiat) and holding reserves that can continue to fund salaries (for a time at least) when the fiat value of ZEC is low.
It’s entirely possible to create an entity akin to a cooperative where the developers themselves as a group exercise executive authority (within certain parameters) over the entity. They could then hire someone (or contract out) to take care of the administrative and operational stuff (or they could simply pay themselves in ZEC and take care of their own taxes, health insurance, etc.).
Again, pay would seem to be the biggest potential stumbling block - specifically, how much should each person should get paid. In the existing structures, that’s decided by Josh and me. In the absence of that role, the developers would need to either reach agreement amongst themselves (including dealing with the fact that different developers have different levels of expertise and experience), or collectively decide to delegate the decision to someone that they all trust.
The biggest barrier is likely the developers themselves, specifically the question of whether they’re willing to make the leap from their current employment to independence, and work through the process of figuring out how to agree things like pay, and dealing with any disagreements and challenges that crop up along the way.