Often, two detrimental factors affect open source software development.
1. COST OF OPEN SOURCE DEVELOPMENT – COMPENSATION AND OPERATING COSTS
One, the team that builds and later maintains the open-source software is often under-compensated or have to look out to organizations for funding. More often than that the extremely talented software developers and leaders have to engage in other professions or freelance for corporations so as to sustain their own lifestyles which allows them to contribute to open source. Later these organizations themselves impose rules/restrictions and such on these teams of developers leading them to lose track. The fallacies and problems of development are outlined in the Eric S Raymond essay on “The Cathedral and The Bazaar”. Quoting from the essay —- Brooks (the author of The Mythical Man-Month) even made an off-hand observation related to this: “The total cost of maintaining a widely used program is typically 40 percent or more of the cost of developing it. Surprisingly this cost is strongly affected by the number of users. More users find more bugs.” [emphasis added].
2. GOVERNANCE, MANAGEMENT AND OVERALL ENHANCEMENT OF THE SOFTWARE
While governance, management and enhancement of software has had its own perils, very often open-source software development projects have no particular structure. Very often leaders emerge from within and are strongly supported by sets of developers in their direction of development and vision. However, these single team led projects or leadership-driven approaches have shortfalls – they often do not incentivize the crowd or the public to contribute to the software’s development direction. They also are limited by the leader’s vision, the team’s bandwidth, and limitations. It’s almost like planetary exploration. Those who got there first and created the universe control everything therein. Those who come later or who want to improve the planet have only so much say, and if they want to are free to fork the code base and recreate the entire network – which is almost impossible.
MAKER DAO elegantly solves both these problems through an innovative governance protocol. Firstly, Maker allows for public financial innovation wherein individual teams are allowed to propose enhancements to the Maker platform. Each proposal submitted as a smart contract is voted on by the holders of the Maker Token. Each proposal is submitted as a smart contract and has two parts :
- The actual proposal to be implemented on the Maker platform and the details of the implementation. An example proposal is given here: https://vote.makerdao.com/executive-proposal/adjust-debt-ceilings-sai-stability-fee-and-the-dsr
- The fee that the team demands in order for the proposal to be implemented and released to the public is attached as part of the proposal.
- Later those who hold the Maker tokens vote for or against the proposal (http://vote.makerdao.com). Once they vote for change and this change reaches a majority count, the proposal becomes “Active”
- The Maker Platform generates the fee demanded by the team in order to execute the corresponding proposal improvement, and the proposal goes live after execution. Once the proposal goes live, the team is compensated with the corresponding tokens.
- However, problems persist with this mode of governance. Often, voting is proportional to the number of maker tokens held by the voter. This is currently not yet centralized, however, given that the distribution of tokens as seen from etherscan.io is as follows: i.e, https://etherscan.io/token/tokenholderchart/0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2 – A total of 884,824.48 tokens held by the top 100 accounts from the total supply of 1,000,000.00 tokens. Secondly, such forms of voting- accomplished via a smart contract often suffer from the same problems as other cryptocurrency-related problems i.e, anonymity, collusion, multiple-accounts for the same individual, lack of identity, etc…. These problems are definitely extremely difficult to solve and need potentially different types of smart contracts and multiple layers of incentives and punishments to prevent a systemic breakdown of governance. Interesting problems to solve….for those interested in computing and in-game theory.