Release Process at Dash Core Group

tungfa

Administrator
Dash Core Team
Moderator
Foundation Member
Masternode Owner/Operator
Apr 9, 2014
8,902
6,733
1,283
https://blog.dash.org/release-process-at-dash-core-group-6494708b5c8b

Dash Core Group is excited to announce changes to how we approach future releases for Dash Platform. These changes aim to make our releases more predictable, reliable, and transparent, thereby fostering greater activity from our burgeoning developer ecosystem. Going forward, we will release new updates to Evonet roughly every 6 weeks, with our next release planned for the window between April 22nd — May 5th. Continue reading to better understand our thought process, as well as what to expect regarding communication about these upcoming releases and our progress toward a mainnet launch.

Process
Within an agile development environment, frequent software releases are encouraged as a way of quickly generating feedback. This feedback will uncover any erroneous assumptions made during the design and implementation of software, thereby mitigating the risk of devoting too much time to unneeded or undesired features. In a traditional, centralized organization, it is easier to release because the organization owns the deployment environment, i.e. some private, dedicated server more often than not hosted in the cloud. Releasing and deploying to a decentralized network presents a unique challenge in that no single entity owns the deployment environment. Ownership of the environment is distributed across all of the nodes in the network, requiring a long, coordinated effort to update nodes to the newest software version.

DCG develops software according to agile principles and believes in the value of frequent releases. Therefore, in order to increase release frequency, a new type of deployment environment is needed. This is where Evonet enters the picture. As an environment owned almost exclusively by DCG, we are able to deploy new software more frequently without jeopardizing the sanctity of mainnet. In doing so, we can better demonstrate development progress toward a mainnet release, reduce the risk of bugs impeding progress, and collect feedback from our developer community.

Software will now be deployed to Evonet according to a set schedule. Our development teams timebox work in two-week sprints, where we focus on completing a discrete set of functionality for that period. In order to deliver a meaningful amount of new functionality with each new release, we have decided to time them for every 6 weeks. Based on this schedule, our next release will occur sometime between April 22nd — May 5. From release to release, our preparation fluctuates, which is the reasoning behind providing a window as opposed to an exact date.

In the near future, we will mitigate release uncertainty by making improvements to our Dash Platform test suite, as well as implementing continuous integration and delivery processes into our development workflow. Eventually, code will be continuously delivered to a private, internal devnet, which will make releases to Evonet more predictable, faster, and less prone to disruption. Dash Platform will be the only product subject to the new process, but after a period of feedback collection and monitoring, we intend on introducing similar improvements to the other product teams.

Developers can expect breaking changes to accompany each release. Consequently, data on Evonet will be wiped unless noted otherwise in the blog post accompanying the release. If needed, developers should plan to backup any Evonet data locally every 5–6 weeks. Data migration from one version to another is a laborious process, and in order to focus on delivering core functionality, we’ve made the decision to temporarily forego data migration. Once the network is more stable and we’ve had a chance to implement versioning for the Platform Protocol, we will support data migration from one version to another.

Communication
Communication about future releases should be familiar to current followers of Dash Core Group’s development progress. Observers can expect a blog post containing a summary, important notes, and a bulleted list of the most important deliverables contained in the release. In addition, the blog post is where developers will find explicit mention of whether or not data will be wiped from Evonet. The format will be very similar to our product briefs and platform release announcements.

DCG will continue to review all of our product roadmaps during our quarterly calls, with the next one scheduled for April 23, 2020. The roadmaps will provide clarity for the releases expected during the upcoming quarter with respect to version numbers, features and general timing. Subsequent releases will be described in more general terms to ensure that we don’t overcommit and restrict our ability to make the best decisions in the development process.

Conclusion
Despite the unique origin of Dash Core Group, the organization shares many similarities with traditional ones. The most important of which is that we are essentially a startup, which implies that organizational structure and processes are still in a fluid process of creation. As time goes on, we become better organized, more efficient, and more confident in our ability to help realize the potential of the Dash network. This change in our release process is one reflection of our growth, one that represents numerous internal changes that better position us to deliver on the promise of true digital cash. As always, your thoughts, feedback, and pull requests are greatly appreciated. Stay tuned for our next platform release during the window from April 22 — May 5.