Step-by-step Guide to Rolling Out and Staging Blockchain Technology Features
You're reading Entrepreneur India, an international franchise of Entrepreneur Media.
Considering the fact that blockchain technology creates immutable and permanent records through a peer-to-peer distributed network, it makes sense to spend a good amount of time ensuring that each feature that is rolled out is free of chinks before hitting the main platform. This is a way to make certain that the final smart contract code that is released into the main platform is doing exactly what it was designed to do.
Creating an application or platform powered by blockchain technology is a process that is still in its nascent stages, and hence rigorous quality checking is mandatory and necessary. All of the users that a given platform intends to attract are not the same - that is, they have different levels of proficiency and different thought processes. By rolling out blockchain features in stages, multiple users get a chance to test the platform for fit issues, and developers get adequate feedback pertaining to how users are accepting the new additions to the platform.
The developing team has another task to handle while rolling out new features and that is to simulate the main-net as much as possible. In the world of blockchain technology, getting a feel for the main-net via the test network is an uphill task. From getting the same kind of network congestion to gas prices and block confirmations, the developers have to strive hard at every step to create a test network which is as close to the real thing as possible.
Step 1 - testRPC by Dev Team
Every feature or set of features is put through product and design cycles until the dev team is finished with it and is ready to begin the rollout. This stage involves a lot of testing that is done primarily on the team's local machine via their testRPC and database. Using testRPC ensures that the feature is pushed through to the next stage only when it is deemed complete. The team also performs unit testing to determine if the feature is meeting all requisites from a product viewpoint.
Step 2 - Staging by QA Team
Once the dev team is satisfied with the tests that have been run, the feature-related changes are ready to be passed onto the staging server. This server is the ground-zero for the QA team that begins its set of tests to ensure that the changes are ready for a main-net roll out. Different networks can be used to simulate the main-net; for example, the Ropsten network is a preferred network to simulate Ethereum's main-net. Since the network apes the main-net much better than testRPC could, this is the stage at which acceptance testing is conducted.
A select few users also get a chance to test out the new feature. This enables the QA team to see how this sample of users interact with the new feature. Every feature roll-out is motivated with the thought of bringing about changes that would make the product better and meet the needs of the target market. This is the stage that tells the dev and QA teams if their assumptions, pertaining to what the feature needs to achieve, are correct or not.
Stage 3 - Beta testing on Main-net
So the bugs have been dealt with, and all the other chinks have been ironed out? Then, this stage is where the approved changes are ready to be deployed on the main-net. Consider this the beta testing stage - where a small set of users have the opportunity to first use and then give feedback about the new feature. This stage is important primarily because this would be the first time that the feature is allowed to run free in the actual network of the main-net. The beta users put the feature to the test along with network conditions like gas prices and block timing - this gives the developers a clear picture of how the feature would thrive in the main-net. Some developers may choose to release the beta features only to users who have pre-mint tokens.
Stage 4 - Public release
If the feature roll out went down smoothly and there were no problems with the usage on pre-mint token or beta platform, then it is ready for a full-scale roll out to the normal public platform. Of course, the usage of the newly released feature is still monitored to track efficiency.
A basic yet systematic release of new features involves these four stages and as many corrections as required along the way.