Open development processes and reddit charms [combined summary]



Individual post summaries: Click here to read the original discussion on the bitcoin-dev mailing list

Published on: 2014-12-18T05:56:18+00:00


Summary:

The article delves into the challenges and complexities of open source development using Bitcoin Core as a case study. It highlights various aspects such as the difficulty in understanding the Bitcoin Core threading model, platform support, libification, dependency management, core data structures, DoS mitigation, and script evolution. The author suggests that addressing these challenges may be a bottleneck in the development process.The importance of openness and transparency in open source development is also discussed. The article emphasizes the need to focus on the engineers actually working on the technology rather than getting caught up in disagreements that may arise in public forums. The author encourages readers to assume good faith and pay attention to the actual work being done.Concerns about changes made during the 0.10 development cycle of Bitcoin Core are addressed. The author argues that these changes were performed responsibly, with multiple developers verifying each cosmetic change. The general direction of the work was aimed at creating a "libconsensus" library that can be used by external projects.The concept of "social debt" is introduced, referring to the added costs incurred by developers who must update their unmerged work due to constant code movement and refactoring changes. While such changes are necessary for a cleaner codebase, they can discourage developers from working on the project. The article suggests developing policies that balance the need for refactoring with the needs of developers working on more involved Bitcoin Core projects.In a recent pull request on GitHub, Wladimir highlighted the importance of consistency in code formatting. Enforcing a specific tabbing style or column width across the entire codebase is crucial for readability and maintainability. The provided link leads to the specific pull request where this issue was discussed.The lack of code janitors is identified as the biggest systemic risk for Bitcoin. Due to the complexity of the code, there needs to be a focus on readability, maintainability, and coding standards. The article suggests developing a policy that opens and closes windows for code movement and major disruptive changes, similar to a "feature freeze" in other software projects.The open source development process is also highlighted as a case study that can be reviewed periodically. Openness and transparency are considered the default practice, which means it is normal to discuss disagreements in public forums. However, competing interests can lead to conspiracy theories. In terms of technical debt, cosmetic patches such as code movement can disrupt developers working on non-trivial features, discouraging them from contributing to the project.Finding the right balance is crucial for Bitcoin Core. While refactoring is necessary, it is also anti-social in the short term. The article suggests striking a balance by developing a policy that allows for code movement and major disruptive changes within specific timeframes. This will help encourage developers to work on more involved Bitcoin Core projects.In conclusion, the article highlights the challenges faced in open source development using Bitcoin Core as an example. It emphasizes the importance of openness, transparency, and consistency in coding standards. The concept of social debt is introduced, and suggestions are made for finding a balance between refactoring and encouraging developer contributions.


Updated on: 2023-08-01T10:59:14.298738+00:00