In our previous post, we discussed a comprehensive guide to React Native for large companies. Here is a quick reacp:
In the charts, we used different colors to indicate various stages: Preparation before Development, Development, Testing, and Release. Based on that, we'll discuss more about the strategy in this post.
If you've ever worked on upgrading React Native, you might have wondered: Should I upgrade version by version, or should I combine the updates and upgrade directly to the desired version? Let's dive into the two different strategies.
The chart above likely illustrates the version-by-version approach. With this strategy, it is generally safer because if something goes wrong with the release, you can easily identify which specific React Native version may be causing the problem. This reduces stress and concerns the team might have regarding the upgrade. If you are in a feature-heavy sprint, you might also want to postpone the subsequent release so that progress isn't hindered by the upgrade process.
This is a reasonable approach, but it sometimes comes with a cost. If your testing and release process is set up to be nearly automatic, there's not much to worry about. However, if your current process involves a lot of manual effort, you should carefully consider the resources you can allocate.
Batched here in the example meant that you bump your react native version straight from 0.67 to 0.70. You'll do more preparation in the beginning since there are more changelog and release notes that you might need to go through.
In the development phase, the required effort for code changes shouldn't be too different, as you'll go through similar steps. Finally, the testing and release phase is where you'll see numerous benefits if your process involves a significant amount of manual effort. This is where the batched approach excels, and in general, it is more time-efficient for upgrading React Native.
Here's the takeaway on different strategies: ideally, you should opt for the Batched strategy. However, if your main concern is risk and you want to ensure a smoother release, you might want to consider the non-batched approach.
|Time efficiency||Slower||👑 Faster|
|Risk||👑 Lower||Slightly Higher|
|Required Resource||More *||👑 Less|
`*` Depending on your current process for testing and release, if it involves a significant amount of manual work, then it requires more effort.
Thank you for reading this far. If you found this article helpful or learned something new, please consider showing your support by liking it and following me for updates on future posts. Stay tuned!